邮递员脚本:无法通过测试脚本保存环境变量
Postman scripting: cannot save environment variable via test script
我有几个请求作为我的集合的一部分,我想用 JSON 响应输出中的值设置一个环境变量。
此变量未在 管理环境 部分中定义。
是否必须首先在 Manage Environments 部分下声明环境变量?
如果我确实在 管理环境 部分声明了它,那么它就可以工作了^
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 响应中没有 sessionid2
。
我尝试了所有其他方法,包括 pm.response.json()
,但没有任何效果。
顺便说一句,我该如何测试以查看密钥是否存在于 JSON 响应中,而不一定要检查值,因为会话 ID 值可能每次都更改?
除了文档之外,有人可以指点我一个很好的资源来了解更多关于 Postman 脚本的信息吗?
第一个关于保存环境变量的问题,你需要先创建一个环境文件,让它知道在哪里保存变量。如果您不想先创建文件,则可以使用 pm.globals.set()
函数。
对于第二个问题,您的 test
语法似乎有误,因为您通过在测试名称后添加额外的 )
来结束测试。
使用类似这样的方法应该可行:
pm.test("Check if session id is returned", function() {
pm.expect(pm.response.json()).to.include.key("sessionid");
})
我有几个请求作为我的集合的一部分,我想用 JSON 响应输出中的值设置一个环境变量。
此变量未在 管理环境 部分中定义。
是否必须首先在 Manage Environments 部分下声明环境变量?
如果我确实在 管理环境 部分声明了它,那么它就可以工作了^
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 响应中没有 sessionid2
。
我尝试了所有其他方法,包括 pm.response.json()
,但没有任何效果。
顺便说一句,我该如何测试以查看密钥是否存在于 JSON 响应中,而不一定要检查值,因为会话 ID 值可能每次都更改?
除了文档之外,有人可以指点我一个很好的资源来了解更多关于 Postman 脚本的信息吗?
第一个关于保存环境变量的问题,你需要先创建一个环境文件,让它知道在哪里保存变量。如果您不想先创建文件,则可以使用 pm.globals.set()
函数。
对于第二个问题,您的 test
语法似乎有误,因为您通过在测试名称后添加额外的 )
来结束测试。
使用类似这样的方法应该可行:
pm.test("Check if session id is returned", function() {
pm.expect(pm.response.json()).to.include.key("sessionid");
})