JMeter子结果无法在汇总表等组件显示的解决方法咨询
JMeter子结果在汇总/聚合/综合报告中显示的解决方案
针对JSR223脚本中创建的子结果仅在查看结果树可见,无法在汇总表、聚合报告等组件中以自定义标签显示的问题,可按以下步骤解决:
1. 修正JSR223脚本中子结果的属性设置
当前脚本的子结果缺少部分关键属性,导致报告组件无法正确识别。修改后的代码如下:
// SendMessage子步骤 def myResult_SendMessage = new org.apache.jmeter.samplers.SampleResult() myResult_SendMessage.setSampleLabel('SendMessage') myResult_SendMessage.sampleStart() // 业务操作代码 wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[contains(text(),'Send a message')]"))); WebElement Depot_SendMessage = driver.findElement(By.xpath("//a[contains(text(),'Send a message')]")); Depot_SendMessage.click(); // 完善子结果属性 myResult_SendMessage.setResponseCodeOK() myResult_SendMessage.setSuccessful(true) myResult_SendMessage.sampleEnd() myResult_SendMessage.latencyEnd() myResult_SendMessage.setResponseData(driver.getPageSource(), "UTF-8") // 指定响应数据编码 myResult_SendMessage.setDataType(org.apache.jmeter.samplers.SampleResult.TEXT) // 设置数据类型 // 关联到主样本,false表示不合并子结果 ctx.getSampleResult().addSubResult(myResult_SendMessage, false)
关键补充:指定响应数据编码和数据类型,确保子结果元数据完整,让报告工具能正确解析。
2. 调整JMeter核心配置
打开user.properties文件,确认并添加以下配置:
# 启用子结果保存 jmeter.save.saveservice.subresults=true # 允许报告工具包含所有非线程组的样本(包括子结果) jmeter.reportgenerator.exporter.html.series_filter=^(?!Thread Group)(?!Setup Thread Group)(?!Teardown Thread Group).*$ # 推荐使用XML格式保存结果,确保完整保存子结果信息 jmeter.save.saveservice.output_format=xml
注意:CSV格式对复杂子结果的支持有限,优先选择XML格式保存测试结果(.jtl文件)。
3. 配置报告组件显示子结果
- 汇总表:勾选配置面板中的「保存子结果」和「显示子结果」选项(部分版本需在「结果数据」下拉框中选择「包括子结果」)。
- 聚合报告:在配置中找到「Include subresults」选项,设置为
true,或选择「所有样本(包括子样本)」。 - 综合报告:勾选配置中的「包含子结果」复选框。
4. 验证测试流程
- 重启JMeter使配置生效。
- 重新运行测试计划。
- 生成报告后,检查汇总表、聚合报告等组件,子结果的自定义标签(如
SendMessage)应已单独显示。
内容的提问来源于stack exchange,提问作者Nadezhda T
相关产品推荐
相关产品推荐

