public void Init() { _modelReceive = new ResultTestReceiveExpandedModel(); _modelReceive.Url = "Example.pl"; _modelReceive.KBytes = 100; _modelReceive.Runs.Add(new Run { Id = 1, LoadTime = 1000, RenderStart = 1000, SpeedIndex = 2000, Ttfb = 100, VisuallyComplete = 1000 }); _modelReceive.Browser = _browser; _modelReceive.Connection = _connection; _modelReceive.Runs.Add(new Run { Id = 2, LoadTime = 1000, RenderStart = 1000, SpeedIndex = 2000, Ttfb = 100, VisuallyComplete = 1000 }); }
public static ResultTestReceiveBaseModel ConvertReceive(string json) { dynamic responseObj = JsonConvert.DeserializeObject(json); var statusCode = (int)responseObj.statusCode.Value; string statusText = responseObj.statusText.Value; if (statusCode < 200) { return new ResultTestReceiveBaseModel { StatusCode = statusCode, StatusText = statusText } } ; if (statusCode == 200) { var result = new ResultTestReceiveExpandedModel { StatusCode = statusCode, StatusText = statusText }; result.Url = responseObj.data.url; foreach (var r in responseObj.data.runs) { var run = new Run(); run.Id = (int)r.Value.firstView.run.Value; if (r.Value.firstView.loadTime.Value == 0) { throw new Exception("Result response from server is incorrect"); } run.LoadTime = (int)r.Value.firstView.loadTime.Value; run.RenderStart = (int)r.Value.firstView.render.Value; run.Ttfb = (int)r.Value.firstView.TTFB.Value; run.SpeedIndex = (int)r.Value.firstView.SpeedIndex.Value; run.VisuallyComplete = (int)r.Value.firstView.visualComplete.Value; result.Runs.Add(run); if (result.KBytes != 0) { continue; } result.KBytes = (int)r.Value.firstView.breakdown.js.bytes / 1024; result.Browser = r.Value.firstView.browser_name; } result.Connection = responseObj.data.connectivity; return(result); } throw new Exception("Error while receive results test. " + $"HttpCode {statusCode} " + $"ErrorText:{statusText}"); }
public async Task Save(ResultTestReceiveExpandedModel result, PageModel page) { if (result == null) { throw new ArgumentException("Result test of page can't be empty"); } if (result.Runs == null) { throw new ArgumentException("Result runs test of page can't be empty"); } if (!Directory.Exists(_folder)) { Directory.CreateDirectory(_folder); } using (var outputFile = new StreamWriter(GetPathFile(page.Name, result.Browser, result.Connection), false)) { await outputFile.WriteLineAsync($"URL: {result.Url}"); await outputFile.WriteLineAsync($"Framework: {page.Name} v{page.Version}"); await outputFile.WriteLineAsync($"KBytes of JS: {result.KBytes} kB"); await outputFile.WriteLineAsync(Environment.NewLine); await outputFile.WriteLineAsync("#;TTFB [ms];Render Start[ms];" + "Visually Complete[ms];Load TIme[ms];Speed Index"); foreach (var run in result.Runs) { await outputFile.WriteLineAsync( $"{run.Id};{run.Ttfb};{run.RenderStart};{run.VisuallyComplete};" + $"{run.LoadTime};{run.SpeedIndex}"); } } }