Пример #1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @SuppressWarnings("unchecked") protected void processResults(org.camunda.bpm.qa.performance.engine.framework.PerfTestResults results, org.camunda.bpm.qa.performance.engine.framework.aggregate.TabularResultSet tabularResultSet)
        protected internal override void processResults(PerfTestResults results, TabularResultSet tabularResultSet)
        {
            List <object> row = new List <object>();

            row.Add(results.TestName);

            int insertCount = 0;
            int deleteCount = 0;
            int updateCount = 0;
            int selectCount = 0;

            if (results.PassResults.Count == 0)
            {
                return;
            }

            IList <PerfTestStepResult> stepResults = results.PassResults[0].StepResults;

            foreach (PerfTestStepResult stepResult in stepResults)
            {
                IList <LinkedHashMap <string, string> > statementLogs = (IList <LinkedHashMap <string, string> >)stepResult.ResultData;
                foreach (LinkedHashMap <string, string> statementLog in statementLogs)
                {
                    string           type          = statementLog.get("statementType");
                    SqlStatementType statementType = Enum.Parse(typeof(SqlStatementType), type);

                    switch (statementType)
                    {
                    case SqlStatementType.DELETE:
                        deleteCount++;
                        break;

                    case SqlStatementType.INSERT:
                        insertCount++;
                        break;

                    case SqlStatementType.UPDATE:
                        updateCount++;
                        break;

                    default:
                        selectCount++;
                        break;
                    }
                }
            }

            row.Add(insertCount);
            row.Add(deleteCount);
            row.Add(updateCount);
            row.Add(selectCount);

            tabularResultSet.addResultRow(row);
        }
Пример #2
0
        protected internal virtual void addTableHeaders(TabularResultSet tabularResultSet, IList <string> watchActivities)
        {
            IList <object> row1 = new List <object>();
            IList <object> row2 = new List <object>();

            row1.Add(new SectionedHtmlReportBuilder.TableCell("", true));
            row2.Add(new SectionedHtmlReportBuilder.TableCell("seconds", true));
            foreach (string activity in watchActivities)
            {
                row1.Add(new SectionedHtmlReportBuilder.TableCell(activity, 5, true));
                row2.Add(new SectionedHtmlReportBuilder.TableCell("started", true));
                row2.Add(new SectionedHtmlReportBuilder.TableCell("&sum; started", true));
                row2.Add(new SectionedHtmlReportBuilder.TableCell("ended", true));
                row2.Add(new SectionedHtmlReportBuilder.TableCell("&sum; ended", true));
                row2.Add(new SectionedHtmlReportBuilder.TableCell("&Oslash; duration", true));
            }

            row1.Add(new SectionedHtmlReportBuilder.TableCell("", 2, true));
            row2.Add(new SectionedHtmlReportBuilder.TableCell("act/s", true));
            row2.Add(new SectionedHtmlReportBuilder.TableCell("&Oslash; act/s", true));

            tabularResultSet.addResultRow(row1);
            tabularResultSet.addResultRow(row2);
        }
Пример #3
0
        protected internal virtual void addTableBody(TabularResultSet tabularResultSet, IList <string> watchActivities, PerfTestResult passResult)
        {
            // get first and last timestamp
            DateTime firstStartTime = null;
            DateTime lastEndTime    = null;

            foreach (IList <ActivityPerfTestResult> activityResults in passResult.ActivityResults.Values)
            {
                foreach (ActivityPerfTestResult activityResult in activityResults)
                {
                    if (firstStartTime == null || activityResult.StartTime < firstStartTime)
                    {
                        firstStartTime = activityResult.StartTime;
                    }

                    if (lastEndTime == null || activityResult.EndTime > lastEndTime)
                    {
                        lastEndTime = activityResult.EndTime;
                    }
                }
            }

            long firstTimestamp = firstStartTime.Ticks;
            long lastTimestamp  = lastEndTime.Ticks;
            IList <IDictionary <string, ActivityCount> > resultTable = new List <IDictionary <string, ActivityCount> >();

            for (long t = firstTimestamp; t <= lastTimestamp + INTERVAL; t += INTERVAL)
            {
                IDictionary <string, ActivityCount> activitiesMap = new Dictionary <string, ActivityCount>();
                foreach (string activity in watchActivities)
                {
                    activitiesMap[activity] = new ActivityCount(this);
                }
                resultTable.Add(activitiesMap);
            }


            foreach (IList <ActivityPerfTestResult> activityResults in passResult.ActivityResults.Values)
            {
                foreach (ActivityPerfTestResult activityResult in activityResults)
                {
                    string activityId = activityResult.ActivityId;
                    int    startSlot  = calculateTimeSlot(activityResult.StartTime, firstTimestamp);
                    int    endSlot    = calculateTimeSlot(activityResult.EndTime, firstTimestamp);
                    resultTable[startSlot][activityId].incrementStarted();
                    resultTable[endSlot][activityId].incrementEnded();
                    resultTable[endSlot][activityId].addDuration(activityResult.Duration);
                }
            }

            List <object> row = null;
            IDictionary <string, ActivityCount> sumMap = new Dictionary <string, ActivityCount>();

            foreach (string activity in watchActivities)
            {
                sumMap[activity] = new ActivityCount(this);
            }

            long sumActivitiesEnded = 0;

            for (int i = 0; i < resultTable.Count; i++)
            {
                row = new List <object>();
                row.Add(i * INTERVAL / TIME_UNIT);
                long currentActivitiesEnded = 0;
                foreach (string activity in watchActivities)
                {
                    sumMap[activity].addStarted(resultTable[i][activity].Started);
                    sumMap[activity].addEnded(resultTable[i][activity].Ended);
                    sumMap[activity].addDuration(resultTable[i][activity].Duration);
                    currentActivitiesEnded += resultTable[i][activity].Ended;
                }
                foreach (string activity in watchActivities)
                {
                    long   started       = resultTable[i][activity].Started;
                    long   ended         = resultTable[i][activity].Ended;
                    double endedFraction = 0;
                    long   avgDuration   = 0;

                    if (sumMap[activity].Ended > 0)
                    {
                        avgDuration = sumMap[activity].Duration / sumMap[activity].Ended;
                    }

                    if (currentActivitiesEnded > 0)
                    {
                        endedFraction = ended * 100.0 / currentActivitiesEnded;
                    }

                    row.Add(started);
                    row.Add(sumMap[activity].Started);
                    row.Add(string.Format("{0:D} ({1:F1}%)", ended, endedFraction));
                    row.Add(sumMap[activity].Ended);
                    row.Add(avgDuration + " ms");
                }
                sumActivitiesEnded += currentActivitiesEnded;
                row.Add(currentActivitiesEnded / INTERVAL_SECONDS);
                row.Add(sumActivitiesEnded / ((i + 1) * INTERVAL_SECONDS));
                tabularResultSet.addResultRow(row);
            }
        }