Postman编写自动化测试脚本常用方法

Postman 支持在两处地方写脚本,分别是“Pre-request Script”、“Tests”,前者的脚本在调用接口前执行,后者在调用接口获得响应后执行。

Postman 的脚本语言就是JS(JavaScript),除了支持 JS 的语法和常用方法以外(例如:JSON.stringify()console.log()),它还提供了自己的方法。

下面举例用的 Postman 版本是 7.36.5。

设置变量

例如,需要将请求中某个参数值通过一个外部变量设置进去。

无论参数是在 URL 中,还是在 URL 中的?后面,还是 JSON 格式报文中,要将一个参数值通过变量传递,都是用双花括号来声明:

1
2
3
4
5
6
7
8
{
"paramA":"xxxxx",
"paramB":{{paramB}}
}

http://localhost:8080/{{paramB}}

http://localhost:8080/test?paramB={{paramB}}

设置这个变量的值的方法,通过 Postman 提供的方法直接设置:

1
2
pm.environment.set("paramB", 参数值) // 设置环境变量
pm.globals.set("paramB", 参数值) // 设置全局变量

环境变量、全局变量的区别:

自动化测试,一般是将多个请求在一个 Collection 中排列好,按照顺序执行。在 Postman 中要执行这个 Collection 时,选中 Collection,点击“Run”按钮,会弹出一个“Collection Runner”框,里面允许你选择一个“Environment”,这个选择的“Environment”指的是本次测试中该 Collection 所有请求执行的环境,当然也可以不选,若有选择,那么可以使用已经在这个环境中定义的变量值。环境变量就是该变量值只会添加到这个所选的环境中,且该变量值只能从这个环境中取,不会从其他环境中取。

全局变量则是不区分环境,在所有环境下执行的 Collection 都可以使用全局变量,也可以添加全局变量。若环境变量中有与全局变量重名的变量,则以环境变量中的为准。

通过设置环境变量、全局变量,可以实现接口之间参数的传递,即上一个请求成功后取得的参数设置到变量中,下一个请求直接获取。

获取响应参数

1
2
3
4
5
6
var resonseData = pm.resonse.json(); // 返回JS对象,后续就用处理JS对象的方法它即可

// 例如
var resultCode = resonseData.resultCode;
var resultMsg = resonseData.resultMsg;
var data = resonseData.data; // 若data本身也是对象,则这里返回的也是JS对象类型

设置下一步请求

若需要判断在某个条件下,直接执行某个调用请求,而不是继续按照 Collection 中排列好的顺序执行下一个请求,则用 Postman 提供的方法直接设置:

1
poatman.setNextRequest(xxxx) // 括号里填写请求名字,支持中文,请求本身不允许重名

若要设置直接结束,不再继续,则设置poatman.setNextRequest(null)即可。

断言测试

Postman 使用下面这种格式进行断言测试:

1
2
3
pm.test("断言名", function () {  
// 判断条件
});

判断条件有以下几种:

1
2
3
4
5
6
7
8
pm.response.to.have.status(200); //判断响应状态码=200

pm.response.to.have.header("Content-Type"); //判断响应头存在"Content-Type"

var jsonData = pm.response.json();// 判断响应参数中的响应码为成功
pm.expect(jsonData.resultCode).to.eql("00000000");

pm.expect(pm.response.responseTime).to.be.below(200); //判断响应时间<200ms

用不同请求参数循环调用接口

例如,需要用不同的 userId 调用这个 URL 查看每个 userId 的响应: http://localhost:8080/test?userId=

  1. 将这个接口单独添加到一个 Collection 中
  2. 将用于入参的 userId 值保存为一个 csv 文件,文件内容为:
    1
    2
    3
    userId
    "123"
    "456"
  3. 选中 Collection,点击“Run”按钮,会弹出一个“Collection Runner”框,框中有一个“Select File”按钮,点击后选择这个csv文件,可以预览将要用于入参的所有 userId 值
  4. 点击“Run”,Postman 就会用每个 userId 值调用 URL,可以在这个URL的“Tests”中写打印响应参数的脚本,查看不同入参下不同的响应参数