与全局变量比较的Postman检验
我想在中协调两个请求。第一个响应将给我一个变量。我将此id保存到全局变量与全局变量比较的Postman检验,postman,postman-testcase,Postman,Postman Testcase,我想在中协调两个请求。第一个响应将给我一个变量。我将此id保存到全局变量id。在Postman中,此变量通常可通过{{id}访问 然后我用这个id发送第二个请求(比如getfoo.bar/{{id})。现在我想检查一下,这个id是否也在结果中 这是我在测试代码中尝试的: var jsonData = pm.response.json(); pm.expect(jsonData.id).to.eql({{id}}); var jsonData = pm.response.
id
。在Postman中,此变量通常可通过{{id}
访问
然后我用这个id发送第二个请求(比如getfoo.bar/{{id}
)。现在我想检查一下,这个id是否也在结果中
这是我在测试代码中尝试的:
var jsonData = pm.response.json();
pm.expect(jsonData.id).to.eql({{id}});
var jsonData = pm.response.json();
pm.expect(jsonData.id).to.eql("{{id}}");
其中id
是来自第一个响应的变量(例如72B302BF297A228A75730123EF7C41
)
第二个请求的响应如下所示:
{
"id": "72b302bf297a228a75730123efef7c41"
}
以下是一些同样不起作用的示例:
我的例外情况是,测试将是阳性的,并且请求的“id”将在响应中找到
你有办法解决这个问题吗
谢谢您的帮助。不能像那样使用
{…}
语法,在沙盒环境中,您需要以这种方式访问它
pm.expect(jsonData.id).to.eql(pm.globals.get('id'))
测试语法为:
pm.test("IDs equal?", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.id).to.eql(pm.globals.get('id'))
});
嗨,丹尼,谢谢你的帮助。我尝试了
pm.test(“IDs equal?”,函数(){var jsonData=pm.response.json();pm.expect(jsonData.id).to.eql('{id}');})
程序不允许在之前强制转换id变量,因此…to.eql('id')
是不可能的(据我所知)。下面是周围的代码:pm.test(“IDs equal?”,函数(){var jsonData=pm.response.json();pm.expect(jsonData.id).to.eql({id}');})
有没有办法将id作为变量输入eql(.)
?我为您编写了正确的expect语句,您尝试过了吗。如果您从以前的请求中在全局级别存储了id
变量,那么这是可行的。我没有看到的是pm.globals.get()
。我的错。你给了正确的暗示。以下代码有效:pm.test(“IDs equal?”,函数(){var jsonData=pm.response.json();pm.expect(jsonData.id).to.eql(pm.collectionVariables.get('id');})
所以您没有将其保存为全局
变量,如您在原始问题中所述:
pm.test("IDs equal?", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.id).to.eql(pm.globals.get('id'))
});