前几天在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取样器
设置返回内容
搜索的关键字是上一个请求返回的name值
打印获取到的name的值
调试的取样器
方法一:正则表达式提取器
正则.*?,参考:https://www.cnblogs.com/UncleYong/p/10779268.html
关联获取到的值
百度搜索结果
方法二: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.1libext下,然后重启jmeter即可
然后重启jmeter即可
fastjson解析json字符串
百度搜索结果(略)
至此,5种方式都准确的获取到了需要关联的值。