具有各种值的邮递员测试数组响应



我创建了一个测试,用于循环访问Postman中响应中返回的数组,该数组检查名称"power"的值,该值为0。这是一个常量值,因此测试在循环中通过。问题是如何测试没有常量值(在本例中(且无法在循环中完成的"时间戳">

pm.test('Test Array - power values', function() {
var body = JSON.parse(responseBody);
for(var i=0; i < body.powerReadings.length; i++) {
console.log("test"  + i + body.powerReadings[i].power)
pm.expect(body.powerReadings[i].power).to.eql(0)
}
});

响应数组的摘录如下所示:

"powerReadings": [
{
"timestamp": "2018-10-05T10:30:11.330Z",
"power": 0
},
{
"timestamp": "2018-10-05T10:30:26.352Z",
"power": 0
}
]

这将检查那些:

pm.test("Test Array - power values", () => {
let jsonData = pm.response.json();
_.each(jsonData.powerReadings, (item) => {
pm.expect(item.power).to.eql(0)
pm.expect(item.timestamp).to.be.a('string').and.match(/^d{4}-d{2}-d{2}Td{2}:d{2}:d{2}[.]d{3}Z$/)
})
})

不过,它并没有解决时间戳的实际值问题。

最新更新