Jmeter源码改造之-脚本执行&定制报告&定制Jmeter弹框

承接上一篇:

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参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值