Exemplo n.º 1
0
        public async Task GenerateBombardierTestWithOptionsBasicAuthTest_Successfull()
        {
            var content     = File.ReadAllText("Assets/GetAllBikes.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.AddBasicAuthentication("user", "pass");
                options.BombardierConcurrentUsers = 1;
                options.BombardierDuration        = 1;
                options.BombardierTimeout         = 30;
                options.BombardierUseHttp2        = true;
                options.BombardierRateLimit       = 20;
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            var authHeader = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes("user:pass"));

            Assert.NotNull(bombardierTests);
            Assert.Single(bombardierTests);
            Assert.Contains($" -m GET https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1 -c 1 -H \"Authorization: Basic {authHeader}\" --http2 --timeout=30s --duration=1s --rate=20", bombardierTests.FirstOrDefault().Command);
            Assert.Equal(HttpMethod.Get, bombardierTests.FirstOrDefault().Method);
            Assert.Equal("https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1", bombardierTests.FirstOrDefault().Url.ToString());
        }
Exemplo n.º 2
0
        public async Task GenerateBombardierTestWithOptionsVariation2Test_Successfull()
        {
            var content     = File.ReadAllText("Assets/GetAllBikes.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.BombardierConcurrentUsers = 1;
                options.BombardierDuration        = 10;
                options.BombardierTimeout         = 30;
                options.BombardierUseHttp2        = true;
                options.BombardierInsecure        = true;
                options.AddReplacementValues(new Dictionary <string, object> {
                    { "id", 1000 },
                    { "name", "MJ" }
                });
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            Assert.NotNull(bombardierTests);
            Assert.Single(bombardierTests);
            Assert.Contains(" -m GET https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1 -c 1 --http2 --timeout=30s --duration=10s --insecure", bombardierTests.FirstOrDefault().Command);
            Assert.Equal(HttpMethod.Get, bombardierTests.FirstOrDefault().Method);
            Assert.Equal("https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1", bombardierTests.FirstOrDefault().Url.ToString());
        }
Exemplo n.º 3
0
        public async Task BombardierPostTestWithBodyAndOptionsTest_Successfull()
        {
            var content     = File.ReadAllText("Assets/AddBike.json");
            var httpRequest = JsonConvert.DeserializeObject <IList <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.BombardierConcurrentUsers = 1;
                options.BombardierDuration        = 1;
                options.BombardierTimeout         = 30;
                options.BombardierUseHttp2        = true;
                options.AddReplacementValues(new Dictionary <string, object> {
                    { "Bicycle", @"{""id"":66,""name"":""my bike"",""brand"":""cannondale"",""BicycleType"":1}" }
                });
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            //Run Bombardier Tests
            var bombardierTestsRunner = new BombardierTestsRunner(bombardierTests.ToList(), options =>
            {
                options.ObfuscateAuthenticationHeader = true;
            });
            var bombardierResults = await bombardierTestsRunner.Run();

            _logger.LogInformation(JsonConvert.SerializeObject(bombardierResults, Formatting.Indented));

            Assert.NotNull(bombardierResults);
            Assert.Single(bombardierResults);
            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);

            var asserter      = new BombardierTestAsserter(bombardierResults.FirstOrDefault());
            var assertResults = asserter
                                .NumberOf1xxResponses(x => x == 0)
                                .NumberOf2xxResponses(x => x >= 0)
                                .NumberOf3xxResponses(x => x == 0)
                                .NumberOf4xxResponses(x => x == 0)
                                .NumberOf5xxResponses(x => x == 0)
                                .AverageLatency(x => x >= 0)
                                .AverageRequestsPerSecond(x => x >= 0)
                                .MaximumLatency(x => x >= 0)
                                .MaximumRequestsPerSecond(x => x >= 0)
                                .AssertAll();

            foreach (var result in assertResults)
            {
                Assert.True(result.IsTrue, result.Message);
            }
        }
Exemplo n.º 4
0
        public async Task GenerateBombardierTestGeneratorCreationTest_Success()
        {
            var content     = File.ReadAllText("Assets/GetAllBikes.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest);

            var bombardierTests = await bombardierTestsGenerator.Generate();

            Assert.NotNull(bombardierTests);
            Assert.Single(bombardierTests);
            Assert.Contains(" -m GET https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1 -c 3 --http2 --timeout=30s --duration=10s", bombardierTests.FirstOrDefault().Command);
            Assert.Equal(HttpMethod.Get, bombardierTests.FirstOrDefault().Method);
            Assert.Equal("https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1", bombardierTests.FirstOrDefault().Url.ToString());
        }
Exemplo n.º 5
0
        public async Task GenerateBombardierTestGetSupportNoIdTest_Successfull()
        {
            var content     = File.ReadAllText("Assets/Support.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest);

            var bombardierTests = await bombardierTestsGenerator.Generate();

            Assert.NotNull(bombardierTests);
            Assert.Single(bombardierTests);
            Assert.Contains($@" -m GET https://petstore3.swagger.io/sales/support/v2/SupportTicket?CaseId={{CaseId}} -c 3 --http2 --timeout=30s --duration=10s", bombardierTests.FirstOrDefault().Command);
            Assert.Equal(HttpMethod.Get, bombardierTests.FirstOrDefault().Method);
            Assert.Equal("https://petstore3.swagger.io/sales/support/v2/SupportTicket?CaseId={CaseId}", bombardierTests.FirstOrDefault().Url.ToString());
        }
Exemplo n.º 6
0
        public async Task GenerateBombardierTestRateLimitNumberOfRequestTest_Fails()
        {
            var content     = File.ReadAllText("Assets/GetAllBikes.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.BombardierConcurrentUsers       = 1;
                options.BombardierDuration              = 1;
                options.BombardierTimeout               = 30;
                options.BombardierNumberOfTotalRequests = 100;
                options.BombardierRateLimit             = 10;
            });

            await Assert.ThrowsAsync <QAToolKitBombardierException>(async() => await bombardierTestsGenerator.Generate());
        }
Exemplo n.º 7
0
        public async Task BombardierPostTestWithOptionsTest_Successfull()
        {
            var content     = File.ReadAllText("Assets/AddBike.json");
            var httpRequest = JsonConvert.DeserializeObject <IList <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.BombardierConcurrentUsers       = 1;
                options.BombardierDuration              = 1;
                options.BombardierTimeout               = 30;
                options.BombardierUseHttp2              = true;
                options.BombardierNumberOfTotalRequests = 1;
                options.AddReplacementValues(new Dictionary <string, object> {
                    { "id", 1241451 },
                    { "name", "MJ" }
                });
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            //Run Bombardier Tests
            var bombardierTestsRunner = new BombardierTestsRunner(bombardierTests.ToList(), options =>
            {
                options.ObfuscateAuthenticationHeader = true;
            });
            var bombardierResults = await bombardierTestsRunner.Run();

            _logger.LogInformation(JsonConvert.SerializeObject(bombardierResults, Formatting.Indented));

            Assert.NotNull(bombardierResults);
            Assert.Single(bombardierResults);
            Assert.True(bombardierResults.FirstOrDefault().Counter1xx == 0);
            Assert.True(bombardierResults.FirstOrDefault().Counter2xx > 0);
            Assert.True(bombardierResults.FirstOrDefault().Counter3xx == 0);
            Assert.True(bombardierResults.FirstOrDefault().Counter4xx == 0);
            Assert.True(bombardierResults.FirstOrDefault().Counter5xx == 0);
            Assert.True(bombardierResults.FirstOrDefault().AverageLatency >= 0);
            Assert.True(bombardierResults.FirstOrDefault().MaxLatency >= 0);
            Assert.True(bombardierResults.FirstOrDefault().StdevLatency >= 0);
            Assert.True(bombardierResults.FirstOrDefault().AverageRequestsPerSecond >= 0);
            Assert.True(bombardierResults.FirstOrDefault().MaxRequestsPerSecond >= 0);
            Assert.True(bombardierResults.FirstOrDefault().StdevRequestsPerSecond >= 0);
            Assert.True(bombardierResults.FirstOrDefault().TestStart.AddMinutes(60) > DateTime.Now);
            Assert.True(bombardierResults.FirstOrDefault().TestStop.AddMinutes(60) > DateTime.Now);
            Assert.True(bombardierResults.FirstOrDefault().TestStop.Subtract(bombardierResults.FirstOrDefault().TestStart).TotalSeconds == bombardierResults.FirstOrDefault().Duration);
        }
Exemplo n.º 8
0
        public async Task BombardierPostTestWithOptionsTest_Successfull()
        {
            var content     = File.ReadAllText("Assets/AddBike.json");
            var httpRequest = JsonConvert.DeserializeObject <IList <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.BombardierConcurrentUsers       = 1;
                options.BombardierDuration              = 1;
                options.BombardierTimeout               = 30;
                options.BombardierUseHttp2              = true;
                options.BombardierNumberOfTotalRequests = 1;
                options.AddReplacementValues(new Dictionary <string, object> {
                    { "id", 1241451 },
                    { "name", "MJ" }
                });
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            //Run Bombardier Tests
            var bombardierTestsRunner = new BombardierTestsRunner(bombardierTests.ToList(), options =>
            {
                options.ObfuscateAuthenticationHeader = true;
            });
            var bombardierResults = await bombardierTestsRunner.Run();

            var asserter      = new BombardierTestAsserter(bombardierResults.FirstOrDefault());
            var assertResults = asserter
                                .NumberOf1xxResponses(x => x == 0)
                                .NumberOf2xxResponses(x => x >= 0)
                                .NumberOf3xxResponses(x => x == 0)
                                .NumberOf4xxResponses(x => x == 0)
                                .NumberOf5xxResponses(x => x == 0)
                                .AverageLatency(x => x >= 0)
                                .AverageRequestsPerSecond(x => x >= 0)
                                .MaximumLatency(x => x >= 0)
                                .MaximumRequestsPerSecond(x => x >= 0)
                                .AssertAll();

            foreach (var result in assertResults)
            {
                Assert.True(result.IsTrue, result.Message);
            }
        }
Exemplo n.º 9
0
        public async Task BombardierPostTestWithBodyAndOptionsTest_Successfull()
        {
            var content     = File.ReadAllText("Assets/AddBike.json");
            var httpRequest = JsonConvert.DeserializeObject <IList <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.BombardierConcurrentUsers = 1;
                options.BombardierDuration        = 1;
                options.BombardierTimeout         = 30;
                options.BombardierUseHttp2        = true;
                options.AddReplacementValues(new Dictionary <string, object> {
                    { "Bicycle", @"{""id"":66,""name"":""my bike"",""brand"":""cannondale"",""BicycleType"":1}" }
                });
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            //Run Bombardier Tests
            var bombardierTestsRunner = new BombardierTestsRunner(bombardierTests.ToList(), options =>
            {
                options.ObfuscateAuthenticationHeader = true;
            });
            var bombardierResults = await bombardierTestsRunner.Run();

            _logger.LogInformation(JsonConvert.SerializeObject(bombardierResults, Formatting.Indented));

            Assert.NotNull(bombardierResults);
            Assert.Single(bombardierResults);
            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);
            Assert.True(bombardierResults.FirstOrDefault().Counter1xx == 0);
            Assert.True(bombardierResults.FirstOrDefault().Counter2xx > 0);
            Assert.True(bombardierResults.FirstOrDefault().Counter3xx == 0);
            Assert.True(bombardierResults.FirstOrDefault().Counter4xx == 0);
            Assert.True(bombardierResults.FirstOrDefault().Counter5xx == 0);
            Assert.True(bombardierResults.FirstOrDefault().AverageLatency >= 0);
            Assert.True(bombardierResults.FirstOrDefault().MaxLatency >= 0);
            Assert.True(bombardierResults.FirstOrDefault().StdevLatency >= 0);
            Assert.True(bombardierResults.FirstOrDefault().AverageRequestsPerSecond >= 0);
            Assert.True(bombardierResults.FirstOrDefault().MaxRequestsPerSecond >= 0);
            Assert.True(bombardierResults.FirstOrDefault().StdevRequestsPerSecond >= 0);
            Assert.True(bombardierResults.FirstOrDefault().TestStart.AddMinutes(60) > DateTime.Now);
            Assert.True(bombardierResults.FirstOrDefault().TestStop.AddMinutes(60) > DateTime.Now);
            Assert.True(bombardierResults.FirstOrDefault().TestStop.Subtract(bombardierResults.FirstOrDefault().TestStart).TotalSeconds == bombardierResults.FirstOrDefault().Duration);
        }
Exemplo n.º 10
0
        public async Task BombardierGetTestWithOptionsTest_Successfull()
        {
            var content     = File.ReadAllText("Assets/GetAllBikes.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.BombardierConcurrentUsers = 1;
                options.BombardierDuration        = 1;
                options.BombardierTimeout         = 30;
                options.BombardierUseHttp2        = true;
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            //Run Bombardier Tests
            var bombardierTestsRunner = new BombardierTestsRunner(bombardierTests.ToList(), options =>
            {
                options.ObfuscateAuthenticationHeader = true;
            });
            var bombardierResults = await bombardierTestsRunner.Run();

            _logger.LogInformation(JsonConvert.SerializeObject(bombardierResults, Formatting.Indented));

            var asserter      = new BombardierTestAsserter(bombardierResults.FirstOrDefault());
            var assertResults = asserter
                                .NumberOf1xxResponses(x => x == 0)
                                .NumberOf2xxResponses(x => x >= 0)
                                .NumberOf3xxResponses(x => x == 0)
                                .NumberOf4xxResponses(x => x == 0)
                                .NumberOf5xxResponses(x => x == 0)
                                .AverageLatency(x => x >= 0)
                                .AverageRequestsPerSecond((x) => x >= 0)
                                .MaximumLatency(x => x >= 0)
                                .MaximumRequestsPerSecond(x => x >= 0)
                                .AssertAll();

            foreach (var result in assertResults)
            {
                Assert.True(result.IsTrue, result.Message);
            }
        }
Exemplo n.º 11
0
        public async Task GenerateBombardierTestPostNewBikeCaseInsensitiveTest_Successfull()
        {
            var content     = File.ReadAllText("Assets/AddBike.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.AddReplacementValues(new Dictionary <string, object> {
                    { "bicycle", @"{""id"":66,""name"":""my bike"",""brand"":""cannondale"",""BicycleType"":1}" }
                });
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            Assert.NotNull(bombardierTests);
            Assert.Single(bombardierTests);
            Assert.Contains($@" -m POST https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1 -c 3 -H ""Content-Type: application/json"" -b ""{{\""id\"":66,\""name\"":\""my bike\"",\""brand\"":\""cannondale\"",\""BicycleType\"":1}}"" --http2 --timeout=30s --duration=10s", bombardierTests.FirstOrDefault().Command);
            Assert.Equal(HttpMethod.Post, bombardierTests.FirstOrDefault().Method);
            Assert.Equal("https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1", bombardierTests.FirstOrDefault().Url.ToString());
        }
Exemplo n.º 12
0
        public async Task GenerateBombardierTestAddNewBikeInsecureTest_Successfull()
        {
            var content     = File.ReadAllText("Assets/AddBike.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.BombardierNumberOfTotalRequests = 10;
                options.BombardierInsecure = true;
                options.BombardierUseHttp2 = false;
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            Assert.NotNull(bombardierTests);
            Assert.Single(bombardierTests);
            Assert.Contains($@" -m POST https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1 -c 3 -H ""Content-Type: application/json"" -b ""{{\""id\"":1,\""name\"":\""Foil\"",\""brand\"":\""Cannondale\""}}"" --http1 --timeout=30s --duration=10s --insecure --requests=10", bombardierTests.FirstOrDefault().Command);
            Assert.Equal(HttpMethod.Post, bombardierTests.FirstOrDefault().Method);
            Assert.Equal("https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1", bombardierTests.FirstOrDefault().Url.ToString());
        }
Exemplo n.º 13
0
        public async Task GenerateBombardierTestGetAllBikesInsecureTest_Successfull()
        {
            var content     = File.ReadAllText("Assets/GetAllBikes.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.BombardierNumberOfTotalRequests = 10;
                options.BombardierInsecure = true;
                options.BombardierUseHttp2 = false;
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            Assert.NotNull(bombardierTests);
            Assert.Single(bombardierTests);
            Assert.Contains($@" -m GET https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1 -c 3 --http1 --timeout=30s --duration=10s --insecure --requests=10", bombardierTests.FirstOrDefault().Command);
            Assert.Equal(HttpMethod.Get, bombardierTests.FirstOrDefault().Method);
            Assert.Equal("https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1", bombardierTests.FirstOrDefault().Url.ToString());
        }
Exemplo n.º 14
0
        public async Task GenerateBombardierTestDeleteBikeTest_Successfull()
        {
            var content     = File.ReadAllText("Assets/DeleteBike.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.AddReplacementValues(new Dictionary <string, object> {
                    { "id", 1 }
                });
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            Assert.NotNull(bombardierTests);
            Assert.Single(bombardierTests);
            Assert.Contains($@" -m DELETE https://qatoolkitapi.azurewebsites.net/api/bicycles/1?api-version=1 -c 3 --http2 --timeout=30s --duration=10s", bombardierTests.FirstOrDefault().Command);
            Assert.Equal(HttpMethod.Delete, bombardierTests.FirstOrDefault().Method);
            Assert.Equal("https://qatoolkitapi.azurewebsites.net/api/bicycles/1?api-version=1", bombardierTests.FirstOrDefault().Url.ToString());
        }
Exemplo n.º 15
0
        private BombardierTest CreateBombardierTest(int concurrentUsersCount, int totalRequestsCount)
        {
            var testsGenerator = new BombardierTestsGenerator(
                CreateRequest(),
                options =>
            {
                options.BombardierConcurrentUsers       = concurrentUsersCount;
                options.BombardierNumberOfTotalRequests = totalRequestsCount;
                options.BombardierInsecure = true;
            }
                );
            var bombardierTest = testsGenerator.Generate().Result.Single();

            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                bombardierTest.Command = bombardierTest.Command.Replace("&", "^&"); //screening HTTP-Query arg delimiter
            }
            PrintProgress(bombardierTest.Command);
            return(bombardierTest);
        }
Exemplo n.º 16
0
        public async Task GenerateBombardierTestGetBikesExampleWithFilterTest_Successfull()
        {
            var content     = File.ReadAllText("Assets/GetAllBikes.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.AddReplacementValues(new Dictionary <string, object> {
                    { "api-version", "2" },
                    { "bicycleType", "1" }
                });
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            Assert.NotNull(bombardierTests);
            Assert.Single(bombardierTests);
            Assert.Contains($@" -m GET https://qatoolkitapi.azurewebsites.net/api/bicycles?bicycleType=1&api-version=2 -c 3 --http2 --timeout=30s --duration=10s", bombardierTests.FirstOrDefault().Command);
            Assert.Equal(HttpMethod.Get, bombardierTests.FirstOrDefault().Method);
            Assert.Equal("https://qatoolkitapi.azurewebsites.net/api/bicycles?bicycleType=1&api-version=2", bombardierTests.FirstOrDefault().Url.ToString());
        }
Exemplo n.º 17
0
        public async Task GenerateBombardierTestExclusiveNumberOfRequest100Test_Successfull()
        {
            var content     = File.ReadAllText("Assets/GetAllBikes.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.BombardierConcurrentUsers       = 1;
                options.BombardierDuration              = 1;
                options.BombardierTimeout               = 30;
                options.BombardierNumberOfTotalRequests = 100;
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            _logger.LogInformation(JsonConvert.SerializeObject(bombardierTests, Formatting.Indented));

            Assert.NotNull(bombardierTests);
            Assert.Single(bombardierTests);
            Assert.Contains(" -m GET https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1 -c 1 --http2 --timeout=30s --duration=1s --requests=100", bombardierTests.FirstOrDefault().Command);
            Assert.Equal(HttpMethod.Get, bombardierTests.FirstOrDefault().Method);
            Assert.Equal("https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1", bombardierTests.FirstOrDefault().Url.ToString());
        }
Exemplo n.º 18
0
        public async Task GenerateBombardierTestWithOptionsOAuth2Test_Successfull()
        {
            var content     = File.ReadAllText("Assets/GetAllBikes.json");
            var httpRequest = JsonConvert.DeserializeObject <IEnumerable <HttpRequest> >(content);

            var bombardierTestsGenerator = new BombardierTestsGenerator(httpRequest, options =>
            {
                options.AddOAuth2Token("1234567890", AuthenticationType.Customer);
                options.BombardierConcurrentUsers       = 1;
                options.BombardierDuration              = 1;
                options.BombardierTimeout               = 30;
                options.BombardierUseHttp2              = true;
                options.BombardierNumberOfTotalRequests = 22;
            });

            var bombardierTests = await bombardierTestsGenerator.Generate();

            Assert.NotNull(bombardierTests);
            Assert.Single(bombardierTests);
            Assert.Contains($" -m GET https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1 -c 1 -H \"Authorization: Bearer 1234567890\" --http2 --timeout=30s --duration=1s --requests=22", bombardierTests.FirstOrDefault().Command);
            Assert.Equal(HttpMethod.Get, bombardierTests.FirstOrDefault().Method);
            Assert.Equal("https://qatoolkitapi.azurewebsites.net/api/bicycles?api-version=1", bombardierTests.FirstOrDefault().Url.ToString());
        }