如果我们想将一个请求的结果,作为下一个请求的参数,这时就要用到JMeter的“正则表达式提取器”
比如:用户登录一个系统,获取一个登录凭证(在此文中也就是access_token的值),之后请求其他资源的时候需要带上这个值,系统才识别是合法的用户。
我们想获取下面这个json字符串中access_token的值,即f05199db-de84-42b0-96bd-ebca9296e23b。
{"meta":{"message":"成功","code":1},"data":{"access_token":"f05199db-de84-42b0-96bd-ebca9296e23b","token_type":"bearer","expires_in":37766,"scope":"read"}}
1.右键点击刚才的HTTP请求,添加—后置处理器—正则表达式提取器
2.正则表达式提取器界面的编辑
名称:可随意取一个
引用名称:是下个请求引用的变量名,注意需要一致
正则表达式:" access_token ":"(.*?)" 或 " access_token ":"([^"]*)且已验证正确,这里填第一个
模板:使用提取到的第几个值。因为可能有多个值匹配,所以要使用模板。从 1 开始匹配,依次类推。$1$代表只有一组数据,这里只有一个,所以填 $1$
匹配数字:表示如何取值。0 代表随机取值,1 代表全部取值。这里只有一个,填 1 即可
缺省值:表示参数没有取到值的话,默认给它的值。一般不填。此处随意填写个abc
3.添加下一个请求
新添加一个HTTP请求,右键点击—添加—Sampler—HTTP请求
点击下方的添加按钮,添加同请求一起发送的参数
名称access_token值为${access_token}
其余参数按需要进行填写
4. 右键点击,添加—监听器—查看结果树
5.准备工作完成后,点击绿色箭头按钮,启动运行
6.运行完成后,查看结果树
登录后得到access_token的值:
在下一个请求使用前面获取到的access_token的值:
验证通过