public LoadTestResult Build() { try { var testRuns = _loadGenerators.Where(k => k.Result != null && k.Result.TestRuns != null) .SelectMany(k => k.Result.TestRuns) .ToList(); var result = new LoadTestResult { TestRunnersResults = _loadGenerators.Where(k => k.Result != null).Select(k => k.Result), TotalIterations = _loadTest.TotalIterations, TotalRuntime = _loadTest.TotalRuntime, TotalErrors = _loadTest.TotalErrors, Heartbeat = _heartRateMonitor.Heartbeats, TestRuns = testRuns }; if (testRuns.Any()) { result.MaxResponseTime = testRuns.Max(k => k.ResponseTime); result.MinResponseTime = testRuns.Min(k => k.ResponseTime); result.AverageResponseTime = new TimeSpan(Convert.ToInt64((testRuns.Average(k => k.ResponseTime.Ticks)))); } if (_heartRateMonitor.Heartbeats != null && _heartRateMonitor.Heartbeats.Any()) { result.MaxThroughput = _heartRateMonitor.Heartbeats.Where(k => !double.IsNaN(k.Throughput)).Max(k => k.Throughput); result.MinThroughput = _heartRateMonitor.Heartbeats.Where(k => !double.IsNaN(k.Throughput)).Min(k => k.Throughput); result.AverageThroughput = _heartRateMonitor.Heartbeats.Where(k => !double.IsNaN(k.Throughput)).Average(k => k.Throughput); } return result; } catch (Exception ex) { throw new NLoadException("Failed to build load test result.", ex); } }
public LoadTestResult Build() { try { var testRuns = _loadGenerators.Where(k => k.Result != null && k.Result.TestRuns != null) .SelectMany(k => k.Result.TestRuns) .ToList(); var result = new LoadTestResult { TestRunnersResults = _loadGenerators.Where(k => k.Result != null).Select(k => k.Result), TotalIterations = _loadTest.TotalIterations, TotalRuntime = _loadTest.TotalRuntime, TotalErrors = _loadTest.TotalErrors, Heartbeat = _heartRateMonitor.Heartbeats, TestRuns = testRuns }; if (testRuns.Any()) { result.MaxResponseTime = testRuns.Max(k => k.ResponseTime); result.MinResponseTime = testRuns.Min(k => k.ResponseTime); result.AverageResponseTime = new TimeSpan(Convert.ToInt64((testRuns.Average(k => k.ResponseTime.Ticks)))); } if (_heartRateMonitor.Heartbeats != null && _heartRateMonitor.Heartbeats.Any()) { result.MaxThroughput = _heartRateMonitor.Heartbeats.Where(k => !double.IsNaN(k.Throughput)).Max(k => k.Throughput); result.MinThroughput = _heartRateMonitor.Heartbeats.Where(k => !double.IsNaN(k.Throughput)).Min(k => k.Throughput); result.AverageThroughput = _heartRateMonitor.Heartbeats.Where(k => !double.IsNaN(k.Throughput)).Average(k => k.Throughput); } return(result); } catch (Exception ex) { throw new NLoadException("Failed to build load test result.", ex); } }