private void ProcessScenario(ScenarioInput scenario) { Console.WriteLine($"Scenario: {scenario.Directory}\\{scenario.FileName}"); Console.WriteLine(JsonConvert.SerializeObject(scenario)); ConfigProxy(scenario); for (var currentSystemLanguage = 0; currentSystemLanguage < scenario.UrlFetch.BaseUrl.Length; currentSystemLanguage++) { scenario.CurrentSystem = currentSystemLanguage; for (var count = 1; count <= scenario.Count; count++) { foreach (var subScenario in scenario.Clients) { Console.WriteLine($"Scenario: {scenario.Directory}\\{scenario.FileName}"); Console.WriteLine($"System Language: {scenario.CurrentSystemName}"); Console.WriteLine($" Bateria de Teste: {count}/{scenario.Count}"); Console.WriteLine($" SubScenario: {subScenario}"); Console.WriteLine(" Start sending"); if (File.Exists(scenario.ResultPath(count, subScenario))) { File.Delete(scenario.ResultPath(count, subScenario)); } if (scenario.AsyncClients) { var tasks = new List <Task <MetricStatus> >(); for (var i = 1; i <= subScenario; i++) { tasks.Add(MakeRequestAsync(scenario, i, subScenario)); } var results = Task.WhenAll(tasks).GetAwaiter().GetResult(); foreach (var result in results) { scenario.AddResult(count, subScenario, result); } } else { for (var i = 1; i <= subScenario; i++) { scenario.AddResult(count, subScenario, MakeRequest(scenario, i, subScenario)); } } } } _resultWriterService.Write(scenario); } }
private void ProcessScenario(Scenario scenario) { Console.WriteLine($"Scenario: {scenario.FileName}"); Console.WriteLine(); if (File.Exists(scenario.ResultPath)) { File.Delete(scenario.ResultPath); } for (int i = 0; i < scenario.Count; i++) { new Thread((x) => { var result = MakeRequest(scenario); _resultWriterService.Write(scenario, ((int)x) + 1, result); }).Start(i); } }