Jmeter如何获取jtl文件中所有的请求报文详解

前言

大家都知道Jmeter运行测试可以产生jtl文件,里边包含了整个脚本的请求返回以及各种设置。近期遇到一个问题给大家分享下,就是作为性能测试组,从自动化测试组中拿到了一堆jtl文件,需要自己提取其中的请求报文。

用Jmeter打开jtl文件可以看到,请求报文是xml报文,显示如下图:

Jmeter如何获取jtl文件中所有的请求报文详解_第1张图片

把jtl文件改为txt文件,打开看到如下图:

Jmeter如何获取jtl文件中所有的请求报文详解_第2张图片

内容还是比较多的,有N个请求,应该怎么提取呢,有Java基础的朋友应该可以使用代码直接提取,本人没有去实现,应该难度不是很大。那对于测试比较熟悉的我们,怎么使用jmeter工具来提取呢?

我的思路是这样的:

1.把原本的jtl文件只能在查看结果树的请求中看到报文,转变为使用BeanShell发送请求,可以在查看结果树返回中看到所有的结果。

Jmeter如何获取jtl文件中所有的请求报文详解_第3张图片Jmeter如何获取jtl文件中所有的请求报文详解_第4张图片

2.在查看结果树中,已经可以看到响应了,返回的是全部的原jtl文件内容,提取其中的报文就可以使用正则表达式,边界值提取器,得到自己想要的了,确定好请求的左右边界,匹配数字写-1,就是可以获取全部符合要求的报文了。

简单来讲,就是把jtl文件后缀改为txt,在jmeter中使用beanshell取样器中写代码,读取文件,并把读取结果放到Jmeter变量中,使用调试取样器就可以看到结果。

Jmeter如何获取jtl文件中所有的请求报文详解_第5张图片

3.这个时候获取data数据,不能简单使用${data}了,可以看做是综合的结果,获取时需要使用到ForEach控制器,因为多个jtl不能确定里边有多少个请求需要提取,所以循环的结束字段${data_matchNr}。

Jmeter如何获取jtl文件中所有的请求报文详解_第6张图片

4.最后一步,获取变量并输出,因为之前输出时xml格式的报文进行了转义,这边做了一个还原,使用lang3包中的固定方法就可以实现,代码如下:

Jmeter如何获取jtl文件中所有的请求报文详解_第7张图片

最终输出的txt文件,换行符隔开,可自行调整,然后用于性能测试脚本参数化,如下:

Jmeter如何获取jtl文件中所有的请求报文详解_第8张图片

 jtl文件较多,要进行路径参数化,把整个脚本内容放在一个事物控制器中,防止多线程下,获取到不同的结果,运行设置相应多的线程处理就可以了。

总结

到此这篇关于Jmeter如何获取jtl文件中所有的请求报文的文章就介绍到这了,更多相关Jmeter获取jtl中请求报文内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的