背景
在使用jmeter执行性能测试时,我们通常使用命令行模式,且尽量关闭不必要的监听器、减少日志输出等,以提高测试结果的置信度,通常我们只保留聚合报告。
在测试过程中,某些接口会产生一定的错误,为了减少错误率,我们需要采集错误信息以帮助定位问题,而聚合报告中的错误信息不够详尽,所以,我们通常使用“仅错误日志”的查看结果树,在测试执行过程中将失败的请求、响应等保存成xml文件,以便在测试结束后可以清晰地看到出错原因:
现在,希望在测试执行结束后,自动解析生成的XML文件,提取其中的错误信息,而非测试人员手工导入到JMeter中进行解析和结果汇集。
而JMeter除了常用的HTTP外,还有JDBC等多种协议,需要考虑不同类型的请求结果在保存为XML文件时是否会有不同的结构或者标签,所以,需要分析JMeter结果树XML保存机制。
JMeter执行采样器到保存结果文件的路径(JMeter5.5源码)
以单机执行为例,
1、Jmeter通过src/core/src/main/java/org/apache/jmeter/threads/JMeterThread.java中executeSamplePackage()方法执行采样器
2、通过notifyListeners将结果传递给所有注册的监听器