Exemple #1
0
        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.");
            }
        }