我有几个请求作为集合的一部分,并且想要使用json响应输出中的值设置一个环境变量。在“管理环境”部分中未定义此变量。我必须首先在“管理环境”部分下声明环境变量是强制性的吗?如果我确实在“管理”部分中声明了它,那么它将起作用。
const jsonData = pm.response.json();
pm.environment.set('sessionId', jsonData.sessionId);
我的另一个问题是我不知道为什么会这样吗?我的一个请求中包含以下代码段。
{
"sessionid": "15c3f72e-788f-423f-b1cc-5dca503ae859",
"expires": "2019-02-17T20:57:20.24234222-08:00",
"cookievalue": "MySession"
}
pm.test("Check if session id is returned"), function() {
pm.expect(pm.response.text()).to.include("sessionid2");
}
我对为什么这样做感到惊讶?它应该失败,因为我在json resposnse中没有sessionid2。我尝试了所有其他方式,包括pm.response.json(),但没有任何效果。顺便说一句,我如何测试密钥是否存在于json响应中,而不必检查该值,因为会话ID值可能每次都会更改。
除了文档之外,有人可以为我提供一个很好的资源来学习有关邮递员脚本的更多信息吗?
请帮助。
答案 0 :(得分:0)
关于保存环境变量的第一个问题,您需要首先创建一个环境文件,以使其知道在何处保存该变量。如果您不想首先创建文件,则可以使用pm.globals.set()
函数。
对于第二个问题,似乎您的test
语法是错误的,因为您已关闭测试,方法是在测试名称后添加额外的)
。
使用类似的方法应该可以:
pm.test("Check if session id is returned", function() {
pm.expect(pm.response.json()).to.include.key("sessionid");
})