【问题标题】:Using Postman, unable to reference CSV file for JavaScript test使用 Postman,无法引用 CSV 文件进行 JavaScript 测试
【发布时间】:2018-11-06 16:03:32
【问题描述】:

我正在使用带有 POST 请求的 REST API。我创建了一个 CSV 文件来加载各种输入,并使用 Collection Runner 提交我的请求并迭代地运行相关的 JavaScript 测试。我试图弄清楚如何在 CSV 的每一行中都有一个条目以供我的 JavaScript 测试参考,以使 JavaScript 动态化。我搜索了 Postman 文档和论坛,以及 Google 和 Stack Overflow,但我没有找到任何有用的东西。这是我正在尝试完成的一个基本示例。


假设我有一个基本的添加 API。这是我的要求:

{
    "Numbers": {
        "Value_1": {{val1}},
        "Value_2": {{val2}},
            }
}

CSV文件如下:

val1,val2,sum
1,1,2
2,2,4
3,3,6

对于这个例子,假设 API 返回一个包含 val1 和 val2 总和的响应;像这样:

{
    "Numbers": {{sum}},
}

我能够将 val1 和 val2 加载到我的请求中并遍历每一行的请求,但是我无法将总和值(来自同一个 CSV)合并到 JavaScript 测试中。

我正在尝试执行以下测试,我可以在其中引用电子表格中的总和值,但 Postman 不喜欢我的语法。

pm.test("Adding machine", function () {   
var jsonData = pm.response.json();
pm.expect(jsonData.Numbers === {{sum}});
});

有人有什么建议吗?这甚至可以做到吗?

【问题讨论】:

  • 您是否考虑过使用 pm.iterationData() 函数来获取这些值并在测试中对它们进行断言? getpostman.com/docs/v6/postman/scripts/…
  • 谢谢丹尼。这对我有用。我最终做了这样的事情:_______________________________________________ var sumVal = pm.iterationData.get("sum"); var data = JSON.parse(responseBody);测试[“添加机器”] = data.Numbers === sumVal;
  • 太棒了,我添加了一个可以作为答案的测试。

标签: postman postman-collection-runner


【解决方案1】:

您可以使用pm.iterationData().get('var_name') 函数并创建这样的检查吗?

pm.test("Sums are correctly calculated", () => {
    pm.expect(pm.response.json().Numbers).to.equal(pm.iterationData.get('sum'))
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 2021-07-23
    • 2018-05-18
    • 2019-08-04
    • 2019-04-30
    • 2018-05-03
    • 1970-01-01
    相关资源
    最近更新 更多