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