@@ -115,5 +115,53 @@ public async Task BombardierPostTestWithOptionsTest_Successfull()
115115 Assert . True ( bombardierResults . FirstOrDefault ( ) . TestStop . AddMinutes ( 60 ) > DateTime . Now ) ;
116116 Assert . True ( bombardierResults . FirstOrDefault ( ) . TestStop . Subtract ( bombardierResults . FirstOrDefault ( ) . TestStart ) . TotalSeconds == bombardierResults . FirstOrDefault ( ) . Duration ) ;
117117 }
118+
119+ [ IgnoreOnGithubFact ]
120+ public async Task BombardierPostTestWithBodyAndOptionsTest_Successfull ( )
121+ {
122+
123+ var bombardierTestsGenerator = new BombardierTestsGenerator ( options =>
124+ {
125+ options . BombardierConcurrentUsers = 1 ;
126+ options . BombardierDuration = 1 ;
127+ options . BombardierTimeout = 30 ;
128+ options . BombardierUseHttp2 = true ;
129+ options . AddReplacementValues ( new Dictionary < string , object > {
130+ { "Bicycle" , @"{""id"":66,""name"":""my bike"",""brand"":""cannondale"",""BicycleType"":1}" }
131+ } ) ;
132+ } ) ;
133+
134+ var content = File . ReadAllText ( "Assets/AddBike.json" ) ;
135+ var httpRequest = JsonConvert . DeserializeObject < IList < HttpRequest > > ( content ) ;
136+
137+ var bombardierTests = await bombardierTestsGenerator . Generate ( httpRequest ) ;
138+
139+ //Run Bombardier Tests
140+ var bombardierTestsRunner = new BombardierTestsRunner ( bombardierTests . ToList ( ) , options =>
141+ {
142+ options . ObfuscateAuthenticationHeader = true ;
143+ } ) ;
144+ var bombardierResults = await bombardierTestsRunner . Run ( ) ;
145+
146+ _logger . LogInformation ( JsonConvert . SerializeObject ( bombardierResults , Formatting . Indented ) ) ;
147+
148+ Assert . NotNull ( bombardierResults ) ;
149+ Assert . Single ( bombardierResults ) ;
150+ Assert . Equal ( "-m POST https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1 -c 1 -H \" Content-Type: application/json\" -b \" {\\ \" id\\ \" :66,\\ \" name\\ \" :\\ \" my bike\\ \" ,\\ \" brand\\ \" :\\ \" cannondale\\ \" ,\\ \" BicycleType\\ \" :1}\" --http2 --timeout=30s --duration=1s" , bombardierResults . FirstOrDefault ( ) . Command ) ;
151+ Assert . True ( bombardierResults . FirstOrDefault ( ) . Counter1xx == 0 ) ;
152+ Assert . True ( bombardierResults . FirstOrDefault ( ) . Counter2xx > 0 ) ;
153+ Assert . True ( bombardierResults . FirstOrDefault ( ) . Counter3xx == 0 ) ;
154+ Assert . True ( bombardierResults . FirstOrDefault ( ) . Counter4xx == 0 ) ;
155+ Assert . True ( bombardierResults . FirstOrDefault ( ) . Counter5xx == 0 ) ;
156+ Assert . True ( bombardierResults . FirstOrDefault ( ) . AverageLatency >= 0 ) ;
157+ Assert . True ( bombardierResults . FirstOrDefault ( ) . MaxLatency >= 0 ) ;
158+ Assert . True ( bombardierResults . FirstOrDefault ( ) . StdevLatency >= 0 ) ;
159+ Assert . True ( bombardierResults . FirstOrDefault ( ) . AverageRequestsPerSecond >= 0 ) ;
160+ Assert . True ( bombardierResults . FirstOrDefault ( ) . MaxRequestsPerSecond >= 0 ) ;
161+ Assert . True ( bombardierResults . FirstOrDefault ( ) . StdevRequestsPerSecond >= 0 ) ;
162+ Assert . True ( bombardierResults . FirstOrDefault ( ) . TestStart . AddMinutes ( 60 ) > DateTime . Now ) ;
163+ Assert . True ( bombardierResults . FirstOrDefault ( ) . TestStop . AddMinutes ( 60 ) > DateTime . Now ) ;
164+ Assert . True ( bombardierResults . FirstOrDefault ( ) . TestStop . Subtract ( bombardierResults . FirstOrDefault ( ) . TestStart ) . TotalSeconds == bombardierResults . FirstOrDefault ( ) . Duration ) ;
165+ }
118166 }
119167}
0 commit comments