Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,本文主要介绍jmeter通过正则表达式提取器来实现接口关联的方式,可供参考。
一、实例场景:
有如下两个接口,通过正则表达式提取器,将第一个接口的城市代码,作为第二个请求的参数传入。
获取城市代码接口;
http://toy1.weather.com.cn/search?cityname=nanjing
根据城市代码获取天气接口:
http://www.weather.com.cn/data/cityinfo/101190101.html
二、操作实例具体步骤:
1)新建http请求,获取南京城市代码接口,添加察看结果树:
?2)运行后,察看结果树中,在响应数据中复制目标参数及前后的字符,尽量保证复制的字符串具有唯一性。
?3)添加正则表达式提取器,填写提取器相关参数:
参数说明:
引用名称:提取的参数名称,自定义,后续请求引用时使用。
正则表达式:获取响应结果的正则公式,常用(.+?)和(.*?),两者结果一致。
具体字符含义如下:
模板:-1全部,0 随机,对应上述正则表达式,若只有一个正则一般就填写$1$。
匹配数字:匹配结果作为一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,其他整数表示对应第几个值。
缺省值:匹配失败时取的默认值。
?4)添加获取城市天气请求,添加察看结果树,使用${citycode}替换101190101-->使用${xx}引用上述正则提取的参数
?5)察看结果树返回结果如下,接口返回中文出现乱码:
?6)Jmeter中针对上个实例中接口返回中文乱码的场景可以通过添加后置处理器:BeanShell PostProcessor解决,输入prev.setDataEncoding("utf-8"); 目的是修改响应数据编码格式为utf-8,保存。
?7)再次运行察看结果树结果如下:
?8)可以在线程组中添加调试取样器,通过取样器获取的请求返回值可以查看所有正则参数的取值。
?9)常见正则表达式操作符:
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!??