首页 > 解决方案 > API 自动化 - 条件测试

问题描述

在您阅读之前,我完全是菜鸟,对此感到抱歉。

我有一些端点会根据调用该端点的次数返回不同的状态。它将返回带有一些额外信息的状态 200 或 409。对于后一种情况,它将返回如下内容:

{
    "error": {
        "code": "ABC",
        "message": "ABC",
        "target": null,
        "innerError": null,
        "details": null
    }
}

如果状态等于 200 或者如果状态为 409 并带有“消息”:“ABC”,我希望测试通过。

我一直在以不同的方式尝试它,但我坚持下去。我最近的尝试是这样的:

pm.test("Status is 200 or ABC", function () {
    if(pm.response.code !== 200)
    {
    var jsonData = pm.response.json();
    var expectedObject = {
    "message": "ABC"

    }
    }
    else
    {
        (pm.response.to.have.status(200))
        console.log("Success")
    }
});

即使状态不是 200 并且正文不包含“消息”:“ABC”,它也会通过此测试。

关于我该怎么做的任何想法?

标签: javascriptapiconditional-statementspostman

解决方案


您必须进行某种类型的检查才能使测试通过/失败。条件应该是这样的:

var jsonData = pm.response.json();
// expecting that jsonData.message will be equal to "ABC"
pm.expect(jsonData.message).to.eql("ABC")

如有疑问,请查看文档


推荐阅读