Postman 使用 Javascript 编写测试脚本,它运行在 Node.js 之上,因此也继承了 Node.js 强大的编程能力,可以动态灵活的处理请求和测试集的事物。例如可以在测试脚本中包含动态参数,在不同的请求之间传递数据。
Postman 脚本编程
Postman 使用 Javascript 编写测试脚本,它运行在 Node.js 之上,因此也继承了 Node.js 强大的编程能力,可以动态灵活的处理请求和测试集的事物。例如可以在测试脚本中包含动态参数,在不同的请求之间传递数据。
- 在请求发送服务器之前,在前置栏中可以编写前置脚本处理前置信息。
- 在测试脚本栏中可以编写处理服务器响应结果的处理脚本,例如对比响应结果进行测试。
请求、文件夹、测试集中都可以在前置请求脚本、测试脚本栏上编写对请求、文件夹、测试集中编写前置请求脚本和测试脚本。
测试集设置前置处理脚本和测试脚本
- 设置前置处理脚本
选择测试集中的请求,然后点击 "Pre-script Request" 标签栏,可以在前置脚本栏中编写前置处理脚本,例如获取环境变量中的 “Token”。
- 设置测试脚本
选择测试集中的请求,然后点击 “Test” 标签栏,在 “Test" 标签栏的文本框中可以输入处理服务器响应结果的脚本。例如验证服务器是否正常工作。
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
脚本的执行顺序
Postman 中请求脚本的执行顺序如下。
- 在请求发送之前,首先执行前置脚本(Pre-Requets),然后发送请求给地址栏中的接口地址。
-
收到接口返回的响应后,执行测试(Test)栏中的脚本。
Postman 中集合脚本按照下面的顺序执行。
- 集合中每一个请求发送前,先执行测试集合所属的前置请求脚本。
- 文件夹中每一个请求发送前,先执行文件夹所属的前置请求脚本。
- Postman 收到接口返回的响应后,执行所属测试集的测试脚本。
- 测试集的测试脚本执行后,执行请求所属文件夹的测试脚本。
-
测试集的测试脚本和所属文件夹的测试脚本执行后执行请求的测试脚本。
对于发出的请求,Postman 执行脚本的顺序是 测试集所属脚本、文件夹所属脚本 、请求所属脚本、对于前置脚本和测试脚本都遵循这个顺序。
- 选择测试集(Collection),右键点击 "编辑(edit)", 打开测试集编辑窗口,点击 “前置请求脚本(Pre-request Scripts)”。
在测试集的 **前置请求脚本(Pre-request Scripts) **中填写如下脚本,在控制台输出测试集前置请求脚本的运行日志:
console.log("Postman in Action 测试集:前置请求脚本");
在测试集的测试(Tests)栏填写如下脚本,在控制台输出测试集测试脚本的运行日志:
console.log("Postman in Action 测试集:测试脚本");
- 右键选择文件夹(Folder),右键点击 "编辑(edit)", 打开文件夹编辑窗口,点击 “前置请求脚本(Pre-request Scripts)”。
在文件夹的 前置请求脚本(Pre-request Scripts) 栏中填入如下脚本,在控制台输出文件夹前置脚本的运行日志:
console.log("文件夹:前置请求脚本");
在文件夹的 测试脚本(Tests) 栏中填入如下脚本,在控制台输出文件夹测试脚本的运行日志:
console.log("文件夹: 测试脚本");
- 在文件夹 ScriptDemo 中创建 2 个请求,名称分别为 “验证请求001”、“验证请求002”。
验证请求001的 前置请求脚本(Pre-request Scripts) 栏中,填入如下脚本,在控制台输出 “验证请求001” 的 前置请求脚本 运行日志:
console.log("验证请求001:前置请求脚本");
验证请求001的 测试脚本(Tests)中,填入如下脚本,在控制台输出 “验证请求001” 的 测试脚本 运行日志:
console.log("验证请求001:测试脚本");
验证请求002的 前置请求脚本(Pre-request Scripts) 栏中,填入如下脚本,在控制台输出 “验证请求001” 的 前置请求脚本 运行日志:
console.log("验证请求002:前置请求脚本");
验证请求002的 测试脚本(Tests)中,填入如下脚本,在控制台输出 “验证请求001” 的 测试脚本 运行日志:
console.log("验证请求002:测试脚本");
打开 Postman Console , 然后运行测试集,查看控制台 Console 中的运行日志。运行日志如下:
Postman in Action 测试集:前置请求脚本 16:30:04.648
文件夹:前置请求脚本 16:30:04.677
验证请求001:前置请求脚本 16:30:04.683
GET http://qatools.cn 16:30:04.710
Postman in Action 测试集:测试脚本 16:30:06.302
文件夹: 测试脚本 16:30:06.315
验证请求001:测试脚本 16:30:06.318
Postman in Action 测试集:前置请求脚本 16:30:06.330
文件夹:前置请求脚本 16:30:06.334
验证请求002:前置请求脚本 16:30:06.338
GET http://toolsqa.cn 16:30:06.391
Postman in Action 测试集:测试脚本 16:30:06.537
文件夹: 测试脚本 16:30:06.542
验证请求002:测试脚本 16:30:06.549