在探索 API 测试自动化环墁下,Postman 脚本显现其强大功能和灵活性,它不仅仅是 API 测试的工具,更是一个综合性的自动化平台。
Postman 脚本简介
Postman 允许用户在 API 请求生命周期中运行 JavaScript 脚本,这些脚本分为以下三类:
- 预请求脚本(Pre-request Script) :发送请求前执行,常用于配置环境和预处理数据。
- 测试脚本(Tests) :在响应到达后执行,用来校验响应的数据和状态码。
- 集合脚本(Collection Scripts) :在整个请求集合的开始和结束时执行,用于设置和清理测试环境。
这些脚本能够与 Postman 的环境和全局变量进行交互,增加了测试的自动化、数据驱动性和请求的动态性。
编写 Postman 脚本的技巧
环境变量的设定与使用
环境变量的使用可以在不同环境间重复使用相同的请求。以下代码片段展示如何在脚本中设置和调用环境变量:
// 设置环境变量
pm.environment.set("userToken", "abcde12345");
// 调用环境变量
let userToken = pm.environment.get("userToken");
console.log(userToken);
示例:预请求脚本
在 API 请求发送之前,可以使用预请求脚本进行必要的数据处理或生成认证令牌:
// 生成一个认证令牌,并将其加入请求头中
var jwt = require('jsonwebtoken');
var payload = {"userId": "user123"};
var secret = "secretkey_example";
var token = jwt.sign(payload, secret);
pm.request.headers.add({key: "Authorization", value: "Bearer " + token});
示例:测试脚本
测试脚本用于检验 API 响应,确保它满足预设的条件:
// 检查响应状态码和响应体
pm.test("Status code is 200 and the username is correct", function () {
pm.response.to.have.status(200);
var jsonData = pm.response.json();
pm.expect(jsonData.user).to.eql("JohnDoe");
});
高级应用场景
数据驱动测试
借助外部数据文件(CSV 或 JSON 格式),可以实现数据驱动测试:
// 从CSV文件读取数据驱动测试案例
let userData = pm.iterationData.get("userData");
pm.sendRequest({
url: 'https://api.example.com/user',
method: 'GET',
header: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + userData.token
}
}, function (error, response) {
pm.test("Test User Data", function () {
pm.expect(response).to.have.status(200);
var data = response.json();
pm.expect(data.id).to.eql(userData.id);
});
});
动态请求和逻辑处理
通过控制流语句,脚本可以根据条件执行不同的逻辑路径:
// 根据不同的响应状态码进行不同操作
if (pm.response.code === 200) {
console.log("Operation successful");
} else {
console.error("Operation failed with status: " + pm.response.code);
}
使用 Apifox 轻松构建脚本
将 API 导入 Apifox 进行修改
将 API 导入到 Apifox 中,迈出完善 API 的第一步。 Apifox 支持各种 API 文件类型,包括 OpenAPI(Swagger)、Postman 和 Insomnia 等 20 多种。
点击「项目设置 - 导入数据」,选择你需要的类型,拖入文件或者填写 URL 即可,非常简单。
在 Apifox 中添加自定义脚本
完成 API 导入或在 Apifox 上创建新项目后,你可以继续添加自定义脚本。
在 API 的修改文档部分,找到「后置操作」。选择添加「自定义脚本」,可以在此处为 API 请求实施自定义脚本,还可以选择右侧的“代码片段”选项选择自己需要的代码一键套用。
总结
利用 Postman 脚本,用户可以构建深度自定义的测试场景,不仅提升 API 开发与测试的效率,更加确保结果的准确性。