如何解决在邮递员测试中,当输入参数可以为空时,如何使用多个值之一来断定响应值?
我有一个名为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 举报,一经查实,本站将立刻删除。