public void Execute() { var fileName = Path.GetFileNameWithoutExtension(_file); var path = Path.GetDirectoryName(_file); if (path != null) { var output = Path.Combine(path, fileName + "_" + DateTime.Now.ToString("ddMMyyyy") + ".jpeg"); using (var fs = new FileStream(_file, FileMode.Open, FileAccess.Read)) { var request = new JMeterLogsRequest {Logs = fs.ReadContent()}; var dataResultsResponse = _service.ProcessLogs(request); var chartResponse = _service.GenerateCharts(new JMeterDataResultsRequest { DataResults = dataResultsResponse.DataResults }); using (var outputStream = new FileStream(output, FileMode.Create, FileAccess.ReadWrite)) { outputStream.Write(chartResponse.Charts[0].Data, 0, chartResponse.Charts[0].Data.Length); Console.WriteLine("{0} Done", output); } } } }
public void Execute() { string[] filePaths = Directory.GetFiles(_directory, "*.jtl", SearchOption.AllDirectories); if (filePaths.Length > 0) { Console.WriteLine("{0} file{1} to process...", filePaths.Length, filePaths.Length > 1 ? "s" : ""); if (_merge) { Console.WriteLine("Creating Trend Charts..."); var dataResults = new List<RequestDataResults>(); // Process files and merge results foreach (var file in filePaths) { using (var fs = new FileStream(file, FileMode.Open, FileAccess.Read)) { var dataResultsResponse = _service.ProcessLogs(new JMeterLogsRequest { Logs = fs.ReadContent() }); dataResults.AddRange(dataResultsResponse.DataResults); } } // Generate chart var chartResponse = _service.GenerateCharts(new JMeterDataResultsRequest { DataResults = dataResults.ToArray() }); // Save image chartResponse.Charts.AsParallel().ForAll(chart => { var fileName = string.Format( "{0}_{1}.jpeg", DateTime.Now.ToString("ddMMyyyy"), chart.Name.Replace('/', '_')); string output = Path.Combine(_directory, fileName); if (_outputDirectory != null) { if (!Directory.Exists(_outputDirectory)) Directory.CreateDirectory(_outputDirectory); output = Path.Combine(_outputDirectory, fileName); } using ( var outputStream = new FileStream(output, FileMode. Create, FileAccess. ReadWrite) ) { Console.WriteLine("Writing {0} ... ({1}KB)", fileName, chart.Data.Length / 1000); outputStream.Write(chart.Data, 0, chart.Data.Length); Console.WriteLine("{0} Done", output); } }); } else { Console.WriteLine("Creating Comparison Charts..."); foreach (var file in filePaths) { var cmd = new FileCommand(file); cmd.Execute(); } } } else { Console.WriteLine("No file to process."); } }