如何将String值转换为布尔值

时间:2018-02-09 13:42:40

标签: postman

我有问题要在断言之前将字符串值(保存为环境变量)转换为布尔值。

我目前在邮差测试中有这个:

var regDB_p2018 = pm.environment.get("u_p2018");            
pm.expect(jsonData.premiumTO.particip2018).to.deep.equal(regDB_p2018);

跑完后我得到消息:

  

测试Register_User | AssertionError:期望真实到非常平等' true'

我认为问题在于环境变量u_p2018因为它在文件中保存为字符串,但在JSON的响应消息中,jsonData.premiumTO.particip2018的值是布尔值。

在进行断言之前,如何将u_p2018的值转换为布尔值?

其他信息

在第一个请求中,我将script_1中的以下值设置为初始值:

pm.environment.set("u_p2018", true);
pm.environment.set("u_p2020", false);

然后我在第二个请求中发出注册POST请求:

 {
    "personId": 0,
    "name": "Sample",
    "email": "sample@gmail.com",
    "account": {

        "userName": "sample@gmail.com",
        "rejectMessage": "",
        "admin": false
    },
    "premiumTO": {
        "name": "Bbthvn",

        "particip2018": true,
        "particip2020": false,
        "address": {
            "addressId": 0,
            "country": "U.S.A",
            "city": "NY",
        },
        "photo": null,
        "quoteVerified": false
    }
}

然后在收到回复消息后的script_2第二个请求中,我执行以下检查:

var var_regDB_p2018 = pm.environment.get("u_p2018");
var var_regDB_p2020 = pm.environment.get("u_p2020");

pm.expect(jsonData.premiumTO.particip2018).to.deep.equal(var_regDB_p2018);
pm.expect(jsonData.premiumTO.particip2020).to.deep.equal(var_regDB_p2020);

1 个答案:

答案 0 :(得分:1)

如果您所做的只是将值设置为true,是否需要将其设置为环境变量?

pm.test("Equal to true", () => {
    pm.expect(pm.response.json().myValue).to.equal(true);
});

Postman

所以在你的例子中,这可能只是:

pm.expect(jsonData.premiumTO.particip2018).to.equal(true)
pm.expect(jsonData.premiumTO.particip2020).to.equal(false) 

或者

pm.expect(jsonData.premiumTO.particip2018).to.be.true
pm.expect(jsonData.premiumTO.particip2020).to.be.false

尝试更好地理解Chai断言语法和一些基本的JavaScript可能会更好。这将清除您创建支票时的一些后续问题。