Exemplo n.º 1
0
        private string GetExceptionJson()
        {
            var resultsList = new List <TestExceptionReportItem>();

            foreach (var key in _statusService.Results.Keys)
            {
                var results = new TestDurationReport();
                results.Name = key;

                var events = _statusService.Results[key].Where(s => s.Status == ResultStatusType.Failed)
                             .OrderByDescending(s => s.StartDate)
                             .Take(50);
                var reportItems = events.Select(e => new TestExceptionReportItem()
                {
                    TestName       = key
                    , StartDate    = e.StartDate
                    , ResponseCode = e.StatusCode == 0 ? "" : e.StatusCode.ToString()
                    , Message      = e.Exception.Message
                    , Duration     = e.Duration.Value
                });
                resultsList.AddRange(reportItems);
            }

            var report = new TestExceptionReport();

            report.Exceptions = resultsList.OrderByDescending(s => s.StartDate).Take(50);
            return(JsonConvert.SerializeObject(report));
        }
Exemplo n.º 2
0
        private string GetDurationJson()
        {
            var resultsList = new List <TestDurationReport>();

            foreach (var key in _statusService.Results.Keys)
            {
                var results = new TestDurationReport();
                results.Name = key;

                var events = _statusService.Results[key].Where(r => r.Duration.HasValue && r.StartDate > DateTime.Now.AddHours(-1)).ToList();;

                var rows = new List <TestDurationReportItem>();
                foreach (var group in events.GroupBy(g => g.StartDate.ToString("HH:mm")))
                {
                    var item = new TestDurationReportItem()
                    {
                        AverageDuration    = group.Average(g => g.Duration.Value),
                        SuccessfulRequests = group.Where(g => g.Status == ResultStatusType.Success).Count(),
                        FailedRequests     = group.Where(g => g.Status == ResultStatusType.Failed).Count(),
                        EventTime          = group.Key
                    };

                    rows.Add(item);
                }
                results.Items = rows;
                if (rows.Count > 0 && rows.Count < 60)
                {
                    var minDate    = events.Min(e => e.StartDate);
                    var paddedRows = new List <TestDurationReportItem>();
                    for (int i = 60 - rows.Count; i > 0; i--)
                    {
                        paddedRows.Add(new TestDurationReportItem()
                        {
                            EventTime = minDate.AddMinutes(-1 - i).ToString("HH:mm")
                        });
                    }
                    paddedRows.AddRange(rows.OrderBy(r => r.EventTime));

                    results.Items = paddedRows;
                }

                resultsList.Add(results);
            }

            return(JsonConvert.SerializeObject(resultsList));
        }