在接口测试中,很多都需要依赖前一个请求的响应数据放到后一个请求的请求数据中来,在Jmeter中提供了正则表达式提取器来提取响应数据中的片段
本次使用的实例是微信公众号的客服发消息,在这个接口中,需要用到access_token接口返回的token数据作为入参,相关接口文档如下:
获取 access_token
获取用户列表
获取 access_token接口:
https请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
入参:
grant_type : 获取access_token填写client_credential appid : 第三方用户唯一凭证
secret : 第三方用户唯一凭证密钥,即appsecret
获取用户列表接口:
http请求方式: GET(请使用https协议)
https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID
入参:
access_token: 调用接口凭证 next_openid: 第一个拉取的OPENID,不填默认从头开始拉取
步骤如下:
1.在前一个请求中添加正则表达式提取器
右键HTTP请求=》添加=》后置处理器=》正则表达式提取器
2.编写正则表达式
运行一次,在"查看结果树"中,设置响应数据为"RegExp Tester",复制右边的,作为下一个请求的入参的文本,注意要在左右多复制一些作为左右边界,
复制后获取的文本放入下面的“Regular expression”中,然后把需要提取的部分替换成(.+?)或者(.*?),点击“send”
【() 括起来的部分就是需要提取的,对于你要提的内容需要用小括号括起来】
【. 点号表示匹配任何字符串】
【+ 一次或多次】
【? 在找到第一个匹配项后停止】
出现的结果有两个,match[1][0]和match[1][1],从结果来看,我们需要的是match[1][1]
把Regular expression中的文本复制下来。
我们回到正则表达式提取器中,粘贴到“正则表达式”中
之后给正则表达式取个名,这里我用的是“token”
填写模板号
1
1
1
匹配数字“1”
这里的模板号指的是上面的match[1][1]中的第2个1
匹配数字表示match[1][1]中的第1个1
使用正则表达式
使用正则表达式时,正常参数化引用即可
参数名,这里是
{参数名},这里是
参数名,这里是{token}
查看结果树
从结果来看,引用成功
(非作者允许,严禁转载)
作者联系方式: