【问题标题】:Postman: Test not able to reference expected variable邮递员:测试无法引用预期的变量
【发布时间】:2020-05-13 01:41:01
【问题描述】:

我正在尝试编写一个发布某个 API 调用并按预期返回响应的测试。

我的问题围绕着 Postman 功能,我无法通过自己尝试了解如何操作、谷歌搜索等找到这些功能。

我有一个 POST 请求,其中在正文中包含一个 day 键。例如,我给它的值是 18。

在测试中,我正在尝试验证如下所示的响应:

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

基本上,API 调用会更新数据库并将数据库中的键分配为 API 调用中给定的值。

因此,day = 18 被传递到 API 端点,响应重申 day 确实更改为给定的值,即 18。

那么如何在脚本中使用body的“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],但基本上这就是我想要做的。

有可能吗?

【问题讨论】:

    标签: postman


    【解决方案1】:

    expect 函数中尝试jsonData.data[0].day 从响应中获取正确的数据。

    eql 值引用错误 - 您可以将值存储在环境变量中并使用 pm.environment.get('my_value') 来引用它。

    在 POST 正文中,您可以使用相同的环境变量语法,而不是硬编码的 18 值。只需将{{my_value}} 添加到您拥有18 值的请求正文中

    更多关于变量的信息可以在这里找到https://www.getpostman.com/docs/v6/postman/environments_and_globals/variables

    【讨论】:

      猜你喜欢
      • 2018-10-12
      • 2020-05-15
      • 2019-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多