在邮递员测试中,当输入参数可以为空时,如何使用多个值之一断言响应值?
In postman tests, how can i assert the response values with one of multiple values when the input parameter can be empty?
我有一个名为 IsFruit 的输入参数,它可以是 0 或 1。如果值为 0,则响应应 return 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 条件。显然问题是因为空值。所以我这样处理
if (isFruit == "") { isFruit = "empty"
然后我稍后在条件检查中使用了它
if (isFruit == "empty") { pm.expect(FruitYN).to.be.oneOf(["Y", "N"]); }
我有一个名为 IsFruit 的输入参数,它可以是 0 或 1。如果值为 0,则响应应 return 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 条件。显然问题是因为空值。所以我这样处理
if (isFruit == "") { isFruit = "empty"
然后我稍后在条件检查中使用了它
if (isFruit == "empty") { pm.expect(FruitYN).to.be.oneOf(["Y", "N"]); }