我正试图在Postman中进行一项检查:
count(product.id)= responseHeader(“per-page”)
默认“每页”为30。 我的{/ product}端点的架构如下所示:
{
id (number, optional),
name (string, optional),
product_type (string, optional) = ['day', 'week', 'month'],
supply_commencement_date (string, optional),
supply_end_date (string, optional),
delivery_period (string, optional),
bid_sweep (number, optional),
offer_sweep (number, optional),
bid_qty (number, optional),
best_bid_price (number, optional),
offer_qty (number, optional),
best_offer_price (number, optional),
last_settle_price (number, optional)
}
在尝试了一些变化之后,我想我终于让脚本完成了90%......
pm.test("product id count matches ppg 00", function () {
var ppg = pm.response.headers.get("per-page");
var count = pm.response.json().map(product => product.id);
pm.expect(ppg).to.eql(count.length);
});
然而,这会返回 AssertionError:预期'30'深度等于30 我猜这意味着它正在将字符串值作为字符串读取,因此不会匹配我的id计数。
我希望有人可以:
*验证我的想法,如果我是对的,请告诉我如何将“每页”转换为整数;或
*提供更好的方法来实现预期的结果。
提前谢谢!
注意:我也尝试过使用......
pm.expect(ppg === count.length);
哪个说它成功了,但是那样......
pm.expect(ppg > count.length);
所以我对这些片段没有多少信心:)
答案 0 :(得分:0)
以下选项之一将提供整数而不是字符串。请记住,此代码不会提前输入验证,因此不会捕获不会产生可解析字符串的边缘情况。
更改强>
var ppg = pm.response.headers.get("per-page");
要强>
var ppg = +pm.response.headers.get("per-page");
或强>
var ppg = parseInt(pm.response.headers.get("per-page"));