目录

一、文件许可说明

第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段——文件许可说明

  1. /*
  2. Licensed to the Apache Software Foundation (ASF) under one or more
  3. contributor license agreements. See the NOTICE file distributed with
  4. this work for additional information regarding copyright ownership.
  5. The ASF licenses this file to You under the Apache License, Version 2.0
  6. (the "License"); you may not use this file except in compliance with
  7. the License. You may obtain a copy of the License at
  8. http://www.apache.org/licenses/LICENSE-2.0
  9. Unless required by applicable law or agreed to in writing, software
  10. distributed under the License is distributed on an "AS IS" BASIS,
  11. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. See the License for the specific language governing permissions and
  13. limitations under the License.
  14. */
  15. // **************************** 译文 *************************** //
  16. /*
  17. Apache软件基金会(ASF)下一个或多个许可
  18. 贡献者许可协议。请参阅
  19. 此作品用于获取关于版权所有权的附加信息。
  20. ASF根据Apache 2.0 版本许可证协议将此文件授权给您。
  21. (“许可证”);除非符合以下条件,否则不能使用此文件
  22. 许可证。您可以在
  23. http://www.apache.org/licenses/LICENSE-2.0
  24. 除非适用法律要求或书面同意,软件
  25. 根据在“AS IS”BASIS上分发的许可证基础上发布的,
  26. 无任何明示或暗示的保证或条件。
  27. 有关管理权限的特定语言,请参阅许可证
  28. 《许可证》规定的限制。
  29. /*


二、已封装的方法

第2段—— $(document).ready(function()

页面加载完成事件 ready:表示文档结构已经加载完成(不包含图片等非文字媒体文件)

  1. $(document).ready(function() {
  2. $(".click-title").mouseenter( function( e){
  3. e.preventDefault();
  4. this.style.cursor="pointer";
  5. });
  6. $(".click-title").mousedown( function(event){
  7. event.preventDefault();
  8. });
  9. // Ugly code while this script is shared among several pages
  10. // 译文:当这个脚本在几个页面中共享时,代码很难看。
  11. try{
  12. refreshHitsPerSecond(true);
  13. } catch(e){}
  14. try{
  15. refreshResponseTimeOverTime(true);
  16. } catch(e){}
  17. try{
  18. refreshResponseTimePercentiles();
  19. } catch(e){}
  20. });

第3段—— var responseTimePercentilesInfos

  1. var responseTimePercentilesInfos = {
  2. data: ${responseTimePercentiles!"{}"},
  3. getOptions: function() {
  4. return {
  5. series: {
  6. points: { show: false }
  7. },
  8. legend: {
  9. noColumns: 2,
  10. show: true,
  11. container: '#legendResponseTimePercentiles'
  12. },
  13. xaxis: {
  14. tickDecimals: 1,
  15. axisLabel: "Percentiles",
  16. axisLabelUseCanvas: true,
  17. axisLabelFontSizePixels: 12,
  18. axisLabelFontFamily: 'Verdana, Arial',
  19. axisLabelPadding: 20,
  20. },
  21. yaxis: {
  22. axisLabel: "Percentile value in ms",
  23. axisLabelUseCanvas: true,
  24. axisLabelFontSizePixels: 12,
  25. axisLabelFontFamily: 'Verdana, Arial',
  26. axisLabelPadding: 20
  27. },
  28. grid: {
  29. hoverable: true // IMPORTANT! this is needed for tooltip to
  30. // work
  31. // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
  32. },
  33. tooltip: true,
  34. tooltipOpts: {
  35. content: "%s : %x.2 percentile was %y ms"
  36. },
  37. selection: { mode: "xy" },
  38. };
  39. },
  40. createGraph: function() {
  41. var data = this.data;
  42. var dataset = prepareData(data.result.series, $("#choicesResponseTimePercentiles"));
  43. var options = this.getOptions();
  44. prepareOptions(options, data);
  45. $.plot($("#flotResponseTimesPercentiles"), dataset, options);
  46. // setup overview
  47. // 译文:安装概述
  48. $.plot($("#overviewResponseTimesPercentiles"), dataset, prepareOverviewOptions(options));
  49. }
  50. };

第4段—— function setEmptyGraph(elementId)

  1. /**
  2. * @param elementId Id of element where we display message
  3. * 译文:@参数 elementId 是显示消息的元素标识 ID
  4. */
  5. function setEmptyGraph(elementId) {
  6. $(function() {
  7. $(elementId).text("No graph series with filter="+seriesFilter);
  8. });
  9. }

第5段—— 响应时间百分位数:function refreshResponseTimePercentiles()

  1. // Response times percentiles
  2. // 译文:响应时间百分位数
  3. function refreshResponseTimePercentiles() {
  4. var infos = responseTimePercentilesInfos;
  5. prepareSeries(infos.data);
  6. if(infos.data.result.series.length == 0) {
  7. setEmptyGraph("#bodyResponseTimePercentiles");
  8. return;
  9. }
  10. if (isGraph($("#flotResponseTimesPercentiles"))){
  11. infos.createGraph();
  12. } else {
  13. var choiceContainer = $("#choicesResponseTimePercentiles");
  14. createLegend(choiceContainer, infos);
  15. infos.createGraph();
  16. setGraphZoomable("#flotResponseTimesPercentiles", "#overviewResponseTimesPercentiles");
  17. $('#bodyResponseTimePercentiles .legendColorBox > div').each(function(i){
  18. $(this).clone().prependTo(choiceContainer.find("li").eq(i));
  19. });
  20. }
  21. }

第6段—— var responseTimeDistributionInfos

  1. var responseTimeDistributionInfos = {
  2. data: ${responseTimeDistribution!"{}"},
  3. getOptions: function() {
  4. var granularity = this.data.result.granularity;
  5. return {
  6. legend: {
  7. noColumns: 2,
  8. show: true,
  9. container: '#legendResponseTimeDistribution'
  10. },
  11. xaxis:{
  12. axisLabel: "Response times in ms",
  13. axisLabelUseCanvas: true,
  14. axisLabelFontSizePixels: 12,
  15. axisLabelFontFamily: 'Verdana, Arial',
  16. axisLabelPadding: 20,
  17. },
  18. yaxis: {
  19. axisLabel: "Number of responses",
  20. axisLabelUseCanvas: true,
  21. axisLabelFontSizePixels: 12,
  22. axisLabelFontFamily: 'Verdana, Arial',
  23. axisLabelPadding: 20,
  24. },
  25. bars : {
  26. show: true,
  27. barWidth: this.data.result.granularity
  28. },
  29. grid: {
  30. hoverable: true // IMPORTANT! this is needed for tooltip to
  31. // work
  32. // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
  33. },
  34. tooltip: true,
  35. tooltipOpts: {
  36. content: function(label, xval, yval, flotItem){
  37. return yval + " responses for " + label + " were between " + xval + " and " + (xval + granularity) + " ms";
  38. }
  39. }
  40. };
  41. },
  42. createGraph: function() {
  43. var data = this.data;
  44. var options = this.getOptions();
  45. prepareOptions(options, data);
  46. $.plot($("#flotResponseTimeDistribution"), prepareData(data.result.series, $("#choicesResponseTimeDistribution")), options);
  47. }
  48. };

第7段—— 响应时间分布:function refreshResponseTimeDistribution()

  1. // Response time distribution
  2. // 译文:响应时间分布
  3. function refreshResponseTimeDistribution() {
  4. var infos = responseTimeDistributionInfos;
  5. prepareSeries(infos.data);
  6. if(infos.data.result.series.length == 0) {
  7. setEmptyGraph("#bodyResponseTimeDistribution");
  8. return;
  9. }
  10. if (isGraph($("#flotResponseTimeDistribution"))){
  11. infos.createGraph();
  12. }else{
  13. var choiceContainer = $("#choicesResponseTimeDistribution");
  14. createLegend(choiceContainer, infos);
  15. infos.createGraph();
  16. $('#footerResponseTimeDistribution .legendColorBox > div').each(function(i){
  17. $(this).clone().prependTo(choiceContainer.find("li").eq(i));
  18. });
  19. }
  20. };

第8段—— var syntheticResponseTimeDistributionInfos

  1. var syntheticResponseTimeDistributionInfos = {
  2. data: ${syntheticResponseTimeDistribution!"{}"},
  3. getOptions: function() {
  4. return {
  5. legend: {
  6. noColumns: 2,
  7. show: true,
  8. container: '#legendSyntheticResponseTimeDistribution'
  9. },
  10. xaxis:{
  11. axisLabel: "Response times ranges",
  12. axisLabelUseCanvas: true,
  13. axisLabelFontSizePixels: 12,
  14. axisLabelFontFamily: 'Verdana, Arial',
  15. axisLabelPadding: 20,
  16. tickLength:0,
  17. min:-0.5,
  18. max:3.5
  19. },
  20. yaxis: {
  21. axisLabel: "Number of responses",
  22. axisLabelUseCanvas: true,
  23. axisLabelFontSizePixels: 12,
  24. axisLabelFontFamily: 'Verdana, Arial',
  25. axisLabelPadding: 20,
  26. },
  27. bars : {
  28. show: true,
  29. align: "center",
  30. barWidth: 0.25,
  31. fill:.75
  32. },
  33. grid: {
  34. hoverable: true // IMPORTANT! this is needed for tooltip to
  35. // work
  36. // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
  37. },
  38. tooltip: true,
  39. tooltipOpts: {
  40. content: function(label, xval, yval, flotItem){
  41. return yval + " " + label;
  42. }
  43. }
  44. };
  45. },
  46. createGraph: function() {
  47. var data = this.data;
  48. var options = this.getOptions();
  49. prepareOptions(options, data);
  50. options.xaxis.ticks = data.result.ticks;
  51. $.plot($("#flotSyntheticResponseTimeDistribution"), prepareData(data.result.series, $("#choicesSyntheticResponseTimeDistribution")), options);
  52. }
  53. };

第9段—— 响应时间分布:function refreshSyntheticResponseTimeDistribution()

  1. // Response time distribution
  2. // 译文:响应时间分布
  3. function refreshSyntheticResponseTimeDistribution() {
  4. var infos = syntheticResponseTimeDistributionInfos;
  5. prepareSeries(infos.data, true);
  6. if (isGraph($("#flotSyntheticResponseTimeDistribution"))){
  7. infos.createGraph();
  8. }else{
  9. var choiceContainer = $("#choicesSyntheticResponseTimeDistribution");
  10. createLegend(choiceContainer, infos);
  11. infos.createGraph();
  12. $('#footerSyntheticResponseTimeDistribution .legendColorBox > div').each(function(i){
  13. $(this).clone().prependTo(choiceContainer.find("li").eq(i));
  14. });
  15. }
  16. };

第10段—— var activeThreadsOverTimeInfos

  1. var activeThreadsOverTimeInfos = {
  2. data: ${activeThreadsOverTime!"{}"},
  3. getOptions: function() {
  4. return {
  5. series: {
  6. stack: true,
  7. lines: {
  8. show: true,
  9. fill: true
  10. },
  11. points: {
  12. show: true
  13. }
  14. },
  15. xaxis: {
  16. mode: "time",
  17. timeformat: getTimeFormat(this.data.result.granularity),
  18. axisLabel: getElapsedTimeLabel(this.data.result.granularity),
  19. axisLabelUseCanvas: true,
  20. axisLabelFontSizePixels: 12,
  21. axisLabelFontFamily: 'Verdana, Arial',
  22. axisLabelPadding: 20,
  23. },
  24. yaxis: {
  25. axisLabel: "Number of active threads",
  26. axisLabelUseCanvas: true,
  27. axisLabelFontSizePixels: 12,
  28. axisLabelFontFamily: 'Verdana, Arial',
  29. axisLabelPadding: 20
  30. },
  31. legend: {
  32. noColumns: 6,
  33. show: true,
  34. container: '#legendActiveThreadsOverTime'
  35. },
  36. grid: {
  37. hoverable: true // IMPORTANT! this is needed for tooltip to
  38. // work
  39. // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
  40. },
  41. selection: {
  42. mode: 'xy'
  43. },
  44. tooltip: true,
  45. tooltipOpts: {
  46. content: "%s : At %x there were %y active threads"
  47. }
  48. };
  49. },
  50. createGraph: function() {
  51. var data = this.data;
  52. var dataset = prepareData(data.result.series, $("#choicesActiveThreadsOverTime"));
  53. var options = this.getOptions();
  54. prepareOptions(options, data);
  55. $.plot($("#flotActiveThreadsOverTime"), dataset, options);
  56. // setup overview
  57. // 译文:安装概述
  58. $.plot($("#overviewActiveThreadsOverTime"), dataset, prepareOverviewOptions(options));
  59. }
  60. };

第11段—— 活动线程随时间变化:function refreshActiveThreadsOverTime(fixTimestamps)

  1. // Active Threads Over Time
  2. // 译文:活动线程随时间变化
  3. function refreshActiveThreadsOverTime(fixTimestamps) {
  4. var infos = activeThreadsOverTimeInfos;
  5. prepareSeries(infos.data);
  6. if(fixTimestamps) {
  7. fixTimeStamps(infos.data.result.series, ${(timeZoneOffset?c)!0});
  8. }
  9. if(isGraph($("#flotActiveThreadsOverTime"))) {
  10. infos.createGraph();
  11. }else{
  12. var choiceContainer = $("#choicesActiveThreadsOverTime");
  13. createLegend(choiceContainer, infos);
  14. infos.createGraph();
  15. setGraphZoomable("#flotActiveThreadsOverTime", "#overviewActiveThreadsOverTime");
  16. $('#footerActiveThreadsOverTime .legendColorBox > div').each(function(i){
  17. $(this).clone().prependTo(choiceContainer.find("li").eq(i));
  18. });
  19. }
  20. };

第12段—— var timeVsThreadsInfos

  1. var timeVsThreadsInfos = {
  2. data: ${timeVsThreads!"{}"},
  3. getOptions: function() {
  4. return {
  5. series: {
  6. lines: {
  7. show: true
  8. },
  9. points: {
  10. show: true
  11. }
  12. },
  13. xaxis: {
  14. axisLabel: "Number of active threads",
  15. axisLabelUseCanvas: true,
  16. axisLabelFontSizePixels: 12,
  17. axisLabelFontFamily: 'Verdana, Arial',
  18. axisLabelPadding: 20,
  19. },
  20. yaxis: {
  21. axisLabel: "Average response times in ms",
  22. axisLabelUseCanvas: true,
  23. axisLabelFontSizePixels: 12,
  24. axisLabelFontFamily: 'Verdana, Arial',
  25. axisLabelPadding: 20
  26. },
  27. legend: { noColumns: 2,show: true, container: '#legendTimeVsThreads' },
  28. selection: {
  29. mode: 'xy'
  30. },
  31. grid: {
  32. hoverable: true // IMPORTANT! this is needed for tooltip to work
  33. // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
  34. },
  35. tooltip: true,
  36. tooltipOpts: {
  37. content: "%s: At %x.2 active threads, Average response time was %y.2 ms"
  38. }
  39. };
  40. },
  41. createGraph: function() {
  42. var data = this.data;
  43. var dataset = prepareData(data.result.series, $("#choicesTimeVsThreads"));
  44. var options = this.getOptions();
  45. prepareOptions(options, data);
  46. $.plot($("#flotTimesVsThreads"), dataset, options);
  47. // setup overview
  48. // 译文:安装概述
  49. $.plot($("#overviewTimesVsThreads"), dataset, prepareOverviewOptions(options));
  50. }
  51. };

第13段—— 时间与线程:function refreshTimeVsThreads()

  1. // Time vs threads
  2. // 译文:时间与线程
  3. function refreshTimeVsThreads(){
  4. var infos = timeVsThreadsInfos;
  5. prepareSeries(infos.data);
  6. if(infos.data.result.series.length == 0) {
  7. setEmptyGraph("#bodyTimeVsThreads");
  8. return;
  9. }
  10. if(isGraph($("#flotTimesVsThreads"))){
  11. infos.createGraph();
  12. }else{
  13. var choiceContainer = $("#choicesTimeVsThreads");
  14. createLegend(choiceContainer, infos);
  15. infos.createGraph();
  16. setGraphZoomable("#flotTimesVsThreads", "#overviewTimesVsThreads");
  17. $('#footerTimeVsThreads .legendColorBox > div').each(function(i){
  18. $(this).clone().prependTo(choiceContainer.find("li").eq(i));
  19. });
  20. }
  21. };

第14段—— var bytesThroughputOverTimeInfos

  1. var bytesThroughputOverTimeInfos = {
  2. data : ${bytesThroughputOverTime!"{}"},
  3. getOptions : function(){
  4. return {
  5. series: {
  6. lines: {
  7. show: true
  8. },
  9. points: {
  10. show: true
  11. }
  12. },
  13. xaxis: {
  14. mode: "time",
  15. timeformat: getTimeFormat(this.data.result.granularity),
  16. axisLabel: getElapsedTimeLabel(this.data.result.granularity) ,
  17. axisLabelUseCanvas: true,
  18. axisLabelFontSizePixels: 12,
  19. axisLabelFontFamily: 'Verdana, Arial',
  20. axisLabelPadding: 20,
  21. },
  22. yaxis: {
  23. axisLabel: "Bytes / sec",
  24. axisLabelUseCanvas: true,
  25. axisLabelFontSizePixels: 12,
  26. axisLabelFontFamily: 'Verdana, Arial',
  27. axisLabelPadding: 20,
  28. },
  29. legend: {
  30. noColumns: 2,
  31. show: true,
  32. container: '#legendBytesThroughputOverTime'
  33. },
  34. selection: {
  35. mode: "xy"
  36. },
  37. grid: {
  38. hoverable: true // IMPORTANT! this is needed for tooltip to
  39. // work
  40. // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
  41. },
  42. tooltip: true,
  43. tooltipOpts: {
  44. content: "%s at %x was %y"
  45. }
  46. };
  47. },
  48. createGraph : function() {
  49. var data = this.data;
  50. var dataset = prepareData(data.result.series, $("#choicesBytesThroughputOverTime"));
  51. var options = this.getOptions();
  52. prepareOptions(options, data);
  53. $.plot($("#flotBytesThroughputOverTime"), dataset, options);
  54. // setup overview
  55. // 译文:安装概述
  56. $.plot($("#overviewBytesThroughputOverTime"), dataset, prepareOverviewOptions(options));
  57. }
  58. };

第15段—— 字节吞吐量随时间变化:function refreshBytesThroughputOverTime(fixTimestamps)

  1. // Bytes throughput Over Time
  2. // 译文:字节吞吐量随时间变化
  3. function refreshBytesThroughputOverTime(fixTimestamps) {
  4. var infos = bytesThroughputOverTimeInfos;
  5. prepareSeries(infos.data);
  6. if(fixTimestamps) {
  7. fixTimeStamps(infos.data.result.series, ${(timeZoneOffset?c)!0});
  8. }
  9. if(isGraph($("#flotBytesThroughputOverTime"))){
  10. infos.createGraph();
  11. }else{
  12. var choiceContainer = $("#choicesBytesThroughputOverTime");
  13. createLegend(choiceContainer, infos);
  14. infos.createGraph();
  15. setGraphZoomable("#flotBytesThroughputOverTime", "#overviewBytesThroughputOverTime");
  16. $('#footerBytesThroughputOverTime .legendColorBox > div').each(function(i){
  17. $(this).clone().prependTo(choiceContainer.find("li").eq(i));
  18. });
  19. }
  20. }

第16段—— var responseTimesOverTimeInfos

  1. var responseTimesOverTimeInfos = {
  2. data: ${responseTimesOverTime!"{}"},
  3. getOptions: function(){
  4. return {
  5. series: {
  6. lines: {
  7. show: true
  8. },
  9. points: {
  10. show: true
  11. }
  12. },
  13. xaxis: {
  14. mode: "time",
  15. timeformat: getTimeFormat(this.data.result.granularity),
  16. axisLabel: getElapsedTimeLabel(this.data.result.granularity),
  17. axisLabelUseCanvas: true,
  18. axisLabelFontSizePixels: 12,
  19. axisLabelFontFamily: 'Verdana, Arial',
  20. axisLabelPadding: 20,
  21. },
  22. yaxis: {
  23. axisLabel: "Average response time in ms",
  24. axisLabelUseCanvas: true,
  25. axisLabelFontSizePixels: 12,
  26. axisLabelFontFamily: 'Verdana, Arial',
  27. axisLabelPadding: 20,
  28. },
  29. legend: {
  30. noColumns: 2,
  31. show: true,
  32. container: '#legendResponseTimesOverTime'
  33. },
  34. selection: {
  35. mode: 'xy'
  36. },
  37. grid: {
  38. hoverable: true // IMPORTANT! this is needed for tooltip to
  39. // work
  40. // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
  41. },
  42. tooltip: true,
  43. tooltipOpts: {
  44. content: "%s : at %x Average response time was %y ms"
  45. }
  46. };
  47. },
  48. createGraph: function() {
  49. var data = this.data;
  50. var dataset = prepareData(data.result.series, $("#choicesResponseTimesOverTime"));
  51. var options = this.getOptions();
  52. prepareOptions(options, data);
  53. $.plot($("#flotResponseTimesOverTime"), dataset, options);
  54. // setup overview
  55. // 译文:安装概述
  56. $.plot($("#overviewResponseTimesOverTime"), dataset, prepareOverviewOptions(options));
  57. }
  58. };

第17段—— 随时间变化的响应时间:function refreshResponseTimeOverTime(fixTimestamps)

  1. // Response Times Over Time
  2. // 译文:随时间变化的响应时间
  3. function refreshResponseTimeOverTime(fixTimestamps) {
  4. var infos = responseTimesOverTimeInfos;
  5. prepareSeries(infos.data);
  6. if(infos.data.result.series.length == 0) {
  7. setEmptyGraph("#bodyResponseTimeOverTime");
  8. return;
  9. }
  10. if(fixTimestamps) {
  11. fixTimeStamps(infos.data.result.series, ${(timeZoneOffset?c)!0});
  12. }
  13. if(isGraph($("#flotResponseTimesOverTime"))){
  14. infos.createGraph();
  15. }else{
  16. var choiceContainer = $("#choicesResponseTimesOverTime");
  17. createLegend(choiceContainer, infos);
  18. infos.createGraph();
  19. setGraphZoomable("#flotResponseTimesOverTime", "#overviewResponseTimesOverTime");
  20. $('#footerResponseTimesOverTime .legendColorBox > div').each(function(i){
  21. $(this).clone().prependTo(choiceContainer.find("li").eq(i));
  22. });
  23. }
  24. };

第18段——var latenciesOverTimeInfos

  1. var latenciesOverTimeInfos = {
  2. data: ${latenciesOverTime!"{}"},
  3. getOptions: function() {
  4. return {
  5. series: {
  6. lines: {
  7. show: true
  8. },
  9. points: {
  10. show: true
  11. }
  12. },
  13. xaxis: {
  14. mode: "time",
  15. timeformat: getTimeFormat(this.data.result.granularity),
  16. axisLabel: getElapsedTimeLabel(this.data.result.granularity),
  17. axisLabelUseCanvas: true,
  18. axisLabelFontSizePixels: 12,
  19. axisLabelFontFamily: 'Verdana, Arial',
  20. axisLabelPadding: 20,
  21. },
  22. yaxis: {
  23. axisLabel: "Average response latencies in ms",
  24. axisLabelUseCanvas: true,
  25. axisLabelFontSizePixels: 12,
  26. axisLabelFontFamily: 'Verdana, Arial',
  27. axisLabelPadding: 20,
  28. },
  29. legend: {
  30. noColumns: 2,
  31. show: true,
  32. container: '#legendLatenciesOverTime'
  33. },
  34. selection: {
  35. mode: 'xy'
  36. },
  37. grid: {
  38. hoverable: true // IMPORTANT! this is needed for tooltip to
  39. // work
  40. // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
  41. },
  42. tooltip: true,
  43. tooltipOpts: {
  44. content: "%s : at %x Average latency was %y ms"
  45. }
  46. };
  47. },
  48. createGraph: function () {
  49. var data = this.data;
  50. var dataset = prepareData(data.result.series, $("#choicesLatenciesOverTime"));
  51. var options = this.getOptions();
  52. prepareOptions(options, data);
  53. $.plot($("#flotLatenciesOverTime"), dataset, options);
  54. // setup overview
  55. // 译文:安装概述
  56. $.plot($("#overviewLatenciesOverTime"), dataset, prepareOverviewOptions(options));
  57. }
  58. };

第19段—— 一段时间的延迟:function refreshLatenciesOverTime(fixTimestamps)

  1. // Latencies Over Time
  2. // 译文:一段时间的延迟
  3. function refreshLatenciesOverTime(fixTimestamps) {
  4. var infos = latenciesOverTimeInfos;
  5. prepareSeries(infos.data);
  6. if(infos.data.result.series.length == 0) {
  7. setEmptyGraph("#bodyLatenciesOverTime");
  8. return;
  9. }
  10. if(fixTimestamps) {
  11. fixTimeStamps(infos.data.result.series, ${(timeZoneOffset?c)!0});
  12. }
  13. if(isGraph($("#flotLatenciesOverTime"))) {
  14. infos.createGraph();
  15. }else {
  16. var choiceContainer = $("#choicesLatenciesOverTime");
  17. createLegend(choiceContainer, infos);
  18. infos.createGraph();
  19. setGraphZoomable("#flotLatenciesOverTime", "#overviewLatenciesOverTime");
  20. $('#footerLatenciesOverTime .legendColorBox > div').each(function(i){
  21. $(this).clone().prependTo(choiceContainer.find("li").eq(i));
  22. });
  23. }
  24. };

第20段—— var connectTimeOverTimeInfos

  1. var connectTimeOverTimeInfos = {
  2. data: ${connectTimeOverTime!"{}"},
  3. getOptions: function() {
  4. return {
  5. series: {
  6. lines: {
  7. show: true
  8. },
  9. points: {
  10. show: true
  11. }
  12. },
  13. xaxis: {
  14. mode: "time",
  15. timeformat: getTimeFormat(this.data.result.granularity),
  16. axisLabel: getConnectTimeLabel(this.data.result.granularity),
  17. axisLabelUseCanvas: true,
  18. axisLabelFontSizePixels: 12,
  19. axisLabelFontFamily: 'Verdana, Arial',
  20. axisLabelPadding: 20,
  21. },
  22. yaxis: {
  23. axisLabel: "Average Connect Time in ms",
  24. axisLabelUseCanvas: true,
  25. axisLabelFontSizePixels: 12,
  26. axisLabelFontFamily: 'Verdana, Arial',
  27. axisLabelPadding: 20,
  28. },
  29. legend: {
  30. noColumns: 2,
  31. show: true,
  32. container: '#legendConnectTimeOverTime'
  33. },
  34. selection: {
  35. mode: 'xy'
  36. },
  37. grid: {
  38. hoverable: true // IMPORTANT! this is needed for tooltip to
  39. // work
  40. // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
  41. },
  42. tooltip: true,
  43. tooltipOpts: {
  44. content: "%s : at %x Average connect time was %y ms"
  45. }
  46. };
  47. },
  48. createGraph: function () {
  49. var data = this.data;
  50. var dataset = prepareData(data.result.series, $("#choicesConnectTimeOverTime"));
  51. var options = this.getOptions();
  52. prepareOptions(options, data);
  53. $.plot($("#flotConnectTimeOverTime"), dataset, options);
  54. // setup overview
  55. // 译文:安装概述
  56. $.plot($("#overviewConnectTimeOverTime"), dataset, prepareOverviewOptions(options));
  57. }
  58. };

第21段—— 连接时间超时:function refreshConnectTimeOverTime(fixTimestamps)

  1. // Connect Time Over Time
  2. // 译文:连接时间超时
  3. function refreshConnectTimeOverTime(fixTimestamps) {
  4. var infos = connectTimeOverTimeInfos;
  5. prepareSeries(infos.data);
  6. if(infos.data.result.series.length == 0) {
  7. setEmptyGraph("#bodyConnectTimeOverTime");
  8. return;
  9. }
  10. if(fixTimestamps) {
  11. fixTimeStamps(infos.data.result.series, ${(timeZoneOffset?c)!0});
  12. }
  13. if(isGraph($("#flotConnectTimeOverTime"))) {
  14. infos.createGraph();
  15. }else {
  16. var choiceContainer = $("#choicesConnectTimeOverTime");
  17. createLegend(choiceContainer, infos);
  18. infos.createGraph();
  19. setGraphZoomable("#flotConnectTimeOverTime", "#overviewConnectTimeOverTime");
  20. $('#footerConnectTimeOverTime .legendColorBox > div').each(function(i){
  21. $(this).clone().prependTo(choiceContainer.find("li").eq(i));
  22. });
  23. }
  24. };

第22段—— var responseTimePercentilesOverTimeInfos

  1. var responseTimePercentilesOverTimeInfos = {
  2. data: ${responseTimePercentilesOverTime!"{}"},
  3. getOptions: function() {
  4. return {
  5. series: {
  6. lines: {
  7. show: true,
  8. fill: true
  9. },
  10. points: {
  11. show: true
  12. }
  13. },
  14. xaxis: {
  15. mode: "time",
  16. timeformat: getTimeFormat(this.data.result.granularity),
  17. axisLabel: getElapsedTimeLabel(this.data.result.granularity),
  18. axisLabelUseCanvas: true,
  19. axisLabelFontSizePixels: 12,
  20. axisLabelFontFamily: 'Verdana, Arial',
  21. axisLabelPadding: 20,
  22. },
  23. yaxis: {
  24. axisLabel: "Response Time in ms",
  25. axisLabelUseCanvas: true,
  26. axisLabelFontSizePixels: 12,
  27. axisLabelFontFamily: 'Verdana, Arial',
  28. axisLabelPadding: 20,
  29. },
  30. legend: {
  31. noColumns: 2,
  32. show: true,
  33. container: '#legendResponseTimePercentilesOverTime'
  34. },
  35. selection: {
  36. mode: 'xy'
  37. },
  38. grid: {
  39. hoverable: true // IMPORTANT! this is needed for tooltip to
  40. // work
  41. // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
  42. },
  43. tooltip: true,
  44. tooltipOpts: {
  45. content: "%s : at %x Response time was %y ms"
  46. }
  47. };
  48. },
  49. createGraph: function () {
  50. var data = this.data;
  51. var dataset = prepareData(data.result.series, $("#choicesResponseTimePercentilesOverTime"));
  52. var options = this.getOptions();
  53. prepareOptions(options, data);
  54. $.plot($("#flotResponseTimePercentilesOverTime"), dataset, options);
  55. // setup overview
  56. // 译文:安装概述
  57. $.plot($("#overviewResponseTimePercentilesOverTime"), dataset, prepareOverviewOptions(options));
  58. }
  59. };

第23段—— 响应时间百分比随时间变化:function refreshResponseTimePercentilesOverTime(fixTimestamps)

  1. // Response Time Percentiles Over Time
  2. // 译文:响应时间百分比随时间变化
  3. function refreshResponseTimePercentilesOverTime(fixTimestamps) {
  4. var infos = responseTimePercentilesOverTimeInfos;
  5. prepareSeries(infos.data);
  6. if(fixTimestamps) {
  7. fixTimeStamps(infos.data.result.series, ${(timeZoneOffset?c)!0});
  8. }
  9. if(isGraph($("#flotResponseTimePercentilesOverTime"))) {
  10. infos.createGraph();
  11. }else {
  12. var choiceContainer = $("#choicesResponseTimePercentilesOverTime");
  13. createLegend(choiceContainer, infos);
  14. infos.createGraph();
  15. setGraphZoomable("#flotResponseTimePercentilesOverTime", "#overviewResponseTimePercentilesOverTime");
  16. $('#footerResponseTimePercentilesOverTime .legendColorBox > div').each(function(i){
  17. $(this).clone().prependTo(choiceContainer.find("li").eq(i));
  18. });
  19. }
  20. };

第23段—— var responseTimeVsRequestInfos

  1. var responseTimeVsRequestInfos = {
  2. data: ${responseTimeVsRequest!"{}"},
  3. getOptions: function() {
  4. return {
  5. series: {
  6. lines: {
  7. show: false
  8. },
  9. points: {
  10. show: true
  11. }
  12. },
  13. xaxis: {
  14. axisLabel: "Global number of requests per second",
  15. axisLabelUseCanvas: true,
  16. axisLabelFontSizePixels: 12,
  17. axisLabelFontFamily: 'Verdana, Arial',
  18. axisLabelPadding: 20,
  19. },
  20. yaxis: {
  21. axisLabel: "Median Response Time in ms",
  22. axisLabelUseCanvas: true,
  23. axisLabelFontSizePixels: 12,
  24. axisLabelFontFamily: 'Verdana, Arial',
  25. axisLabelPadding: 20,
  26. },
  27. legend: {
  28. noColumns: 2,
  29. show: true,
  30. container: '#legendResponseTimeVsRequest'
  31. },
  32. selection: {
  33. mode: 'xy'
  34. },
  35. grid: {
  36. hoverable: true // IMPORTANT! this is needed for tooltip to work
  37. // 译文:重要!这是提示(提示信息/提示框/提示文本)工作所必需的工具
  38. },
  39. tooltip: true,
  40. tooltipOpts: {
  41. content: "%s : Median response time at %x req/s was %y ms"
  42. },
  43. colors: ["#9ACD32", "#FF6347"]
  44. };
  45. },
  46. createGraph: function () {
  47. var data = this.data;
  48. var dataset = prepareData(data.result.series, $("#choicesResponseTimeVsRequest"));
  49. var options = this.getOptions();
  50. prepareOptions(options, data);
  51. $.plot($("#flotResponseTimeVsRequest"), dataset, options);
  52. // setup overview
  53. // 译文:安装概述
  54. $.plot($("#overviewResponseTimeVsRequest"), dataset, prepareOverviewOptions(options));
  55. }
  56. };

第24段—— 响应时间与请求:function refreshResponseTimeVsRequest()

  1. // Response Time vs Request
  2. // 译文:响应时间与请求
  3. function refreshResponseTimeVsRequest() {
  4. var infos = responseTimeVsRequestInfos;
  5. prepareSeries(infos.data);
  6. if (isGraph($("#flotResponseTimeVsRequest"))){
  7. infos.create();
  8. }else{
  9. var choiceContainer = $("#choicesResponseTimeVsRequest");

【十八】文件译文:graph.js.fmkr (测试报告模版配置文件)相关推荐

  1. Jmeter(四十八)_动态线程分析HTML测试报告

    概述 jmeterGUI模式下,性能测试的结果往往误差很大,因为GUI本身就会消耗一部分资源.所以我们常常用命令行去跑性能脚本,得出结果 同时,jmeter在命令行下还可以生成多维度的测试报告,里面包 ...

  2. 十八、部署 Vue.js 项目到生产环境

    本章概要 构建发布版本 部署 项目开发完毕并测试后,就要准备构建发布版本,部署到生产环境. 18.1 构建发布版本 在构建发布版本前,注意将项目代码中用于调试的 alert.debugger.cons ...

  3. [网络安全自学篇] 二十八.文件上传入门及防御原理(一)

    这是作者的系列网络安全自学教程,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Sqlmap的基本用法.CTF实战,包括设置HTTP.POST请求.参数 ...

  4. 图神经网络(二十八)GATED GRAPH SEQUENCE NEURAL NETWORKS

    本文收录于ICLR2016,作者来自于多伦多大学,文章比较老了,但是很经典.GGNN是一种基于GRU的经典空域模型,一个基本的感觉就是GNN+Gate.我们现在看的大部分GNN模型都是基于消息传递机制 ...

  5. 【十七】文件译文:user.properties (用户配置文件)

    目录 一.文件说明 二.类路径配置 三.报告配置 四.分布式测试配置 一.文件说明 第1段--许可证说明 (1)原文 # Sample user.properties file # ## Licens ...

  6. 【十九】文件译文:reportgenerator.properties (报表生成器属性文件)

    目录 一.文件说明 二.报告配置 一.文件说明 (一)第1段--文件标题 (1)原文 ######################################################### ...

  7. JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤...

    JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常 ...

  8. ComicEnhancerPro 系列教程十八:JPG文件长度与质量

    作者:马健 邮箱:stronghorse_mj@hotmail.com 主页:http://www.comicer.com/stronghorse/ 发布:2017.07.23 教程十八:JPG文件长 ...

  9. JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤

    JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常 ...

最新文章

  1. char(nchar)与varchar(nvarchar)的区别以及选择
  2. 数据仓库工具箱:维度建模权威指南3
  3. Android ContentProvider实现两个程序间数据共享demo,跨进程通讯
  4. (王道408考研操作系统)第四章文件管理-第二节4:磁盘的管理
  5. Oracle11g报bde,表现 – BDE与ADO在德尔福
  6. VS2010编译驱动程序
  7. 搞不明白为什么大家都在学习 k8s
  8. Bailian4067 回文数字(Palindrome Number)【数学】
  9. Modbus 与 RS485 的区别与联系
  10. 高考数学圆锥曲线总结贴+杂题巧解
  11. 2022-2028全球石油管材接头行业调研及趋势分析报告
  12. 21个免费设计网站助力第十一届全国大学生广告艺术大赛!
  13. iphone修改手机铃声
  14. 匿名函数 和 拉姆达表达式
  15. sqlserver 2012 序列号
  16. Linux——DHCP篇
  17. 前端基础第二天——HTML5基础
  18. 【C/C++】【NOI】雇佣兵代码及分析理解
  19. 利用爬虫下载批量图片
  20. gitlab下载地址

热门文章

  1. Effective C++ 读书笔记之Part4.Design and Declarations
  2. 品尝Android(二)jQuery Mobile初探
  3. asp.net ajax 1.0中detailview与updatepanel混合使用的例子
  4. 使用xadmin覆盖Django的admin
  5. [BZOJ2958]序列染色
  6. SpringMVC入门笔记
  7. java 过滤器filter使用案例
  8. HTTPS时代全面到来,你准备好了吗?
  9. Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法[转]
  10. PHP变量名区分大小写,函数名不区分大小写