Postman 测试中的 if 语句

Posted

技术标签:

【中文标题】Postman 测试中的 if 语句【英文标题】:If statement in Postman tests 【发布时间】:2019-01-15 13:19:34 【问题描述】:

我在 Postman 工作,我想构建这样的测试结构:

var login_status = pm.environment.get("LOGIN_STATUS");
var jsonData = pm.response.json();
pm.test("TESTS", function () 
    if (login_status === 1) 
        pm.expect...(test 1);
    else if (login_status === 2) 
                pm.expect...(test 2);
    else if (login_status === 3) 
                pm.expect...(test 3);

但它并不适合我。

在我的逻辑中,Postman 应该检查登录状态并根据 login_status 值仅使用一个 pm.expect...。

如何在 Postman 中使用 if 语句? 谢谢!

【问题讨论】:

什么不起作用?你能提供更多细节吗?它会抛出错误吗? 【参考方案1】:

您使用的比较运算符返回false,因为它正在检查相同的type,请尝试使用== 而不是===

存储在 Postman 环境文件中的值是 string,在测试中,您正在与 number 严格相等。

您也可以尝试将number 值更改为string 值,例如login_status === "1",或者使用严格的不等式,这样您使用的类型就无关紧要,例如login_status !== 2

当您从文件中获取值时,您甚至可以只使用 parseInt() 函数。

parseInt(pm.environment.get("LOGIN_STATUS"))

这完全取决于您和您想要构建支票的方式。

更多关于比较运算符的信息可以在这里找到: https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Operators/Comparison_Operators#Identity

【讨论】:

不客气。 :) 你想接受那个答案吗?

以上是关于Postman 测试中的 if 语句的主要内容,如果未能解决你的问题,请参考以下文章

postman测试实例--断言

postman——使用postman完成接口自动化测试

postman断言作用及怎么使用

Postman接口测试工具

Postman pm 对象 - 测试相关功能

postman中设置流程控制