Postman在Linux中进行数据验证的完整流程与技巧
使用pm.response.to.have.status()或pm.test()结合responseCode.code,验证HTTP状态码是否符合预期(如200表示成功、404表示未找到):
// 方法1:使用pm.response.to
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
// 方法2:使用responseCode.code
pm.test("Status code is 200", function () {
pm.expect(pm.response.code).to.eql(200);
});
通过responseTime属性,验证接口响应时间是否在可接受范围内(如小于200ms):
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
responseBody.has()检查响应体是否包含特定字符串(如“success”);使用responseBody === "预期内容"进行精确匹配:// 检查是否包含字符串
tests["Response contains 'success'"] = responseBody.has("success");
// 精确匹配
tests["Response is 'success'"] = responseBody === "success";
pm.response.json()将响应体转换为JSON对象,再通过pm.expect()验证具体字段的值(如id、name):const jsonData = pm.response.json();
pm.test("ID is 123", function () {
pm.expect(jsonData.id).to.eql(123);
});
pm.test("Name is 'John'", function () {
pm.expect(jsonData.name).to.eql("John");
});
使用pm.setEnvironmentVariable()或pm.setGlobalVariable()存储动态数据(如接口返回的token),供后续请求复用:
// 设置环境变量
pm.setEnvironmentVariable("authToken", pm.response.json().token);
// 设置全局变量
pm.setGlobalVariable("authToken", pm.response.json().token);
若接口返回XML格式数据,使用xml2Json()将其转换为JSON对象,便于后续验证:
const jsonData = xml2Json(responseBody);
pm.test("XML converted to JSON successfully", function () {
pm.expect(jsonData.root.element).to.exist;
});
条件判断与循环
在测试脚本中使用if/else语句或循环,处理复杂验证逻辑(如根据状态码执行不同断言):
if (pm.response.code === 200) {
pm.test("Response has 'data' field", function () {
const jsonData = pm.response.json();
pm.expect(jsonData.data).to.exist;
});
} else {
pm.test("Error message exists", function () {
const jsonData = pm.response.json();
pm.expect(jsonData.message).to.exist;
});
}
日志记录
使用console.log()输出变量值或调试信息,帮助排查脚本问题(日志可在“Test Results”的“Console”标签中查看):
console.log("Response JSON:", pm.response.json());
console.log("Auth Token:", pm.environment.get("authToken"));
pm.expect()而非assert),避免脚本执行失败。