Jmeter请求1的返回结果,作为请求2的参数
有时候多个请求是层级关系,即第2个请求的参数,是第1个请求的返回结果。对于jmeter3,提供了JSON Extractor,可以提取相应的返回值。jmeter2则无此功能,需要单独下载插件https://jmeter-plugins.org/wiki/JSONPathExtractor/
例如需求如下:
1. code生成:
http://xx/oauth/test/code
返回结果:{"code":"ryAoo-74qDViz7JdPJnZdbjCU1FQ4qHsj2HNwZhRKbNmQBM4UtdMETryCyZmWtdv2vtl-RHVE3E"}
2.根据code获取access_token
http://xx/oauth/access_token
Post json: {"client_id":"01234567","client_secret":"0123456789012345","code":"第一步的code","grant_type":"authorization_code"}
返回结果:{"access_token":"xxxxxxxxxxxxxx"}
3.根据获取用户信息
http://xx/oauth/api/userinfo
Post json:{"access_token":"xxxxxxxxxxxxxx"}
返回结果:{"mobile":"137xxxxxx", "nickname":"test..x"}
测试思路:
1.配置线程组--事务控制器--简单控制器--http请求,获得登陆code
http请求:https://XXX/oauth/test/code
事务控制器,选择父节点,方便树形结果分类查看
2.添加后置处理器--JSON Extractor
注:
Variable names : 名称
JSONPath Expression:JSON表达式
Match Numbers:匹配哪个,可为空即默认第一个
Default Value:未取到值的时候默认值
3.设置请求2,把请求1的返回结果作为请求2 的参数
https://xx/oauth/access_token?client_id=01234567&client_secret=0123456789012345&code=${code}&grant_type=auth_code
采用post方式
常见问题:
http://www.cnblogs.com/luihengk/p/7000486.html