如何忽略斜坡上升和斜坡下降期间的测试结果
How to ignore the test results during the ramp-up and ramp-down period
我想删除加速和减速期间的测试结果。这将帮助我在持续的工作负载下获得测试结果。此外,它会在斜坡时间内删除异常值。
该解决方案应与 JMeter 脚本 (JMX) 本身集成。从测试结果文件 (jtl,csv,xml) 中删除测试结果会增加一些额外的工作。
Synthesis Report 插件可以在一定程度上提供帮助。但它需要人工干预并且报告能力有限。 Synthesis Report is a mix between Summary Report and Aggregate Report:
我创建了一个带有 JSR223 Post Processor and placed it just after the Test Plan 组件的测试片段,以确保它应用于测试计划中的所有采样器。
将以下参数添加到参数中
${__P(ignore_ramping_time_results,true)} ${__P(testResultToIgnoreBeforeInMin,5)} ${__P(testResultToIgnoreAfterInMin,65)}
arg[0]
- 设置 true
忽略结果,false
包含结果
arg[1]
- 以分钟为单位设置加速时间。如果设置为2,前两分钟的测试结果将被忽略
arg[2]
- 以分钟为单位设置减速开始时间。如果设置为 10,则 10 分钟后的所有结果将被忽略。
if(args[0].toBoolean()){
int testResultToIgnoreBeforeInMin=args[1].toInteger()
int testResultToIgnoreAfterInMin=args[2].toInteger()
long testResultToIgnoreBeforeInMillis=testResultToIgnoreBeforeInMin*60*1000
long testResultToIgnoreAfterInMillis=testResultToIgnoreAfterInMin*60*1000
long startTimeInMillis=vars.get("TESTSTART.MS").toLong()
long currentTimeInMillis = new Date().getTime()
long currentTestDurationInMillis=currentTimeInMillis-startTimeInMillis
log.info("currentTestDurationInMillis ${currentTestDurationInMillis}")
if(currentTestDurationInMillis< testResultToIgnoreBeforeInMillis || currentTestDurationInMillis >testResultToIgnoreAfterInMillis){
prev.setIgnore()
log.info("Test result is ignored")
}
}
TESTSTART.MS
- test start time in milliseconds
is used in the script to get the test start time.
只需从 .jtl 结果文件中删除 ramp-up 和 ramp-down 阶段,选项在:
Filter Results Tool 提供 --start-offset
和 --end-offset
参数,因此您可以“切断”上升和下降阶段
JMeterPluginsCMD Command Line Tool 你提到综合报告时似乎已经在使用它了:
JMeterPluginsCMD --generate-csv report.csv --input-jtl /path/to/your/result.jtl --start-offset your-ramp-up-period-in-seconds --end-offset your-ramp-down-period-in-seconds --plugin-type SynthesisReport
我想删除加速和减速期间的测试结果。这将帮助我在持续的工作负载下获得测试结果。此外,它会在斜坡时间内删除异常值。
该解决方案应与 JMeter 脚本 (JMX) 本身集成。从测试结果文件 (jtl,csv,xml) 中删除测试结果会增加一些额外的工作。
Synthesis Report 插件可以在一定程度上提供帮助。但它需要人工干预并且报告能力有限。 Synthesis Report is a mix between Summary Report and Aggregate Report:
我创建了一个带有 JSR223 Post Processor and placed it just after the Test Plan 组件的测试片段,以确保它应用于测试计划中的所有采样器。
将以下参数添加到参数中
${__P(ignore_ramping_time_results,true)} ${__P(testResultToIgnoreBeforeInMin,5)} ${__P(testResultToIgnoreAfterInMin,65)}
arg[0]
- 设置true
忽略结果,false
包含结果arg[1]
- 以分钟为单位设置加速时间。如果设置为2,前两分钟的测试结果将被忽略arg[2]
- 以分钟为单位设置减速开始时间。如果设置为 10,则 10 分钟后的所有结果将被忽略。
if(args[0].toBoolean()){
int testResultToIgnoreBeforeInMin=args[1].toInteger()
int testResultToIgnoreAfterInMin=args[2].toInteger()
long testResultToIgnoreBeforeInMillis=testResultToIgnoreBeforeInMin*60*1000
long testResultToIgnoreAfterInMillis=testResultToIgnoreAfterInMin*60*1000
long startTimeInMillis=vars.get("TESTSTART.MS").toLong()
long currentTimeInMillis = new Date().getTime()
long currentTestDurationInMillis=currentTimeInMillis-startTimeInMillis
log.info("currentTestDurationInMillis ${currentTestDurationInMillis}")
if(currentTestDurationInMillis< testResultToIgnoreBeforeInMillis || currentTestDurationInMillis >testResultToIgnoreAfterInMillis){
prev.setIgnore()
log.info("Test result is ignored")
}
}
TESTSTART.MS
- test start time in milliseconds is used in the script to get the test start time.
只需从 .jtl 结果文件中删除 ramp-up 和 ramp-down 阶段,选项在:
Filter Results Tool 提供
--start-offset
和--end-offset
参数,因此您可以“切断”上升和下降阶段JMeterPluginsCMD Command Line Tool 你提到综合报告时似乎已经在使用它了:
JMeterPluginsCMD --generate-csv report.csv --input-jtl /path/to/your/result.jtl --start-offset your-ramp-up-period-in-seconds --end-offset your-ramp-down-period-in-seconds --plugin-type SynthesisReport