与全局变量比较的Postman检验

与全局变量比较的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保存到全局变量
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'))
});