JMeter之关联:5种方法

阅读目录

前几天在Q群里看到群友发的最近10年性能测试工具使用率的统计,最近的2018年,jmeter+loadrunner占了93%的使用率,说明这两个是主流,其中,jmeter的使用率逐年提升,现在已经超过了loadrunner,占了51%。

除了做性能,jmeter也可以做自动化测试,比如jmeter + ant + jenkins的自动化测试框架(参考:https://www.cnblogs.com/UncleYong/p/10739519.html),jmeter还可以做接口功能测试,所以,jmeter应该是每个测试工程师的必备技能。

这里,我们着重讲解jmeter的关联,什么是关联?将服务器提供动态变化的值存放在变量中,当需要使用该变量时,自动从服务器响应的信息中获取该值,并在后面使用的过程中进行替换。(也可能是前端页面动态生成的值)

jmeter关联的方式比较多,这里介绍5种方式,总有一种让你喜欢。 如果想了解loadrunner关联的,可以参考LoadRunner【第五篇】关联:https://www.cnblogs.com/UncleYong/p/10702702.html

回到顶部

脚本准备

这里,我们用dummy取样器来模拟服务器的返回,通过关联获取name的值,然后百度搜索这个name的值,这就我们就简单模拟了请求间的依赖关系。

添加dummy取样器

设置返回内容

{
    "code":"00",
    "msg":"success",
    "data":{
                  "id":"qzcsbj",
                  "name":"全栈测试笔记",
                  "url":"https://www.cnblogs.com/UncleYong/"
              }
}

搜索的关键字是上一个请求返回的name值

打印获取到的name的值

log.info("name is value is 【"+vars.get("name")+"】");

调试的取样器

回到顶部

方法一:正则表达式提取器

正则.*?,参考:https://www.cnblogs.com/UncleYong/p/10779268.html

关联获取到的值

如果响应数据出现乱码,进入Jmeter的bin目录下,找到jmeter.properties文件,改配置文件

搜索“default.encoding”关键字,找到如下配置:

   # The encoding to be used if none is provided (default ISO-8859-1)
   #sampleresult.default.encoding=ISO-8859-1

将注释#删掉,并改成utf-8编码,如下:

 #The encoding to be used if none is provided (default utf-8)
   sampleresult.default.encoding=utf-8

再重启JMeter即可。

百度搜索结果

回到顶部

方法二:jp@gc - JSON Path Extractor提取器

$表示接口的返回值,如果取字典key的value,用点号,如果是取列表的某个值,用索引

关联获取到的值

百度搜索结果(略)

回到顶部

方式三:Json Extractor提取器

和方法二类似,$表示接口的返回值,如果取字典key的value,用点号,如果是取列表的某个值,用索引

关联获取到的值

百度搜索结果(略)

回到顶部

方式四:边界提取器

这个和loadrunner中的关联很像,通过左右边界来取值,参考:https://www.cnblogs.com/UncleYong/p/10702702.html

关联获取到的值

百度搜索结果(略)

回到顶部

方式五:beanshell后置处理器

写beanshell脚本,解析json字符串。

这里要用到fastjson,jar包下载地址:https://mvnrepository.com/artifact/com.alibaba/fastjson

下载后,把jar包放到D:\apache-jmeter-5.1.1\lib\ext下,然后重启jmeter即可

然后重启jmeter即可

fastjson解析json字符串

百度搜索结果(略)

至此,5种方式都准确的获取到了需要关联的值。

================================= 华丽分割线 ================================ 
> > > > > > 微信公众号:qzcsbj 
> > > > > > 更多测试干货: https://www.cnblogs.com/uncleyong/p/10530261.html 
> > > > > > 声明:部分图片等摘自网络,如有侵权,请联系删除。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值