All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.gatling.charts.component.GlobalStatsTableComponent.scala Maven / Gradle / Ivy

There is a newer version: 3.13.1
Show newest version
/*
 * Copyright 2011-2024 GatlingCorp (https://gatling.io)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package io.gatling.charts.component

import io.gatling.charts.config.ChartsFiles.AllRequestLineTitle
import io.gatling.charts.report.Container.{ Group, Request }
import io.gatling.commons.util.StringHelper._
import io.gatling.core.config.IndicatorsConfiguration
import io.gatling.shared.util.NumberHelper._

private[charts] final class GlobalStatsTableComponent(configuration: IndicatorsConfiguration) extends Component {

  override val html: String = {
    def pctTitle(pct: Double) = pct.toRank + " pct"

    val responseTimeFields = List(
      "Min",
      pctTitle(configuration.percentile1),
      pctTitle(configuration.percentile2),
      pctTitle(configuration.percentile3),
      pctTitle(configuration.percentile4),
      "Max",
      "Mean",
      """Std Dev"""
    )

    s"""
                      
""" } val js = s""" function generateHtmlRow(request, level, index, parent, group) { if (request.name == '$AllRequestLineTitle') var url = 'index.html'; else var url = request.pathFormatted + '.html'; if (group) var expandButtonStyle = ''; else var expandButtonStyle = ' hidden'; if (request.stats.numberOfRequests.total != 0) var koPercent = (request.stats.numberOfRequests.ko * 100 / request.stats.numberOfRequests.total).toFixed(2); else var koPercent = '-' return ' \\ \\ \\ \\ ' + request.stats.numberOfRequests.total + ' \\ ' + request.stats.numberOfRequests.ok + ' \\ ' + request.stats.numberOfRequests.ko + ' \\ ' + koPercent + ' \\ ' + request.stats.meanNumberOfRequestsPerSecond.total + ' \\ ' + request.stats.minResponseTime.total + ' \\ ' + request.stats.percentiles1.total + ' \\ ' + request.stats.percentiles2.total + ' \\ ' + request.stats.percentiles3.total + ' \\ ' + request.stats.percentiles4.total + ' \\ ' + request.stats.maxResponseTime.total + ' \\ ' + request.stats.meanResponseTime.total + ' \\ ' + request.stats.standardDeviation.total + ' \\ '; } function generateHtmlRowsForGroup(group, level, index, parent) { var buffer = ''; if (!parent) parent = 'ROOT'; else { buffer += generateHtmlRow(group, level - 1, index, parent, true); index++; parent = group.pathFormatted; } $$.each(group.contents, function(contentName, content) { if (content.type == '$Group') { var result = generateHtmlRowsForGroup(content, level + 1, index, parent); buffer += result.html; index = result.index; } else if (content.type == '$Request') { buffer += generateHtmlRow(content, level, index, parent); index++; } }); return { html: buffer, index: index }; } $$('#container_statistics_head tbody').append(generateHtmlRow(stats, 0, 0)); var lines = generateHtmlRowsForGroup(stats, 0, 0); $$('#container_statistics_body tbody').append(lines.html); $$('#container_statistics_head').sortable('#container_statistics_body'); $$('.statistics').expandable(); if (lines.index < 30) { $$('#statistics_title span').attr('style', 'display: none;'); } else { $$('#statistics_title').addClass('title_collapsed'); $$('#statistics_title').click(function() { $$('#toggle-stats').toggleClass("off"); $$(this).toggleClass('title_collapsed').toggleClass('title_expanded'); $$('#container_statistics_body').parent().toggleClass('scrollable').toggleClass(''); }); } $$('.table-cell-tooltip').popover({trigger:'hover'}); """ val jsFiles: Seq[String] = Nil }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy