【十八】文件译文:graph.js.fmkr (测试报告模版配置文件)
目录
一、文件许可说明
第1段——文件许可说明
二、已封装的方法
第2段—— $(document).ready(function()
第3段—— var responseTimePercentilesInfos
第4段—— function setEmptyGraph(elementId)
第5段—— 响应时间百分位数:function refreshResponseTimePercentiles()
第6段—— var responseTimeDistributionInfos
第7段—— 响应时间分布:function refreshResponseTimeDistribution()
第8段—— var syntheticResponseTimeDistributionInfos
第9段—— 响应时间分布:function refreshSyntheticResponseTimeDistribution()
第10段—— var activeThreadsOverTimeInfos
第11段—— 活动线程随时间变化:function refreshActiveThreadsOverTime(fixTimestamps)
第12段—— var timeVsThreadsInfos
第13段—— 时间与线程:function refreshTimeVsThreads()
第14段—— var bytesThroughputOverTimeInfos
第15段—— 字节吞吐量随时间变化:function refreshBytesThroughputOverTime(fixTimestamps)
第16段—— var responseTimesOverTimeInfos
第17段—— 随时间变化的响应时间:function refreshResponseTimeOverTime(fixTimestamps)
第19段—— 一段时间的延迟:function refreshLatenciesOverTime(fixTimestamps)
第20段—— var connectTimeOverTimeInfos
第21段—— 连接时间超时:function refreshConnectTimeOverTime(fixTimestamps)
第22段—— var responseTimePercentilesOverTimeInfos
第23段—— 响应时间百分比随时间变化:function refreshResponseTimePercentilesOverTime(fixTimestamps)
第23段—— var responseTimeVsRequestInfos
第24段—— 响应时间与请求:function refreshResponseTimeVsRequest()
第25段—— var latenciesVsRequestInfos
第26段—— 延迟与请求:function refreshLatenciesVsRequest()
第27段—— var hitsPerSecondInfos
第28段—— 每秒点击次数:function refreshHitsPerSecond(fixTimestamps)
第29段—— var codesPerSecondInfos
第30段—— 每秒代码数:function refreshCodesPerSecond(fixTimestamps)
第31段—— var transactionsPerSecondInfos
第32段—— 每秒处理事务数:function refreshTransactionsPerSecond(fixTimestamps)
第33段—— var totalTPSInfos
第34段—— 每秒处理总事务数:function refreshTotalTPS(fixTimestamps)
第35段—— function collapse(elem, collapsed)
第36段—— 激活或禁用指定图的所有系列取决于检查的参数
第37段—— function toggleAll(id, checked)
一、文件许可说明
第1段——文件许可说明
- /*
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
- */
- // **************************** 译文 *************************** //
- /*
- Apache软件基金会(ASF)下一个或多个许可
- 贡献者许可协议。请参阅
- 此作品用于获取关于版权所有权的附加信息。
- ASF根据Apache 2.0 版本许可证协议将此文件授权给您。
- (“许可证”);除非符合以下条件,否则不能使用此文件
- 许可证。您可以在
- http://www.apache.org/licenses/LICENSE-2.0
- 除非适用法律要求或书面同意,软件
- 根据在“AS IS”BASIS上分发的许可证基础上发布的,
- 无任何明示或暗示的保证或条件。
- 有关管理权限的特定语言,请参阅许可证
- 《许可证》规定的限制。
- /*
二、已封装的方法
第2段—— $(document).ready(function()
页面加载完成事件 ready:表示文档结构已经加载完成(不包含图片等非文字媒体文件)
- $(document).ready(function() {
- $(".click-title").mouseenter( function( e){
- e.preventDefault();
- this.style.cursor="pointer";
- });
- $(".click-title").mousedown( function(event){
- event.preventDefault();
- });
- // Ugly code while this script is shared among several pages
- // 译文:当这个脚本在几个页面中共享时,代码很难看。
- try{
- refreshHitsPerSecond(true);
- } catch(e){}
- try{
- refreshResponseTimeOverTime(true);
- } catch(e){}
- try{
- refreshResponseTimePercentiles();
- } catch(e){}
- });
第3段—— var responseTimePercentilesInfos
- var responseTimePercentilesInfos = {
- data: ${responseTimePercentiles!"{}"},
- getOptions: function() {
- return {
- series: {
- points: { show: false }
- },
- legend: {
- noColumns: 2,
- show: true,
- container: '#legendResponseTimePercentiles'
- },
- xaxis: {
- tickDecimals: 1,
- axisLabel: "Percentiles",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- yaxis: {
- axisLabel: "Percentile value in ms",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20
- },
- grid: {
- hoverable: true // IMPORTANT! this is needed for tooltip to
- // work
- // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
- },
- tooltip: true,
- tooltipOpts: {
- content: "%s : %x.2 percentile was %y ms"
- },
- selection: { mode: "xy" },
- };
- },
- createGraph: function() {
- var data = this.data;
- var dataset = prepareData(data.result.series, $("#choicesResponseTimePercentiles"));
- var options = this.getOptions();
- prepareOptions(options, data);
- $.plot($("#flotResponseTimesPercentiles"), dataset, options);
- // setup overview
- // 译文:安装概述
- $.plot($("#overviewResponseTimesPercentiles"), dataset, prepareOverviewOptions(options));
- }
- };
第4段—— function setEmptyGraph(elementId)
- /**
- * @param elementId Id of element where we display message
- * 译文:@参数 elementId 是显示消息的元素标识 ID
- */
- function setEmptyGraph(elementId) {
- $(function() {
- $(elementId).text("No graph series with filter="+seriesFilter);
- });
- }
第5段—— 响应时间百分位数:function refreshResponseTimePercentiles()
- // Response times percentiles
- // 译文:响应时间百分位数
- function refreshResponseTimePercentiles() {
- var infos = responseTimePercentilesInfos;
- prepareSeries(infos.data);
- if(infos.data.result.series.length == 0) {
- setEmptyGraph("#bodyResponseTimePercentiles");
- return;
- }
- if (isGraph($("#flotResponseTimesPercentiles"))){
- infos.createGraph();
- } else {
- var choiceContainer = $("#choicesResponseTimePercentiles");
- createLegend(choiceContainer, infos);
- infos.createGraph();
- setGraphZoomable("#flotResponseTimesPercentiles", "#overviewResponseTimesPercentiles");
- $('#bodyResponseTimePercentiles .legendColorBox > div').each(function(i){
- $(this).clone().prependTo(choiceContainer.find("li").eq(i));
- });
- }
- }
第6段—— var responseTimeDistributionInfos
- var responseTimeDistributionInfos = {
- data: ${responseTimeDistribution!"{}"},
- getOptions: function() {
- var granularity = this.data.result.granularity;
- return {
- legend: {
- noColumns: 2,
- show: true,
- container: '#legendResponseTimeDistribution'
- },
- xaxis:{
- axisLabel: "Response times in ms",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- yaxis: {
- axisLabel: "Number of responses",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- bars : {
- show: true,
- barWidth: this.data.result.granularity
- },
- grid: {
- hoverable: true // IMPORTANT! this is needed for tooltip to
- // work
- // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
- },
- tooltip: true,
- tooltipOpts: {
- content: function(label, xval, yval, flotItem){
- return yval + " responses for " + label + " were between " + xval + " and " + (xval + granularity) + " ms";
- }
- }
- };
- },
- createGraph: function() {
- var data = this.data;
- var options = this.getOptions();
- prepareOptions(options, data);
- $.plot($("#flotResponseTimeDistribution"), prepareData(data.result.series, $("#choicesResponseTimeDistribution")), options);
- }
- };
第7段—— 响应时间分布:function refreshResponseTimeDistribution()
- // Response time distribution
- // 译文:响应时间分布
- function refreshResponseTimeDistribution() {
- var infos = responseTimeDistributionInfos;
- prepareSeries(infos.data);
- if(infos.data.result.series.length == 0) {
- setEmptyGraph("#bodyResponseTimeDistribution");
- return;
- }
- if (isGraph($("#flotResponseTimeDistribution"))){
- infos.createGraph();
- }else{
- var choiceContainer = $("#choicesResponseTimeDistribution");
- createLegend(choiceContainer, infos);
- infos.createGraph();
- $('#footerResponseTimeDistribution .legendColorBox > div').each(function(i){
- $(this).clone().prependTo(choiceContainer.find("li").eq(i));
- });
- }
- };
第8段—— var syntheticResponseTimeDistributionInfos
- var syntheticResponseTimeDistributionInfos = {
- data: ${syntheticResponseTimeDistribution!"{}"},
- getOptions: function() {
- return {
- legend: {
- noColumns: 2,
- show: true,
- container: '#legendSyntheticResponseTimeDistribution'
- },
- xaxis:{
- axisLabel: "Response times ranges",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- tickLength:0,
- min:-0.5,
- max:3.5
- },
- yaxis: {
- axisLabel: "Number of responses",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- bars : {
- show: true,
- align: "center",
- barWidth: 0.25,
- fill:.75
- },
- grid: {
- hoverable: true // IMPORTANT! this is needed for tooltip to
- // work
- // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
- },
- tooltip: true,
- tooltipOpts: {
- content: function(label, xval, yval, flotItem){
- return yval + " " + label;
- }
- }
- };
- },
- createGraph: function() {
- var data = this.data;
- var options = this.getOptions();
- prepareOptions(options, data);
- options.xaxis.ticks = data.result.ticks;
- $.plot($("#flotSyntheticResponseTimeDistribution"), prepareData(data.result.series, $("#choicesSyntheticResponseTimeDistribution")), options);
- }
- };
第9段—— 响应时间分布:function refreshSyntheticResponseTimeDistribution()
- // Response time distribution
- // 译文:响应时间分布
- function refreshSyntheticResponseTimeDistribution() {
- var infos = syntheticResponseTimeDistributionInfos;
- prepareSeries(infos.data, true);
- if (isGraph($("#flotSyntheticResponseTimeDistribution"))){
- infos.createGraph();
- }else{
- var choiceContainer = $("#choicesSyntheticResponseTimeDistribution");
- createLegend(choiceContainer, infos);
- infos.createGraph();
- $('#footerSyntheticResponseTimeDistribution .legendColorBox > div').each(function(i){
- $(this).clone().prependTo(choiceContainer.find("li").eq(i));
- });
- }
- };
第10段—— var activeThreadsOverTimeInfos
- var activeThreadsOverTimeInfos = {
- data: ${activeThreadsOverTime!"{}"},
- getOptions: function() {
- return {
- series: {
- stack: true,
- lines: {
- show: true,
- fill: true
- },
- points: {
- show: true
- }
- },
- xaxis: {
- mode: "time",
- timeformat: getTimeFormat(this.data.result.granularity),
- axisLabel: getElapsedTimeLabel(this.data.result.granularity),
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- yaxis: {
- axisLabel: "Number of active threads",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20
- },
- legend: {
- noColumns: 6,
- show: true,
- container: '#legendActiveThreadsOverTime'
- },
- grid: {
- hoverable: true // IMPORTANT! this is needed for tooltip to
- // work
- // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
- },
- selection: {
- mode: 'xy'
- },
- tooltip: true,
- tooltipOpts: {
- content: "%s : At %x there were %y active threads"
- }
- };
- },
- createGraph: function() {
- var data = this.data;
- var dataset = prepareData(data.result.series, $("#choicesActiveThreadsOverTime"));
- var options = this.getOptions();
- prepareOptions(options, data);
- $.plot($("#flotActiveThreadsOverTime"), dataset, options);
- // setup overview
- // 译文:安装概述
- $.plot($("#overviewActiveThreadsOverTime"), dataset, prepareOverviewOptions(options));
- }
- };
第11段—— 活动线程随时间变化:function refreshActiveThreadsOverTime(fixTimestamps)
- // Active Threads Over Time
- // 译文:活动线程随时间变化
- function refreshActiveThreadsOverTime(fixTimestamps) {
- var infos = activeThreadsOverTimeInfos;
- prepareSeries(infos.data);
- if(fixTimestamps) {
- fixTimeStamps(infos.data.result.series, ${(timeZoneOffset?c)!0});
- }
- if(isGraph($("#flotActiveThreadsOverTime"))) {
- infos.createGraph();
- }else{
- var choiceContainer = $("#choicesActiveThreadsOverTime");
- createLegend(choiceContainer, infos);
- infos.createGraph();
- setGraphZoomable("#flotActiveThreadsOverTime", "#overviewActiveThreadsOverTime");
- $('#footerActiveThreadsOverTime .legendColorBox > div').each(function(i){
- $(this).clone().prependTo(choiceContainer.find("li").eq(i));
- });
- }
- };
第12段—— var timeVsThreadsInfos
- var timeVsThreadsInfos = {
- data: ${timeVsThreads!"{}"},
- getOptions: function() {
- return {
- series: {
- lines: {
- show: true
- },
- points: {
- show: true
- }
- },
- xaxis: {
- axisLabel: "Number of active threads",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- yaxis: {
- axisLabel: "Average response times in ms",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20
- },
- legend: { noColumns: 2,show: true, container: '#legendTimeVsThreads' },
- selection: {
- mode: 'xy'
- },
- grid: {
- hoverable: true // IMPORTANT! this is needed for tooltip to work
- // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
- },
- tooltip: true,
- tooltipOpts: {
- content: "%s: At %x.2 active threads, Average response time was %y.2 ms"
- }
- };
- },
- createGraph: function() {
- var data = this.data;
- var dataset = prepareData(data.result.series, $("#choicesTimeVsThreads"));
- var options = this.getOptions();
- prepareOptions(options, data);
- $.plot($("#flotTimesVsThreads"), dataset, options);
- // setup overview
- // 译文:安装概述
- $.plot($("#overviewTimesVsThreads"), dataset, prepareOverviewOptions(options));
- }
- };
第13段—— 时间与线程:function refreshTimeVsThreads()
- // Time vs threads
- // 译文:时间与线程
- function refreshTimeVsThreads(){
- var infos = timeVsThreadsInfos;
- prepareSeries(infos.data);
- if(infos.data.result.series.length == 0) {
- setEmptyGraph("#bodyTimeVsThreads");
- return;
- }
- if(isGraph($("#flotTimesVsThreads"))){
- infos.createGraph();
- }else{
- var choiceContainer = $("#choicesTimeVsThreads");
- createLegend(choiceContainer, infos);
- infos.createGraph();
- setGraphZoomable("#flotTimesVsThreads", "#overviewTimesVsThreads");
- $('#footerTimeVsThreads .legendColorBox > div').each(function(i){
- $(this).clone().prependTo(choiceContainer.find("li").eq(i));
- });
- }
- };
第14段—— var bytesThroughputOverTimeInfos
- var bytesThroughputOverTimeInfos = {
- data : ${bytesThroughputOverTime!"{}"},
- getOptions : function(){
- return {
- series: {
- lines: {
- show: true
- },
- points: {
- show: true
- }
- },
- xaxis: {
- mode: "time",
- timeformat: getTimeFormat(this.data.result.granularity),
- axisLabel: getElapsedTimeLabel(this.data.result.granularity) ,
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- yaxis: {
- axisLabel: "Bytes / sec",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- legend: {
- noColumns: 2,
- show: true,
- container: '#legendBytesThroughputOverTime'
- },
- selection: {
- mode: "xy"
- },
- grid: {
- hoverable: true // IMPORTANT! this is needed for tooltip to
- // work
- // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
- },
- tooltip: true,
- tooltipOpts: {
- content: "%s at %x was %y"
- }
- };
- },
- createGraph : function() {
- var data = this.data;
- var dataset = prepareData(data.result.series, $("#choicesBytesThroughputOverTime"));
- var options = this.getOptions();
- prepareOptions(options, data);
- $.plot($("#flotBytesThroughputOverTime"), dataset, options);
- // setup overview
- // 译文:安装概述
- $.plot($("#overviewBytesThroughputOverTime"), dataset, prepareOverviewOptions(options));
- }
- };
第15段—— 字节吞吐量随时间变化:function refreshBytesThroughputOverTime(fixTimestamps)
- // Bytes throughput Over Time
- // 译文:字节吞吐量随时间变化
- function refreshBytesThroughputOverTime(fixTimestamps) {
- var infos = bytesThroughputOverTimeInfos;
- prepareSeries(infos.data);
- if(fixTimestamps) {
- fixTimeStamps(infos.data.result.series, ${(timeZoneOffset?c)!0});
- }
- if(isGraph($("#flotBytesThroughputOverTime"))){
- infos.createGraph();
- }else{
- var choiceContainer = $("#choicesBytesThroughputOverTime");
- createLegend(choiceContainer, infos);
- infos.createGraph();
- setGraphZoomable("#flotBytesThroughputOverTime", "#overviewBytesThroughputOverTime");
- $('#footerBytesThroughputOverTime .legendColorBox > div').each(function(i){
- $(this).clone().prependTo(choiceContainer.find("li").eq(i));
- });
- }
- }
第16段—— var responseTimesOverTimeInfos
- var responseTimesOverTimeInfos = {
- data: ${responseTimesOverTime!"{}"},
- getOptions: function(){
- return {
- series: {
- lines: {
- show: true
- },
- points: {
- show: true
- }
- },
- xaxis: {
- mode: "time",
- timeformat: getTimeFormat(this.data.result.granularity),
- axisLabel: getElapsedTimeLabel(this.data.result.granularity),
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- yaxis: {
- axisLabel: "Average response time in ms",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- legend: {
- noColumns: 2,
- show: true,
- container: '#legendResponseTimesOverTime'
- },
- selection: {
- mode: 'xy'
- },
- grid: {
- hoverable: true // IMPORTANT! this is needed for tooltip to
- // work
- // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
- },
- tooltip: true,
- tooltipOpts: {
- content: "%s : at %x Average response time was %y ms"
- }
- };
- },
- createGraph: function() {
- var data = this.data;
- var dataset = prepareData(data.result.series, $("#choicesResponseTimesOverTime"));
- var options = this.getOptions();
- prepareOptions(options, data);
- $.plot($("#flotResponseTimesOverTime"), dataset, options);
- // setup overview
- // 译文:安装概述
- $.plot($("#overviewResponseTimesOverTime"), dataset, prepareOverviewOptions(options));
- }
- };
第17段—— 随时间变化的响应时间:function refreshResponseTimeOverTime(fixTimestamps)
- // Response Times Over Time
- // 译文:随时间变化的响应时间
- function refreshResponseTimeOverTime(fixTimestamps) {
- var infos = responseTimesOverTimeInfos;
- prepareSeries(infos.data);
- if(infos.data.result.series.length == 0) {
- setEmptyGraph("#bodyResponseTimeOverTime");
- return;
- }
- if(fixTimestamps) {
- fixTimeStamps(infos.data.result.series, ${(timeZoneOffset?c)!0});
- }
- if(isGraph($("#flotResponseTimesOverTime"))){
- infos.createGraph();
- }else{
- var choiceContainer = $("#choicesResponseTimesOverTime");
- createLegend(choiceContainer, infos);
- infos.createGraph();
- setGraphZoomable("#flotResponseTimesOverTime", "#overviewResponseTimesOverTime");
- $('#footerResponseTimesOverTime .legendColorBox > div').each(function(i){
- $(this).clone().prependTo(choiceContainer.find("li").eq(i));
- });
- }
- };
第18段——var latenciesOverTimeInfos
- var latenciesOverTimeInfos = {
- data: ${latenciesOverTime!"{}"},
- getOptions: function() {
- return {
- series: {
- lines: {
- show: true
- },
- points: {
- show: true
- }
- },
- xaxis: {
- mode: "time",
- timeformat: getTimeFormat(this.data.result.granularity),
- axisLabel: getElapsedTimeLabel(this.data.result.granularity),
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- yaxis: {
- axisLabel: "Average response latencies in ms",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- legend: {
- noColumns: 2,
- show: true,
- container: '#legendLatenciesOverTime'
- },
- selection: {
- mode: 'xy'
- },
- grid: {
- hoverable: true // IMPORTANT! this is needed for tooltip to
- // work
- // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
- },
- tooltip: true,
- tooltipOpts: {
- content: "%s : at %x Average latency was %y ms"
- }
- };
- },
- createGraph: function () {
- var data = this.data;
- var dataset = prepareData(data.result.series, $("#choicesLatenciesOverTime"));
- var options = this.getOptions();
- prepareOptions(options, data);
- $.plot($("#flotLatenciesOverTime"), dataset, options);
- // setup overview
- // 译文:安装概述
- $.plot($("#overviewLatenciesOverTime"), dataset, prepareOverviewOptions(options));
- }
- };
第19段—— 一段时间的延迟:function refreshLatenciesOverTime(fixTimestamps)
- // Latencies Over Time
- // 译文:一段时间的延迟
- function refreshLatenciesOverTime(fixTimestamps) {
- var infos = latenciesOverTimeInfos;
- prepareSeries(infos.data);
- if(infos.data.result.series.length == 0) {
- setEmptyGraph("#bodyLatenciesOverTime");
- return;
- }
- if(fixTimestamps) {
- fixTimeStamps(infos.data.result.series, ${(timeZoneOffset?c)!0});
- }
- if(isGraph($("#flotLatenciesOverTime"))) {
- infos.createGraph();
- }else {
- var choiceContainer = $("#choicesLatenciesOverTime");
- createLegend(choiceContainer, infos);
- infos.createGraph();
- setGraphZoomable("#flotLatenciesOverTime", "#overviewLatenciesOverTime");
- $('#footerLatenciesOverTime .legendColorBox > div').each(function(i){
- $(this).clone().prependTo(choiceContainer.find("li").eq(i));
- });
- }
- };
第20段—— var connectTimeOverTimeInfos
- var connectTimeOverTimeInfos = {
- data: ${connectTimeOverTime!"{}"},
- getOptions: function() {
- return {
- series: {
- lines: {
- show: true
- },
- points: {
- show: true
- }
- },
- xaxis: {
- mode: "time",
- timeformat: getTimeFormat(this.data.result.granularity),
- axisLabel: getConnectTimeLabel(this.data.result.granularity),
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- yaxis: {
- axisLabel: "Average Connect Time in ms",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- legend: {
- noColumns: 2,
- show: true,
- container: '#legendConnectTimeOverTime'
- },
- selection: {
- mode: 'xy'
- },
- grid: {
- hoverable: true // IMPORTANT! this is needed for tooltip to
- // work
- // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
- },
- tooltip: true,
- tooltipOpts: {
- content: "%s : at %x Average connect time was %y ms"
- }
- };
- },
- createGraph: function () {
- var data = this.data;
- var dataset = prepareData(data.result.series, $("#choicesConnectTimeOverTime"));
- var options = this.getOptions();
- prepareOptions(options, data);
- $.plot($("#flotConnectTimeOverTime"), dataset, options);
- // setup overview
- // 译文:安装概述
- $.plot($("#overviewConnectTimeOverTime"), dataset, prepareOverviewOptions(options));
- }
- };
第21段—— 连接时间超时:function refreshConnectTimeOverTime(fixTimestamps)
- // Connect Time Over Time
- // 译文:连接时间超时
- function refreshConnectTimeOverTime(fixTimestamps) {
- var infos = connectTimeOverTimeInfos;
- prepareSeries(infos.data);
- if(infos.data.result.series.length == 0) {
- setEmptyGraph("#bodyConnectTimeOverTime");
- return;
- }
- if(fixTimestamps) {
- fixTimeStamps(infos.data.result.series, ${(timeZoneOffset?c)!0});
- }
- if(isGraph($("#flotConnectTimeOverTime"))) {
- infos.createGraph();
- }else {
- var choiceContainer = $("#choicesConnectTimeOverTime");
- createLegend(choiceContainer, infos);
- infos.createGraph();
- setGraphZoomable("#flotConnectTimeOverTime", "#overviewConnectTimeOverTime");
- $('#footerConnectTimeOverTime .legendColorBox > div').each(function(i){
- $(this).clone().prependTo(choiceContainer.find("li").eq(i));
- });
- }
- };
第22段—— var responseTimePercentilesOverTimeInfos
- var responseTimePercentilesOverTimeInfos = {
- data: ${responseTimePercentilesOverTime!"{}"},
- getOptions: function() {
- return {
- series: {
- lines: {
- show: true,
- fill: true
- },
- points: {
- show: true
- }
- },
- xaxis: {
- mode: "time",
- timeformat: getTimeFormat(this.data.result.granularity),
- axisLabel: getElapsedTimeLabel(this.data.result.granularity),
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- yaxis: {
- axisLabel: "Response Time in ms",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- legend: {
- noColumns: 2,
- show: true,
- container: '#legendResponseTimePercentilesOverTime'
- },
- selection: {
- mode: 'xy'
- },
- grid: {
- hoverable: true // IMPORTANT! this is needed for tooltip to
- // work
- // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
- },
- tooltip: true,
- tooltipOpts: {
- content: "%s : at %x Response time was %y ms"
- }
- };
- },
- createGraph: function () {
- var data = this.data;
- var dataset = prepareData(data.result.series, $("#choicesResponseTimePercentilesOverTime"));
- var options = this.getOptions();
- prepareOptions(options, data);
- $.plot($("#flotResponseTimePercentilesOverTime"), dataset, options);
- // setup overview
- // 译文:安装概述
- $.plot($("#overviewResponseTimePercentilesOverTime"), dataset, prepareOverviewOptions(options));
- }
- };
第23段—— 响应时间百分比随时间变化:function refreshResponseTimePercentilesOverTime(fixTimestamps)
- // Response Time Percentiles Over Time
- // 译文:响应时间百分比随时间变化
- function refreshResponseTimePercentilesOverTime(fixTimestamps) {
- var infos = responseTimePercentilesOverTimeInfos;
- prepareSeries(infos.data);
- if(fixTimestamps) {
- fixTimeStamps(infos.data.result.series, ${(timeZoneOffset?c)!0});
- }
- if(isGraph($("#flotResponseTimePercentilesOverTime"))) {
- infos.createGraph();
- }else {
- var choiceContainer = $("#choicesResponseTimePercentilesOverTime");
- createLegend(choiceContainer, infos);
- infos.createGraph();
- setGraphZoomable("#flotResponseTimePercentilesOverTime", "#overviewResponseTimePercentilesOverTime");
- $('#footerResponseTimePercentilesOverTime .legendColorBox > div').each(function(i){
- $(this).clone().prependTo(choiceContainer.find("li").eq(i));
- });
- }
- };
第23段—— var responseTimeVsRequestInfos
- var responseTimeVsRequestInfos = {
- data: ${responseTimeVsRequest!"{}"},
- getOptions: function() {
- return {
- series: {
- lines: {
- show: false
- },
- points: {
- show: true
- }
- },
- xaxis: {
- axisLabel: "Global number of requests per second",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- yaxis: {
- axisLabel: "Median Response Time in ms",
- axisLabelUseCanvas: true,
- axisLabelFontSizePixels: 12,
- axisLabelFontFamily: 'Verdana, Arial',
- axisLabelPadding: 20,
- },
- legend: {
- noColumns: 2,
- show: true,
- container: '#legendResponseTimeVsRequest'
- },
- selection: {
- mode: 'xy'
- },
- grid: {
- hoverable: true // IMPORTANT! this is needed for tooltip to work
- // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
- },
- tooltip: true,
- tooltipOpts: {
- content: "%s : Median response time at %x req/s was %y ms"
- },
- colors: ["#9ACD32", "#FF6347"]
- };
- },
- createGraph: function () {
- var data = this.data;
- var dataset = prepareData(data.result.series, $("#choicesResponseTimeVsRequest"));
- var options = this.getOptions();
- prepareOptions(options, data);
- $.plot($("#flotResponseTimeVsRequest"), dataset, options);
- // setup overview
- // 译文:安装概述
- $.plot($("#overviewResponseTimeVsRequest"), dataset, prepareOverviewOptions(options));
- }
- };
第24段—— 响应时间与请求:function refreshResponseTimeVsRequest()
- // Response Time vs Request
- // 译文:响应时间与请求
- function refreshResponseTimeVsRequest() {
- var infos = responseTimeVsRequestInfos;
- prepareSeries(infos.data);
- if (isGraph($("#flotResponseTimeVsRequest"))){
- infos.create();
- }else{
- var choiceContainer = $("#choicesResponseTimeVsRequest");
【十八】文件译文:graph.js.fmkr (测试报告模版配置文件)相关推荐
- Jmeter(四十八)_动态线程分析HTML测试报告
概述 jmeterGUI模式下,性能测试的结果往往误差很大,因为GUI本身就会消耗一部分资源.所以我们常常用命令行去跑性能脚本,得出结果 同时,jmeter在命令行下还可以生成多维度的测试报告,里面包 ...
- 十八、部署 Vue.js 项目到生产环境
本章概要 构建发布版本 部署 项目开发完毕并测试后,就要准备构建发布版本,部署到生产环境. 18.1 构建发布版本 在构建发布版本前,注意将项目代码中用于调试的 alert.debugger.cons ...
- [网络安全自学篇] 二十八.文件上传入门及防御原理(一)
这是作者的系列网络安全自学教程,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Sqlmap的基本用法.CTF实战,包括设置HTTP.POST请求.参数 ...
- 图神经网络(二十八)GATED GRAPH SEQUENCE NEURAL NETWORKS
本文收录于ICLR2016,作者来自于多伦多大学,文章比较老了,但是很经典.GGNN是一种基于GRU的经典空域模型,一个基本的感觉就是GNN+Gate.我们现在看的大部分GNN模型都是基于消息传递机制 ...
- 【十七】文件译文:user.properties (用户配置文件)
目录 一.文件说明 二.类路径配置 三.报告配置 四.分布式测试配置 一.文件说明 第1段--许可证说明 (1)原文 # Sample user.properties file # ## Licens ...
- 【十九】文件译文:reportgenerator.properties (报表生成器属性文件)
目录 一.文件说明 二.报告配置 一.文件说明 (一)第1段--文件标题 (1)原文 ######################################################### ...
- JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤...
JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常 ...
- ComicEnhancerPro 系列教程十八:JPG文件长度与质量
作者:马健 邮箱:stronghorse_mj@hotmail.com 主页:http://www.comicer.com/stronghorse/ 发布:2017.07.23 教程十八:JPG文件长 ...
- JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤
JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常 ...
最新文章
- char(nchar)与varchar(nvarchar)的区别以及选择
- 数据仓库工具箱:维度建模权威指南3
- Android ContentProvider实现两个程序间数据共享demo,跨进程通讯
- (王道408考研操作系统)第四章文件管理-第二节4:磁盘的管理
- Oracle11g报bde,表现 – BDE与ADO在德尔福
- VS2010编译驱动程序
- 搞不明白为什么大家都在学习 k8s
- Bailian4067 回文数字(Palindrome Number)【数学】
- Modbus 与 RS485 的区别与联系
- 高考数学圆锥曲线总结贴+杂题巧解
- 2022-2028全球石油管材接头行业调研及趋势分析报告
- 21个免费设计网站助力第十一届全国大学生广告艺术大赛!
- iphone修改手机铃声
- 匿名函数 和 拉姆达表达式
- sqlserver 2012 序列号
- Linux——DHCP篇
- 前端基础第二天——HTML5基础
- 【C/C++】【NOI】雇佣兵代码及分析理解
- 利用爬虫下载批量图片
- gitlab下载地址
热门文章
- Effective C++ 读书笔记之Part4.Design and Declarations
- 品尝Android(二)jQuery Mobile初探
- asp.net ajax 1.0中detailview与updatepanel混合使用的例子
- 使用xadmin覆盖Django的admin
- [BZOJ2958]序列染色
- SpringMVC入门笔记
- java 过滤器filter使用案例
- HTTPS时代全面到来,你准备好了吗?
- Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法[转]
- PHP变量名区分大小写,函数名不区分大小写