Postman 如何将字符串值转换为布尔值

Postman 如何将字符串值转换为布尔值,postman,Postman,在断言之前,我需要将字符串值(保存为环境变量)转换为布尔值 我目前在邮递员测试中有以下内容: var regDB_p2018 = pm.environment.get("u_p2018"); pm.expect(jsonData.premiumTO.particip2018).to.deep.equal(regDB_p2018); 运行后,我收到以下信息: 测试寄存器|用户|断言错误:应为true,以完全等于'true' 我认为问题在于环境变量u_p2018作为字符串保

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

我目前在邮递员测试中有以下内容:

var regDB_p2018 = pm.environment.get("u_p2018");            
pm.expect(jsonData.premiumTO.particip2018).to.deep.equal(regDB_p2018);
运行后,我收到以下信息:

测试寄存器|用户|断言错误:应为true,以完全等于'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
    }
}
然后,在收到响应消息后的第二个请求的
脚本_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);

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

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

因此,在您的示例中,这可能只是:

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


最好尝试更多地理解断言语法和一些基本语法。这将解决您在创建支票时遇到的一些后续问题

到目前为止你试过什么?你做了什么研究?展示你在问题中做了什么。显示
jsonData.premiumTO.particip2018
的值,或者更好地发布响应数据。你需要更多地扩展你的问题,并添加更多的细节——我在主字段中发布了,因为它没有被接受为评论。部分附加信息:希望有帮助。如果在任何时候你有附加信息来扩展问题,你应该将其作为更新添加到其中,而不是添加到注释中。我在第一个请求中有2个请求,我初始化了变量(set),在第二个脚本中,我发送了一条注册表单的POST消息,并从第一个脚本中获取值,因此基于此,我将它们放在环境变量中。但仍然是一样的:AssertionError:expected true等于postman doc中的'u_p2018',我重新声明环境变量将被标记为字符串,因此我需要将它们转换为布尔值。我认为这应该是问题所在,但我不知道你是如何做到这一点的
pm.environment.set(“u_p2018”,true);pm.environment.set(“u_p2020”,false)它不会从任何地方(从请求)获取真/假值,因为您已经手动添加了它。所以我不认为需要从环境文件中获取值来对其进行断言。嗨,Danny,很抱歉延迟回答。我必须发送一个注册请求,我想将其自动化。因此,我想到了用户必须在注册表单前端输入的所有信息,将其设置为虚拟请求(例如,任何GET消息),以便在prescript中清除所有变量,并在测试脚本中设置用户已在表单中输入的一些值。(包括上面的两个布尔变量)。在下一个请求中,当我想要发送POST请求以使用用户参数注册web服务时,我将从保存的环境中获取用户参数(在第一个虚拟请求中设置)。在对POST请求的响应中,我检查DB中的值是否与用户输入的内容相匹配,jsonData.premiumTO.particip2018是否与用户输入相匹配,即var“u_p2018”
pm.expect(jsonData.premiumTO.particip2018).to.be.true
pm.expect(jsonData.premiumTO.particip2020).to.be.false