承接上一篇:
Jmeter源码改造之-自动化生成性能测试脚本_自动生成jmx-CSDN博客
假如你已经有了Jmeter源码开发环境,就可以通过代码去执行压测脚本(当然,界面、dos窗口命令/Linux命令、Jenkins等方式也都能实现脚本执行),还可以通过代码去解析.jtl结果文件来生成你想要的测试报告,并定制Jmeter弹框测试结果。
【执行压测脚本】:
注意:
下面代码中的currentDir,是Jmeter执行文件的目录(即bin目录);
jmxFileName(jmx文件名,可自定义时间戳等)、dataDir(jmx文件目录)、reportDir(Jmeter生成的报告路径)均可以根据需要自己在代码中定义。
Catch代码,可以替换成自己的日志代码。
核心代码如下:
//执行测试脚本,并生成结果 try { // 执行的Shell命令 String currentDir = System.getProperty("user.dir"); String command = "cmd /c "+currentDir+"\\jmeter -n -t "+jmxFileName+" -l "+dataDir+"\\result.jtl -e -o "+reportDir; // 执行命令 Process process = Runtime.getRuntime().exec(command); // 等待执行完成 process.waitFor(); } catch (IOException | InterruptedException e1) { e1.printStackTrace(); }
【生成测试报告】
其实就是解析jtl文件,读取信息。此处举两个例子:包括解析响应时间、解析错误率。
1.解析jtl文件获取响应时间:
readJtlForTime函数可以自己定义。
注意:响应时间在jtl文件中是“elapsed”这一列。
核心代码如下:
ArrayList<String> responseTime = readJtlForTime(dataDir+"\\result.jtl");
2.解析jtl文件获取错误率:
readJtlForErrorRate函数可以自己定义。
注意:响应时间在jtl文件中是“success”这一列,true表示该线程正确,false表示该线程错误。
核心代码如下:
//取得错误率 String errorRate = readJtlForErrorRate(dataDir+"\\result.jtl");
【Jmeter界面弹框测试结果】
JMeterUtils类中的几个函数,都可以实现弹框功能。
注意:以下两个函数都可以实现Jmeter弹框(第一个参数是弹框具体内容,第二个为弹框标题),可以根据需要自定义弹框信息。
代码例子如下:
JMeterUtils.reportInfoToUser(String msg, String titleMsg)
JmeterUtils.reportErrorToUser(String errorMsg, String titleMsg, Exception exception)
弹框样例如下:
【其他】:
由于Jmeter界面进行测试执行的方式比较吃内存,档线程数较多的时候,可能会报错” Out of Memory Error”(在Jmeter的bin目录下可查看具体error log)。这时,需要根据电脑资源情况关闭其他程序,或者调整JVM参数。
标签:解析,String,代码,弹框,jtl,源码,定制,Jmeter From: https://blog.csdn.net/weixin_47130880/article/details/140957688