微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在邮递员测试中,当输入参数可以为空时,如何使用多个值之一来断定响应值?

如何解决在邮递员测试中,当输入参数可以为空时,如何使用多个值之一来断定响应值?

我有一个名为IsFruit的输入参数,该参数可以为0或1。如果值为0,则响应应返回FruitsYN值为N的水果。类似地,如果值为1,FruitsYN应当为Y。没有值,响应可以为FruitsYN Y或N。这是我编写的代码,但是虽然某些情况通过了,但其他情况却失败了。当输入中的值为空时,我打印了IsFruit。看起来像∅

var requestData = JSON.parse(request.data);
var responseData = JSON.parse(responseBody);
var IsFruit=requestData.IsFruit;// IsFruit can be either 0,1 or empty
pm.test("Status code is 200",function () {
    pm.response.to.have.status(200);
    pm.test("Check if Fruits found with this search criteria",function() {
        pm.expect(responseData.Message).to.not.eql("No Fruits found with this search criteria");

        var list = (responseData.Fruits).length;
        //console.log(list);
        var a = [];
        
        for (var i = 0; i < list; i++) {
            var counter = responseData.Fruits[i];
            FruitsYN = counter.FruitsYN
            //console.log(FruitsYN);
            a.push(FruitsYN)
            pm.test("Check whether Fruit values in the Fruits returned is accurate based on fruit filter in the request",function() {

                if (IsFruit == 0) {

                    pm.expect(FruitsYN).to.eql("N")

                }
                if (IsFruit == 1) {
                    pm.expect(FruitsYN).to.eql("Y")
                }

                if (IsFruit =="") {
                    pm.expect(FruitsYN).to.be.oneOf(["Y","N"]);
                }
            });
        }
    });
});

解决方法

类似以大写字母开头的变量名在Postman中不起作用。

以下代码对我有用:

let requestData = {"IsFruit":""};
let isFruit=requestData.IsFruit;// IsFruit can be either 0,1 or empty

if (isFruit =="") {
    console.log("Empty string");
}

如果我使用IsFruit

,则无法正常工作 ,

我修复了它。 :)我刚刚添加了一个新的if条件。显然,此问题是由于null值引起的。所以我这样处理 if (isFruit == "") { isFruit = "empty" 然后我只是在条件检查中使用了这个 if (isFruit == "empty") { pm.expect(FruitYN).to.be.oneOf(["Y","N"]); }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。