Postman 邮递员测试-chai断言的问题

Postman 邮递员测试-chai断言的问题,postman,chai,Postman,Chai,我在postman测试函数中遇到了一个奇怪的问题 我曾经做过这样的测试: tests["Status code is 200"] = responseCode.code === 200; 我需要定制一点,所以我将其升级如下: test_name = "[ "+ request.name + " ] - "; tests[test_name + "Status code is 200"] = responseCode.code === 200; pm.test("Status code is

我在postman测试函数中遇到了一个奇怪的问题

我曾经做过这样的测试:

tests["Status code is 200"] = responseCode.code === 200;
我需要定制一点,所以我将其升级如下:

test_name = "[ "+ request.name + " ] - ";
tests[test_name + "Status code is 200"] = responseCode.code === 200;
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});
这很有效

我最近发现嵌入的代码片段“状态代码:代码是200”将显示如下:

test_name = "[ "+ request.name + " ] - ";
tests[test_name + "Status code is 200"] = responseCode.code === 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);
});
这不起作用,但不会引发错误:测试根本不会出现在“测试”选项卡中

以前我的测试(3/3)有3个通过的测试,现在我的测试(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),我有以下指示:

通过[获取所有配置-标称]-状态代码为20,仅此而已

不知何故,我是在进入暮色地带吗


我想了解…我有一个想法

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

我尝试了更多的测试:

  • 要检查问题是否以数字结尾,请执行以下操作:

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

=>它有效

  • 要检查其是否与代码200的位置相关联(我删除了“标称”的最后一个“l”):

=>它失败了

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

=>它有效

无论“200”前面的空格数是多少,测试选项卡中的显示如下所示:

通过[获取所有配置-标称]-状态代码为200

在“is”和“200”之间只有一个空格

我认为Tests选项卡有一个棘手的bug。
这是一个真正的问题,因为在一个生产周期中,它可能没有被注意到

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

我尝试了更多的测试:

  • 要检查问题是否以数字结尾,请执行以下操作:

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

=>它有效

  • 要检查其是否与代码200的位置相关联(我删除了“标称”的最后一个“l”):

=>它失败了

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

=>它有效

无论“200”前面的空格数是多少,测试选项卡中的显示如下所示:

通过[获取所有配置-标称]-状态代码为200

在“is”和“200”之间只有一个空格

我认为Tests选项卡有一个棘手的bug。 这是一个真正的问题,因为在生产周期中,它可能会被忽略