Postman接口测试中请求和响应的参数传递

问题:使用Postman测试接口,获取请求或者响应中的某个字段,并传递给另一个接口请求的参数
思路
1.获取接口请求或者响应中的字段
2.将获取的字段保存为Postman中的环境变量或者全局变量
3.在另一个接口中使用变量

前言
1.Postman沙箱是一个JavaScript执行环境,沙箱中还可以使用许多NodeJS模块。也就是说,在Tests中用的是js语法写的测试脚本,调试过程中使用console.log()打印。
2.Postman的控制台查看调试信息,通过View→Show Postman Console(CTRL + ALT + C)打开,或者通过界面左下角的图标按钮打开。
3.参考资料为Postman官方文档:《Postman Sandbox》、《Postman Sandbox API reference》

解决

1.1使用responseBody获取接口响应中的字段

举例:获取https://postman-echo.com/get接口响应中的url值

var res_str=responseBody//responseBody是包含原始响应正文文本的字符串
var res_json=JSON.parse(res_str)//用JSON.parse()把字符串转为json
var data=res_json.url

Postman接口测试中请求和响应的参数传递_第1张图片

1.2获取接口请求中的字段

1.2.1使用request.data获取Post请求(form-data)中的字段

举例:获取https://postman-echo.com/post接口请求中,表单key为method对应的值

var res_dat=request.data//request表示请求对象,request.data是请求的表单数据字典
console.log(res_dat.method)//获取请求表单数据中键为method对应的value值

Postman接口测试中请求和响应的参数传递_第2张图片

1.2.2request.data获取Post请求(json)中的字段

var res_data=request.data//request表示请求对象,因为是josn的方式request.data是请求内容字符串
var res_json=JSON.parse(res_data)//将字符串转换为json对象
console.log(res_json.method)

Postman接口测试中请求和响应的参数传递_第3张图片

1.2.3使用request.url获取Get请求(params)中的字段

举例:获取https://postman-echo.com/get?test=postman接口请求中,参数test对应的值

const querystring = require('querystring');//require(moduleName)使用沙盒内置库模块,querystring模块可以解析和格式化URL查询字符串
var url=request.url;//获取请求对象中的url
var str=url.split("?")[1];//使用split()把字符串分割成字符串数组
console.log(querystring.parse(str).test);//querystring.parse()将URL查询字符串解析为键和值对的集合

Postman接口测试中请求和响应的参数传递_第4张图片

2.将字段保存为变量

postman窗口右侧就自带了一些代码片段,点击相应的代码片段修改后就可以使用。

2.1保存为环境变量
环境变量:存在于当前的环境中,也只能在当前环境中使用

pm.environment.set("variable_key", "variable_value");

Postman接口测试中请求和响应的参数传递_第5张图片
2.2保存为全局变量
全局变量:全局都可以使用

pm.globals.set("variable_key", "variable_value");

Postman接口测试中请求和响应的参数传递_第6张图片

3.使用变量请求接口

Postman接口测试中请求和响应的参数传递_第7张图片

使用pm对象获取请求或响应中的字段

pm对象包含与正在执行的脚本有关的所有信息
1.使用pm.response获取接口响应中的字段
接口:https://postman-echo.com/get?test=postman

var re=pm.response.json()
console.log(re.url)

2.使用pm.request.body获取Post请求(form-data)中的字段
接口:https://postman-echo.com/post
表单:method:POST

var str=pm.request.body.formdata
console.log(str.get('method'))

3.使用pm.requestt.body.raw获取Post请求(json)中的字段
接口:https://postman-echo.com/post
body:{“method”: “POST”}

var re=JSON.parse(pm.request.body.raw)
console.log(re.method)

4.使用pm.request.url获取Get请求(params)中的字段
接口:https://postman-echo.com/get?test=postman

var re=pm.request.url.query
console.log(re.get('test'))

获取字段总结:

  • request.url{string} -请求的网址
  • request.data {object} -这是请求的表单数据字典,若是raw则为String
  • responseBody {string} -包含原始响应正文文本的字符串
  • pm.request.url.query 请求地址中的参数,用get()可以获取key对应的value
  • pm.request.body 请求内容
  • pm.response.json() 响应转变为json对象

个人总结:

1.学会查看官方提供的文档解决问题
2.了解JavaScript和Node.js
3.学会用控制台查看用console.log()打印的调试信息

你可能感兴趣的:(软件测试,Postman,参数传递)