邮差测试 - chai断言的问题

时间:2017-09-08 08:15:42

标签: postman chai

我遇到了邮递员测试功能的奇怪问题。

我曾经做过这样的测试:

tests["Status code is 200"] = responseCode.code === 200;

我需要自定义一下,所以我升级了它:

test_name = "[ "+ request.name + " ] - ";
tests[test_name + "Status code is 200"] = responseCode.code === 200;

这很有效。

我最近发现嵌入式代码段“状态代码:代码为200”会显示如下:

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

这是非常好的,特别是因为一些用户没有开发背景,所以我尝试了它并决定将它用于我的测试。 然后我回到原来需要定制的问题,所以我做了

pm.test(test_name + "Status code is 200", function () {
    pm.response.to.have.status(200);
});

这不起作用,但它不会引发错误:测试只是在“测试”标签中根本没有出现!

previousely我有测试(3/3),有3次PASS测试,现在我有测试(2/2)(至少我希望测试(2/3)测试失败或错误)

这可能是我的语法,所以我尝试了不同的方式:

test_assert = test_name + "Status code is 200" 

pm.test(test_assert, function () {
    pm.response.to.have.status(200);
});

这也不起作用。

确保我尝试的语法没有问题:

pm.test("[ Get all configuration - nominal ] - Status code is 200", function () {
    pm.response.to.have.status(200);
});   

哪个失败。有多少字符限制??? 为了检查目的,我试过

pm.test("[ Get all configuration - nominal ] - abcdefghijklmnopqrstuvwxyz0123456789", function () {

哪个有用 =>它不是一些字符限制,所以我尝试逐个字符地设置我自己的字符串。 它适用于

pm.test("[ Get all configuration - nominal ] - Status code is 20", function () {
    pm.response.to.have.status(200);
});

我最终得到了测试(3/3)

如果我添加最后一个“0”它不起作用?????测试(2/2)

我甚至尝试过:

pm.test("[ Get all configuration - nominal ] - Status code is 20 that's all", function () {
pm.response.to.have.status(200);
});

并且工作 :(

“测试”选项卡显示测试(3/3),我有我的指示:

PASS [获取所有配置 - 名义] - 状态代码为20全部

我是不是以某种方式进入了暮光之城?

我想明白......我有人有想法

1 个答案:

答案 0 :(得分:0)

我找到了一个真正的bug的解决方法

我尝试了更多测试:

  • 检查问题是否以数字结尾:

    pm.test("[ Get all configuration - nominal ] - Status code is 20 that's all0", function () {
    pm.response.to.have.status(200);
    

    });

=>它的工作原理

  • 检查它是否与代码200的位置相关联(我删除了“名义”的最后“l”):

    pm.test("[ Get all configuration - nomina ] - Status code is 200", function () {
    pm.response.to.have.status(200);
    });
    

=>它失败了

  • 从这个观察中我尝试在“200”之前插入一个或多个空格:

    pm.test("[ Get all configuration - nominal ] - Status code is   200", function () {
    pm.response.to.have.status(200);
    });
    

=>它的工作原理

无论“200”之前的空格数,“测试”标签中的显示如下:

PASS [获取所有配置 - 名义] - 状态代码为200

只有一个空格“是”和“200”

我认为测试标签中有一个棘手的错误。 这是一个真正的问题,因为在生产周期中,它可能会被忽视