邮递员测试与全局变量比较

时间:2020-01-30 07:28:48

标签: postman postman-testcase

我想在Postman中安排两个请求。第一个响应将给我一个变量。我将此ID保存到全局变量id。在Postman中,通常可以通过{{id}}访问此变量。

然后,我发送另一个具有此ID的请求(例如GET foo.bar/{{id}})。现在我要检查ID是否也在结果中。

这是我在测试代码中尝试过的:

    var jsonData = pm.response.json();
    pm.expect(jsonData.id).to.eql({{id}});

其中id是第一个响应中的变量(例如72b302bf297a228a75730123efef7c41)。

第二个请求的响应看起来很……。像这样:

{
    "id": "72b302bf297a228a75730123efef7c41"
}

这里有一些例子也不起作用:

    var jsonData = pm.response.json();
    pm.expect(jsonData.id).to.eql("{{id}}");
    var jsonData = pm.response.json();
    var myId = {{id}};
    pm.expect(jsonData.id).to.eql(myId);

我的期望是,测试将是肯定的,并且可以在响应中找到请求的ID。

您知道如何解决此问题吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

不能{{...}}那样使用语法,在沙盒环境中,您需要以这种方式访问​​它。

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'))
});