1

我最近正在尝试使用邮递员测试脚本来测试 API。我发现具有挑战性的一件事是测试失败时的预期和实际测试结果。我应该如何实现它。我尝试使用 console.log 但如果测试用例失败则不会打印。如何为所有测试使用单一功能实现更通用的解决方案。

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
    console.log("TestCase: Status Code should be 200"+", 
        Expected: "+"Response code should be 200"+", Actual: "+pm.response.code);
});
4

2 回答 2

1

Postman Sandbox API 参考中,您有一个通用示例,用于从服务器期待状态 OK (200):

pm.sendRequest('https://postman-echo.com/get', (err, res) => {    
    if (err) {
        console.log(err);
    } 
    pm.test('response should be okay to process', () => { 
        pm.expect(err).to.equal(null);
        pm.expect(res).to.have.property('code', 200);
        pm.expect(res).to.have.property('status', 'OK');
    });
});
于 2018-08-08T10:43:31.890 回答
0

如果测试失败,该断言错误消息会自动推送到测试结果部分:

Status code is 200 | AssertionError: expected response to have status code 201 but got 200

您可以使用它,但它只会重复 Postman 在测试失败时告诉您的内容:

pm.test(`Status code is 200 - Actual Status Code: ${pm.response.code}`, () => {
    pm.response.to.have.status(200)
})

Status code is 200 - Actual Status Code: 404 | AssertionError: expected response to have status code 200 but got 404
于 2018-08-08T11:06:22.750 回答