在Postman里,所有的request请求都只能存放在collection集合目录或者集合目录下的子文件夹中
可以把一个collection当做一个项目工程
同一个项目的接口测试请求全部放在一起
批量执行接口请求(测试)的触发单位就是collection
导出功能只支持导出整个collection,无法导出单个请求或者一整个子文件夹的请求


导出: JSON格式的文件的好处就是可以跨平台,任何操作系统都支持和识别。我们在工作中,经常会遇到需要在不同的电脑或者操作系统上做接口测试,所以collection项目工程是需要迁移的,所以需要使用导出和导入功能。
导入:
设计普通的功能测试用例的时候,我们也是基于模块化划分的方式去管理测试用例的
利用Postman具有在Collection下创建Folder文件夹的特性来搭建和管理一套基于模块化划分的接口测试框架


手工接口测试

在请求区域(上半区)选择Params(默认),依次填写KEY和VALUE,DESCRIPTION可以选填


在Postman工具中,我们并不一定需要在Params区域里填写参数,可以直接利用GET请求的原理,直接在接口URL路径上拼接参数
根据接口的业务要求,由于只有管理员账号才可以获取成员列表,所以我们需要在请求头信息中设置Authorization参数,参数的值填写管理员账号登录后(通过接口调用的方式)的登录授权码(行业内也喜欢叫token令牌号)
比如上一个例子,获取成员列表信息需要在请求头中设置变量Authorization这是人工直接复制过来的,如果后期该值发生改变那么需要重写修改很麻烦。
把上游接口的返回结果的某些想要使用的值提取出来,然后存放在一个公共的区域,待下游接口需要用到的时候,直接去公共区域拿就可以了,这个在接口测试的领域里也有另一个专业术语,叫做“数据传递”。



使用编码技术来完成接口的数据参数传递的工作,在上下游接口请求的Tests里编写Java Script代码(莫慌,大多数代码可自动生成)来实现:
上游接口:
(1) 提取接口服务返回的响应内容里的参数的值
(2) 把提取到的值赋值给一个自定义的变量名称
(3) 把自定义的变量名称传递给公共环境或指定的私有环境
下游接口:
(4) 在参数填写或者在写JSON字符串时,引用变量名称

我们要写的第一句代码是“发送接口请求后,获取所有服务器返回的响应体内容(包含headers头部内容或者body身体内容)”,但是预置代码里没有非常合适的,所以我们只能人工写
// 获取响应体的所有body内容,赋值给变量jsonData
// var是Javascript语言中声明变量的语法关键字
// JSON是保留类,类里有一些方法是专门处理JSON字符串的
// responseBody是Postman的保留字,它就是响应报文里的所有body内容
// Javascript语言推荐每行代码结束后要加英文的";"分号
var jsonData = JSON.parse(responseBody);
// 获取响应体的Headers头信息中的内容,赋值给变量adminAuth,
// 关于变量名称,一般业务含义是什么,变量名称就取什么名字,
// 这里要提取的是头信息中的Authorization登录授权码
// postman是Postman的保留字,可以点出一些方法,但Postman工具内嵌的JS语言编译环境并不完善,
// 所以无法点出所有方法,有些被隐藏了,只能硬背或询问度娘
// getResponseHeader方法可以拿到所有的响应报文的headers头信息,
// 然后在方法名称后的括号中以字符串的形式填写指定的头信息里的参数,比如这里的Authorization
var adminAuth = postman.getResponseHeader("Authorization")
然后把adminAuth放到Postman的公共环境中,这个很方便,直接使用代码生成器即可,选择右侧的预置代码Set a global variable,然后改一下参数即可
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X3xeT2Jl-1655904082917)(Postman使用总结.assets/image-20220622211437579-165590367936418.png)]](https://1000bd.com/contentImg/2022/06/24/012019311.png)
Postman的原理是发送接口请求后,服务器会返回响应内容(显示在下半区Response中),然后会执行Tests脚本;所以通过上述的代码,我们实现了提取头信息的参数和其值,然后把值存放在公共环境中以变量进行管理,无论是公共环境还是私有环境,其实就是一个“数据的中转站”。

