在Postman中有没有一种方法可以测试变量的主体响应是否包含文本或数字?

brc7rcf0  于 2022-12-18  发布在  Postman
关注(0)|答案(1)|浏览(122)

我想测试一个API端点GET,通过它我可以获取一个带有ID号的缩写列表。下面是一个响应体的片段:

[
    {
        "id": 11,
        "text": "A.D."
    },
{
        "id": 29,
        "text": "a.m."
    }

从这里开始,我想测试是否所有“text”示例都包含缩写而不是数字。
我尝试了这两种方式,但显然是行不通的:

pm.test("Id includes a number", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.id).to.include(Number);
});
var jsonData = pm.response.json(); 
pm.test("Text check", function () { 
    pm.expect(jsonData.text).is.to.equal(parseInt());
});
tag5nh1u

tag5nh1u1#

您的响应数据是数组,它开始于[,结束于]
因此,您需要按索引访问项,然后才能按键访问内容。
这个console.log()可以帮助我们解决这个问题。

var jsonData = JSON.parse(responseBody);
console.log(jsonData.length)
console.log(jsonData[0])
console.log(jsonData[1])
console.log(jsonData[0]["id"])
console.log(jsonData[0]["text"])
console.log(jsonData[1]["id"])
console.log(jsonData[1]["text"])

pm.test("Id includes a number", function () {
    pm.expect(jsonData[0]["id"]).to.equal(11);
});

pm.test("Text check", function () { 
    pm.expect(jsonData[0]["text"]).is.to.equal("A.D.");
});

相关问题