Postman Post Test无法参考预期变量

时间:2018-05-03 22:51:00

标签: postman

好的,我几天前才开始使用邮递员。我正在尝试编写一个测试,发布某个api调用并按预期获得响应。我的问题围绕邮递员功能,我无法通过自己尝试了解如何操作,谷歌搜索等找到。

我有一个帖子,帖子的正文中包含一个密钥。我给它的值为18例如。钥匙的名字是“天”。在测试中,我试图验证响应如下:

{
    "meta": {
        "status": "OK",
        "code": 200
    },
    "errors": [],
    "data": [
        {
          "day": "18"
        }
    ]
}

基本上,api调用更新数据库并将数据库中的密钥指定为api调用中给出的值。因此,day = 18被传递到api端点,并且响应重申该日确实已更改为给定的值,即18。

那么如何在剧本中使用正文的“day = 18”进行验证?我不想在剧本以及正文中硬编码18,当然这也是会工作。 有没有办法在脚本中使用预定义的键值作为自己的变量?

基本上我希望能够做到这一点:

pm.test("Day Updated", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.day).to.eql(POST.Body.Key[day]);
});

我刚刚编造POST.Body.Key[day],但基本上这就是我想要做的。 有可能吗?

1 个答案:

答案 0 :(得分:0)

lapply函数中尝试lapply(test, function(x) x[!grepl("\\d+", x)]) ,以便从响应中获取正确的数据。

jsonData.data[0].day值引用错误 - 您可以将值存储在环境变量中,并使用expect来引用它。

在POST正文中,您可以使用相同的环境变量语法而不是硬编码的eql值。只需将pm.environment.get('my_value')添加到您具有18

的请求正文中

有关变量的更多信息,请访问https://www.getpostman.com/docs/v6/postman/environments_and_globals/variables