在Ubuntu中使用Postman脚本主要涉及到**前置脚本(Pre-request Script)和测试脚本(Tests Script)**的使用。这些脚本可以帮助你在发送请求之前动态生成测试数据,以及在请求完成后进行验证。以下是详细步骤和示例:
前置脚本在发送请求之前执行,通常用于生成动态数据。例如,你可以使用JavaScript生成随机字符串、随机整数或时间戳,并将它们设置为环境变量或全局变量。
// 生成10位随机字符串(字母+数字)
pm.environment.set("randomStr", Math.random().toString(36).substr(2, 10));
// 生成10位随机整数
pm.environment.set("randomNum", Math.floor(Math.random() * 1e10));
// 生成32位纯数字随机数
function generate32BitRandom() {
let randomStr = '';
for (let i = 0; i < 32; i++) {
randomStr += Math.floor(Math.random() * 10);
}
return randomStr;
}
pm.environment.set("randomNum32", generate32BitRandom());
// 生成10位时间戳(秒级)
pm.globals.set("timestamp", Math.floor(Date.now() / 1000).toString());
测试脚本在请求完成后执行,通常用于验证响应数据。你可以使用console.log()
输出变量值,并进行断言验证。
// 打印变量值用于调试
console.log("\nTests 变量验证:");
console.log("randomStr =", pm.environment.get("randomStr"));
console.log("randomNum =", pm.environment.get("randomNum"));
console.log("timestamp =", pm.globals.get("timestamp"));
// 基础断言
pm.test("randomStr格式验证", () => {
const str = pm.environment.get("randomStr");
pm.expect(str).to.have.length(10);
pm.expect(str).to.match(/^[a-z0-9]+$/i);
});
pm.test("时间戳有效性验证", () => {
const ts = pm.globals.get("timestamp");
pm.expect(ts).to.have.length(10);
pm.expect(Number(ts)).to.be.a("number");
});
// 响应验证示例(假设接口返回请求参数)
pm.test("响应包含随机参数", () => {
const response = pm.response.json();
pm.expect(response.request_id).to.equal(pm.environment.get("randomStr"));
pm.expect(response.timestamp).to.equal(pm.globals.get("timestamp"));
});
通过合理使用Postman的前置脚本和测试脚本,可以显著提升接口测试的自动化水平和测试质量。在实际应用中,建议结合具体业务场景进行扩展,形成标准化的测试数据生成体系。