public void RenderTimeTaken() { ClearSeries(); var parser = new ResultsParser(); var times = parser.TimeLineDataForIndividualRequest(Results, Url); var pane = Chart.GraphPane; pane.Title.Text = "Time taken per request for\r\n" + Url; pane.Title.FontSpec.FontColor = Color.DarkBlue; pane.Title.FontSpec.Size = 14.25F; pane.Title.FontSpec.IsBold = true; pane.LineType = LineType.Normal; pane.XAxis.Title.Text = "Request number"; pane.YAxis.Title.Text = "milli-seconds"; pane.Chart.Fill = new Fill(Color.LightYellow, Color.PaleGoldenrod, 45.0F); Chart.IsShowPointValues = true; PointPairList series = new PointPairList(); foreach (var req in times.Where(t => !t.IsError)) { var pt = new PointPair(req.RequestNo, req.TimeTaken, req.TimeTaken.ToString()); series.Add(pt); } var curve = pane.AddCurve("Success", series, Color.Green, SymbolType.Circle); curve.Line.Width = 2.0F; curve.Line.IsAntiAlias = true; curve.Symbol.Fill = new Fill(Color.LightYellow); curve.Symbol.Size = 4; PointPairList series2 = new PointPairList(); foreach (var req in times.Where(t => t.IsError)) { var point = new PointPair(req.TimeTaken, req.RequestNo); series2.Add(point); } var curve2 = pane.AddCurve("Errors", series2, Color.Red); curve2.Line.Width = 2.0F; curve2.Line.IsAntiAlias = true; curve2.Symbol.Fill = new Fill(Color.White); curve2.Symbol.Size = 4; // Force refresh of chart pane.AxisChange(); }
public void RenderTimeTaken() { ClearSeries(); var parser = new ResultsParser(); var times = parser.TimeLineDataForIndividualRequest(Results,Url); var pane = Chart.GraphPane; pane.Title.Text = "Time taken per request for\r\n" + Url; pane.Title.FontSpec.FontColor = Color.DarkBlue; pane.Title.FontSpec.Size = 14.25F; pane.Title.FontSpec.IsBold = true; pane.LineType = LineType.Normal; pane.XAxis.Title.Text = "Request number"; pane.YAxis.Title.Text = "milli-seconds"; pane.Chart.Fill = new Fill(Color.LightYellow, Color.PaleGoldenrod, 45.0F); Chart.IsShowPointValues = true; PointPairList series = new PointPairList(); foreach (var req in times.Where( t=> !t.IsError )) { var pt = new PointPair(req.RequestNo, req.TimeTaken,req.TimeTaken.ToString()); series.Add(pt); } var curve = pane.AddCurve("Success", series, Color.Green, SymbolType.Circle); curve.Line.Width = 2.0F; curve.Line.IsAntiAlias = true; curve.Symbol.Fill = new Fill(Color.LightYellow); curve.Symbol.Size = 4; PointPairList series2 = new PointPairList(); foreach (var req in times.Where( t=> t.IsError )) { var point = new PointPair(req.TimeTaken,req.RequestNo); series2.Add(point); } var curve2 = pane.AddCurve("Errors", series2, Color.Red); curve2.Line.Width = 2.0F; curve2.Line.IsAntiAlias = true; curve2.Symbol.Fill = new Fill(Color.White); curve2.Symbol.Size = 4; // Force refresh of chart pane.AxisChange(); }
private void RenderRequestsPerSecond() { ClearSeries(); var parser = new ResultsParser(); var reqs = parser.RequestsPerSecond(RequestWriter); var pane = Chart.GraphPane; pane.Title.Text = "Requests per Second"; pane.Title.FontSpec.FontColor = Color.DarkBlue; pane.Title.FontSpec.Size = 14.25F; pane.Title.FontSpec.IsBold = true; pane.LineType = LineType.Normal; pane.XAxis.Title.Text = "second of test"; pane.YAxis.Title.Text = "requests / second"; pane.Chart.Fill = new Fill(Color.LightYellow, Color.PaleGoldenrod, 45.0F); Chart.IsShowPointValues = true; Chart.GraphPane.LineType = LineType.Normal; PointPairList series = new PointPairList(); foreach (var req in reqs) { var point = new PointPair(req.Second, req.Requests); series.Add(point); } var curve = pane.AddCurve("", series, Color.Green); curve.Line.Width = 4.0F; curve.Line.IsAntiAlias = true; curve.Line.Fill = new Fill(Color.White, Color.Green, 45F); curve.Symbol.Fill = new Fill(Color.LightYellow); curve.Symbol.Size = 4; // activate the cardinal spline smoothing curve.Line.IsSmooth = true; curve.Line.SmoothTension = 0.5F; // Force refresh of chart pane.AxisChange(); }
private void RenderRequestsPerSecond() { ClearSeries(); var parser = new ResultsParser(); var reqs = parser.RequestsPerSecond(Results); var pane = Chart.GraphPane; pane.Title.Text = "Requests per Second"; pane.Title.FontSpec.FontColor = Color.DarkBlue; pane.Title.FontSpec.Size = 14.25F; pane.Title.FontSpec.IsBold = true; pane.LineType = LineType.Normal; pane.XAxis.Title.Text = "second of test"; pane.YAxis.Title.Text = "requests / second"; pane.Chart.Fill = new Fill(Color.LightYellow, Color.PaleGoldenrod, 45.0F); Chart.IsShowPointValues = true; Chart.GraphPane.LineType = LineType.Normal; PointPairList series = new PointPairList(); foreach (var req in reqs) { var point = new PointPair(req.Second, req.Requests); series.Add(point); } var curve = pane.AddCurve("",series,Color.Green); curve.Line.Width = 4.0F; curve.Line.IsAntiAlias = true; curve.Line.Fill = new Fill(Color.White, Color.Green, 45F); curve.Symbol.Fill = new Fill(Color.LightYellow); curve.Symbol.Size = 4; // activate the cardinal spline smoothing curve.Line.IsSmooth = true; curve.Line.SmoothTension = 0.5F; // Force refresh of chart pane.AxisChange(); }
public void RequestSummaryTest() { var time = DateTime.UtcNow; var requests = new List<HttpRequestData>() { new HttpRequestData() { Url = "http://localhost/", Timestamp = time, IsError = false, TimeTakenMs = 10 }, new HttpRequestData() { Url = "http://localhost/wconnect", Timestamp = time.AddMilliseconds(20), IsError = false, TimeTakenMs = 15 }, new HttpRequestData { Url = "http://localhost/", Timestamp = time.AddMilliseconds(220), IsError = false, TimeTakenMs = 15 }, new HttpRequestData { Url = "http://localhost/", Timestamp = time.AddMilliseconds(1020), TimeTakenMs = 20 }, new HttpRequestData { Url = "http://localhost/wconnect", Timestamp = time.AddMilliseconds(1050), TimeTakenMs = 20 }, new HttpRequestData { Url = "http://localhost/", Timestamp = time.AddMilliseconds(1200), TimeTakenMs = 20 }, new HttpRequestData { Url = "http://localhost/", Timestamp = time.AddMilliseconds(3020), TimeTakenMs = 20 }, new HttpRequestData { Url = "http://localhost/", Timestamp = time.AddMilliseconds(3050), TimeTakenMs = 20 }, new HttpRequestData { Url = "http://localhost/wconnect", Timestamp = time.AddMilliseconds(3200), TimeTakenMs = 20 }, new HttpRequestData { Url = "http://localhost/wconnect", Timestamp = time.AddMilliseconds(3500), TimeTakenMs = 50 }, new HttpRequestData { Url = "http://localhost/wconnect/testpage", Timestamp = time.AddMilliseconds(3100), IsError = false, TimeTakenMs = 50 }, new HttpRequestData { Url = "http://localhost/wconnect/testpage", IsError = false, Timestamp = time.AddMilliseconds(3200), TimeTakenMs = 57 }, new HttpRequestData { Url = "http://localhost/wconnect/testpage2", Timestamp = time.AddMilliseconds(3100), TimeTakenMs = 50 }, new HttpRequestData { Url = "http://localhost/wconnect/testpage2", Timestamp = time.AddMilliseconds(3200), TimeTakenMs = 57 } }; var parser = new ResultsParser(); var res = parser.UrlSummary(requests, 200); Assert.IsNotNull(res); Assert.IsTrue(res.Count() > 0); foreach (var r in res) { Console.WriteLine(r.Url + ": " + JsonSerializationUtils.Serialize(r.Results,false,true)); } var html = parser.GetResultReportHtml(requests,10,2); Console.WriteLine(html); var file = App.UserDataPath + "html\\_preview.html"; File.WriteAllText(file, html); ShellUtils.GoUrl(file); }
public void RequestPerSecondListTest() { var time = DateTime.UtcNow; var requests = new List<HttpRequestData>() { new HttpRequestData() { Timestamp = time, TimeTakenMs = 10 }, new HttpRequestData() { Timestamp = time.AddMilliseconds(20), TimeTakenMs = 15 }, new HttpRequestData { Timestamp = time.AddMilliseconds(220), TimeTakenMs = 15 }, new HttpRequestData { Timestamp = time.AddMilliseconds(1020), TimeTakenMs = 20 }, new HttpRequestData { Timestamp = time.AddMilliseconds(1050), TimeTakenMs = 20 }, new HttpRequestData { Timestamp = time.AddMilliseconds(1200), TimeTakenMs = 20 }, new HttpRequestData { Timestamp = time.AddMilliseconds(3020), TimeTakenMs = 20 }, new HttpRequestData { Timestamp = time.AddMilliseconds(3050), TimeTakenMs = 20 }, new HttpRequestData { Timestamp = time.AddMilliseconds(3200), TimeTakenMs = 20 }, new HttpRequestData { Timestamp = time.AddMilliseconds(3500), TimeTakenMs = 50 } }; var parser = new ResultsParser(); var res = parser.RequestsPerSecond(requests); Assert.IsNotNull(res); foreach (var r in res) { Console.WriteLine(r.Second + ": " + r.Requests); } }