当 Postman 中的测试失败时如何在控制台上获得预期和实际结果

How to get expected and actual result on console when a test fails in Postman

我正在尝试使用 postman 测试脚本来测试 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);
});

Postman Sandbox API reference 中,您有一个期望来自服务器的状态 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');
    });
});

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

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