1、需求来源
日常生产开发过程中,有时我们会使用Postman对需要的接口进行测试联调,此时往往会伴随:请求登录接口 --> 登录完成返回token --> 其他接口请求头中设置token 这些业务流程,此时若是只有两个接口测试,C V方式还算能接受,但是当接口多了后就会发现,每次都复制粘贴十分繁琐并且效率低下,此时就会想有没有一种方法解决这个问题。
2、解决方案
原理:利用 JMeter(正则表达式取值),JSON 提取响应数据。
细节说明:Postman支持接口断言并设置全局属性的功能,因此我们就是利用的这点。
实际运用场景:上一个接口的返回值如何作为下一个接口的参数
例如:获取微信接口的授权token,后将token设置到请求头中获取用户的openid
- 上一个接口获取数据在Tests(断言)中取值设置全局变量。
//responseBod返回的值
//JSON.parse把返回的值转化成一个jOSN格式的数据,保存到value这个变量中
var value = JSON.parse(responseBody)
//把取得的token值保存到全局变量的access_token变量中。
pm.globals.set("access_token", value.access_token);
- 下一个接口通过
{{access_token}}
取值。
实际案例:获取登录成功响应的 Authorization,然后设置到其他接口的请求头中
// 1、登录接口:http://127.0.0.1:8090/login/apitoken
// 获取登录成功响应的 Authorization
var value = JSON.parse(responseBody)
//把取得的token值保存到全局变量的Authorization变量中。
pm.globals.set("Authorization", value.Authorization);
// 2、获取列表
// 请求头设置为:key=Authorization,value={{Authorization}}
// 此时即可避免手动赋值这个请求头
图示1(登录接口断言设置全局属性)
图示2(其他接口请求头添加Authorization属性)
注意:
此演示案例 Postman 版本为:
-- Postman for Windows
-- Version 8.5.1
-- win32 10.0.19042 / x64
以上就是 postman 接口响应数据他用指导步骤说明。