codecamp

Postman 使用监视器运行测试

Postman 监视器提供了一种自动运行测试脚本并定期执行其他测试的方法。设置基于集合的监视器时,您可以选择一个包含要运行的请求和测试脚本的集合,并指定 Postman 运行该集合的频率。如果测试失败,您将收到通知,并且所有结果都记录在监视器的仪表板上

以下是您可以使用基于集合的监视器来测试 API 并确保它们正常运行的一些方法。

有关正在运行的监视器的示例,请访问Postman API 监视示例公共工作区以查找一些常见监视用例的示例集合。您可以通过创建分支来协作处理工作区中的集合,或者通过将集合导出和导入到团队工作区来修改集合以供团队使用。

监控 API 端点

要监视特定端点,请创建一个集合,其中包含不同请求中同一端点的不同变体。这里的想法是测试每个变体的响应,以便完全覆盖端点。要了解有关测试请求的更多信息,请参阅编写测试

监控整个 API

这在监视特定端点的方法上类似,但在将公共 API 主机存储在环境变量中存在细微差别,因此跨不同 API 端点的请求在其路径和其他请求参数中有所不同。这样的顺序也使得跨请求链接数据成为可能,这允许将整个 API 作为一个整体进行测试。

运行 API 测试

在各种端点相互关联的 API 中,准确了解它们的功能至关重要。在数据从一个请求传递到另一个请求的情况下,可以将整个响应或响应的一部分保存为环境变量。设置非原子值(如对象和数组)时要格外注意,因为原始值将会丢失。相反,这种复杂的对象和数组可以按如下方式处理:

// set the value
postman.setEnvironmentVariable('complexObj', JSON.stringify(myComplexObjOrArray, null, 2));

// Fetch the value
var foo;
try {
    foo = JSON.parse(postman.getEnvironmentVariable('complexObj'));
}
catch (e) {
    console.error(e);
    foo = { __parseError: true };
}
if (foo.__parseError) {
    // handle parse errors here
}

使用适当的字符串化嵌套值,它可以传递给后续请求,例如,作为请求主体。

监控 HTTP 响应代码

responseCode.code可以通过检查测试脚本内部的值来完成响应代码测试。

tests['Request resulted in 200 OK'] = responseCode.code === 200;

监控延迟

作为请求超时的替代方法,可以通过比较测试脚本中的变量值来监控网站响应延迟responseTime。

tests['Response latency is acceptable'] = responseTime < 1000;
// responseTime is in milliseconds


Postman 编写测试
Postman 测试脚本示例
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }