public void Execute(TestScenario testScenario, TestScenarioResults testScenarioResults, bool shouldExecuteRecordedRequestPauses, List <string> ignoreUrlRequestsPatterns) { var testScenarioRunResult = new TestScenarioRunResult(); var watch = Stopwatch.StartNew(); foreach (var httpRequestDto in testScenario.Requests) { if (ShouldFilterRequest(httpRequestDto.Url, ignoreUrlRequestsPatterns)) { continue; } var requestResults = new RequestResults(); try { if (shouldExecuteRecordedRequestPauses) { Thread.Sleep(httpRequestDto.MillisecondsPauseAfterPreviousRequest); } var request = CreateRestRequest(httpRequestDto); var response = _apiClientService.Execute(request); UpdateCookiesCollection(response); requestResults.ExecutionTime = response.ExecutionTime; requestResults.StatusCode = response.StatusCode; requestResults.RequestUrl = response.ResponseUri.ToString(); requestResults.IsSuccessful = response.IsSuccessful; if (!response.IsSuccessful) { requestResults.ResponseContent = response.ResponseUri.ToString(); } foreach (var loadTestAssertionHandler in _loadTestAssertionHandlers) { var responseAssertionResults = loadTestAssertionHandler.Execute(httpRequestDto, response); requestResults.ResponseAssertionResults.AddRange(responseAssertionResults); } } catch (Exception ex) { requestResults.RequestUrl = httpRequestDto.Url; requestResults.IsSuccessful = false; requestResults.ResponseContent = $"{httpRequestDto.Url} {ex.Message}"; Console.WriteLine($"FAILED- {httpRequestDto.Url}"); } testScenarioRunResult.RequestResults.Add(requestResults); } watch.Stop(); testScenarioRunResult.ExecutionTime = watch.Elapsed; testScenarioResults.TimesExecuted++; testScenarioResults.Weight = testScenario.Weight; if (testScenarioRunResult.Passed) { testScenarioResults.TimesPassed++; } else { testScenarioResults.TimesFailed++; } testScenarioResults.TestScenarioRunResults.GetOrAdd(testScenarioRunResult.RunId, testScenarioRunResult); }