邮递员pm.response.to.have.header没有按预期工作

时间:2018-06-01 15:10:37

标签: automated-tests postman

第1部分

Postman的测试示例包括此测试以查看是否存在标题:

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

我的回复标题包含:

Content-Type →application/json

我希望上面的测试能够通过,但它失败了。为什么? 它说:

FAIL  Content-Type is present | AssertionError: expected response to not have header with key 'Content-Type'

此外,由于上述测试失败,那么我希望这个负面测试能够成功,但它也失败了:

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

它说:

FAIL  Content-Type is present | AssertionError: expected response to not have header with key 'Content-Type'

请注意,这是上面的EXACT SAME错误消息。他们都说"预期的回应没有"这对我来说似乎不对。

第2部分

只是为了让整个体验更加混乱,测试 键和值 字符串是有效的。我是否误解了#34; have.header"?

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type →application/json");
});

它返回:

PASS  Content-Type is present

然而,对此 的负面测试也是通行证!

pm.test("Content-Type is present", function () {
    pm.response.to.not.have.header("Content-Type →application/json");
});

它返回:

PASS  Content-Type is present

第3部分

帮助?!

2 个答案:

答案 0 :(得分:0)

我的问题似乎与此错误有关:

https://github.com/postmanlabs/postman-app-support/issues/3690

" pm.response.to.not.be导致后来的断言向后工作。"

答案 1 :(得分:0)

您现在可能已经可以使用此功能了,但是无论如何,这对我有用:

pm.test("Content Type is present", function () {
    pm.expect(pm.response).to.have.header("Content-Type");
})