验证响应项是否为集合变量的示例,其中变量是postman中的数组

s71maibg  于 2022-11-23  发布在  Postman
关注(0)|答案(2)|浏览(163)

如何验证响应项是集合变量的示例,其中集合变量是postman中的数组?
首先,我从GET请求的响应中创建一个数组。

let arr = [];

for (item of response.books) {
    arr.push(item.isbn);
}
pm.collectionVariables.set("Books_ISBN", arr);
console.log(arr);

现在,我想使用“Books_ISBN”集合变量计算POST请求的响应数据。

{
    "books": [
        {
            "isbn": "9781449325862"
        }
    ]
}

我试着这样做,但它显示了错误。

var response = JSON.parse(responseBody);
pm.test(pm.expect(response.books[0].isbn).to.be.an.instanceof(Books_ISBN));

dy2hfwbg

dy2hfwbg1#

Postman在内部使用ChaijsAssert库。to.be.an.instanceof检查该类型是否为Array。您希望使用oneOf方法(Docs),如下所示:

const Books_ISBN = pm.variables.get("Books_ISBN");

pm.test("my test", () => {
  pm.expect(response.books[0].isbn).to.be.oneOf(Books_ISBN);
});

您可能还想查看writing tests的postman文档以及有关如何在脚本中使用变量的文档。

tyg4sfes

tyg4sfes2#

1.将数组、对象作为变量保存到,应先进行字符串化

pm.collectionVariables.set("Books_ISBN", JSON.stringify(arr));

1.变量在脚本中不存在,您必须先将其get,不要忘记解析。

let Books_ISBN = JSON.parse(pm.collectionVariables.get("Books_ISBN"));

pm.test("my test", () => {
  pm.expect(response.books[0].isbn).to.be.oneOf(Books_ISBN);
});

相关问题