将对象或数组保存在集合变量中,以便在测试中比较数字范围

时间:2018-06-04 20:35:47

标签: variables postman

目前,我遇到了一个小问题。 我有一个目标:测试计数器(计算数字的功能)以检查此计数器返回的数字低于设置范围的低和高(+ -5%偏差)

现在,我有这段代码:

var allLists = JSON.parse(responseBody);

var min = pm.variables.get("count"); // I separately extract min
var max = pm.variables.get("count1"); // and max, but want to extract one variable with min and max;
var low = parseInt(min)
var high = parseInt(max);
console.log("::MIN_VALIE: " + low + " | " + "::MAX_VALUE: " + high);

pm.test("test count", function () {
    const value = allLists.data.count;
    console.log(":::::::::=> COUNTER: " + value);
    pm.expect(typeof value).to.eql('number');
    pm.expect(value > low && value < high).to.eql(true);
});

它运作正常,但我相信这段代码很笨重 为了比较低和高范围内的,我必须在集合变量中保持低和高数字,在期望的50个变量中,使得100个变量和真正的混乱。

我可以以某种方式为集合变量中的值保留一个变量吗?

更新 发布后立即提出:

var allLists = JSON.parse(responseBody);

var num = pm.variables.get("count").split(',');
var min = parseInt(num[0]);
var max = parseInt(num[1]);

console.log("::MIN_VALIE: " + min + " | " + "::MAX_VALUE: " + max);

pm.test("test count", function () {
    const value = allLists.data.count;
    console.log(":::::::::=> COUNTER: " + value);
    pm.expect(typeof value).to.eql('number');
    pm.expect(15 > min && 15 < max).to.eql(true);
});

它好多了,但也许存在更好的方式

1 个答案:

答案 0 :(得分:0)

使用JSON.parse解决它。在集合变量中,范围记为In Collection Varibles: overall_count:[1,99]格式,我想拥有。

var allLists = JSON.parse(responseBody);
// Here I parse this variable and make parse int to get integer and hurray, I have 1 variable instead of 2
const num = JSON.parse(pm.variables.get("overall_count")); //resolved it with JSON parsing
var min = parseInt(num[0]);
var max = parseInt(num[1]);

pm.test("test count", function () {
    const value = allLists.data.count;
    pm.expect(typeof value).to.eql('number');
    pm.expect(15 > min && 15 < max).to.eql(true);
});