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 static void WriteEachClientResultJson(ScenarioInput scenario) { if (Directory.Exists($"{scenario.Directory}\\{scenario.CurrentSystemName}")) { Directory.Delete($"{scenario.Directory}\\{scenario.CurrentSystemName}", true); } else { Directory.CreateDirectory($"{scenario.Directory}\\{scenario.CurrentSystemName}"); } foreach (var scenarioResult in scenario.Bateries) { if (!Directory.Exists($"{scenario.Directory}\\{scenario.CurrentSystemName}\\{scenarioResult.Count}")) { Directory.CreateDirectory($"{scenario.Directory}\\{scenario.CurrentSystemName}\\{scenarioResult.Count}"); } foreach (var scenarioResultClientResult in scenarioResult.ClientResults) { using (var streamWriter = new StreamWriter(scenario.ResultPath(scenarioResult.Count, scenarioResultClientResult.Count))) { var contentJsonUnPrettyfied = JsonConvert.SerializeObject(scenarioResultClientResult.Result, Formatting.Indented); streamWriter.WriteLine(contentJsonUnPrettyfied); } } } }