【问题标题】:Using a POST request with body data imported from a CSV file in Postman将 POST 请求与从 Postman 中的 CSV 文件导入的正文数据一起使用
【发布时间】:2018-08-15 17:21:29
【问题描述】:

我是 POSTMAN 的新手,我遇到了一个问题,即从外部源(如 CSV 文件)驱动数据并使用它来将数据传递到请求正文,而不是使用不同的数据集多次编写相同的脚本。

在请求正文中,我将原始数据作为(应用程序/json)传递

{
    "groupCode": "FAFCE",
    "associationCode": "",
    "programTypeCode": "NE",
    "rateCalculationFilters": [
        {
            "fieldName": "EquipmentModel",
            "fieldValue": "0" //<Ex different set of data:2009,1992 >
        }, 
        {
            "fieldName": "TERM",
            "fieldValue": "3" //<Ex 3,7,4 >
        }, 
        {
            "fieldName": "POWERUPRATE",
            "fieldValue": "75000" //<Ex set of data:82009,77992 
        }
    ]
}

我为 11 组数据编写了 11 次调用。当数据增加时,我必须编写更多的调用和维护将超出我的预期。我想从 CSV 文件传递​​数据并使用不同的数据集而不是单个脚本多次运行相同的脚本。

【问题讨论】:

  • 您是否真的尝试过阅读 Postman 文档或他们的博客? blog.getpostman.com/2014/10/28/…
  • 是的,我已经阅读了这篇文章并按照步骤操作。脚本失败并说“”需要一个非空的请求正文。”但是“这是屏幕短
  • 手动运行并在 csv 文件中映射来自运行您的收藏时出错:无效的 URL“xxxxxxxx”。与提到的原始 JSON 格式兼容的地方
  • 更新您的问题,详细说明您目前拥有和尚未完成的工作。还要添加您正在使用的任何脚本。这比试图在 cmets 中解释一半要好。
  • 在正文中,我将原始数据作为 (application/json) "rateCalculationFilters": [ { "fieldName": "EquipmentModel", "fieldValue": "0" Ex different set of data:2009 ,1992 }, {"fieldName": "TERM", "fieldValue": "3" Ex:2,7 }, {"fieldName": "POWERUPRATE", "fieldValue": "75000" 4000, 90000 } ] 写了 11需要11组数据。当数据增加时,必须编写更多调用和维护将更多期望:我想从 csv 文件传递​​数据并使用不同的数据集多次运行相同的脚本,而不是单独的脚本

标签: api automation postman newman


【解决方案1】:

您可以通过在 POST 请求正文中使用 {{...}} 语法来实现这一点,如下所示:

{
    "groupCode": "FAFCE",
    "associationCode": "",
    "programTypeCode": "NE",
    "rateCalculationFilters": [
        {
            "fieldName": "EquipmentModel",
            "fieldValue": {{EquipmentModel}}
        },
        {
            "fieldName": "TERM",
            "fieldValue": {{TERM}}
        },
        {
            "fieldName": "POWERUPRATE",
            "fieldValue": {{POWERUPRATE}}
        }
    ]
}

然后创建 CSV 或 JSON 文件以在 11 个请求期间填充这些占位符。

这是一个使用 JSON 数据文件的示例,在每次迭代运行时,它将使用文件中的每组值:

[
    {
        "EquipmentModel": 1,
        "TERM": 1,
        "POWERUPRATE": 1
    },
    {
        "EquipmentModel": 2,
        "TERM": 2,
        "POWERUPRATE": 2
    }
]

【讨论】:

  • 谢谢您,应用了您提供的逻辑,现在可以正常使用 CSV 文件。但是在 JSON 中尝试使用相同的方法,但它只运行一次,没有选择同一组数据。
  • 你设置了多少iterations?默认是1,所以如果你只是按下按钮,它只会拾取第一组数据。
  • 谢谢丹尼,你是对的。使用 JSON,我们必须放弃迭代。与 CSV 迭代自动选择一样,csv 文件的记录数有
  • 面临类似问题,同时使用变量验证结果 这里是验证脚本 pm.test("匹配利率 4.29", function () { pm.expect(pm.response.text())。 to.include("4.29"); });现在我想在“测试”中检查结果,与传递变量的方式相同。这是我尝试过的代码 pm.test("Matching interest rate 4.29", function () { pm.expect(pm.response.text()).to.include(data["ExpectedResult"]); });当我在 collection runner 中看到 PREVIEW DATA 时,它显示 4.29。它获取数据,但结果显示失败。你能帮我解决这个问题吗?
  • 这是另一个问题。尽量不要在同一个问题中提出多个问题 - 使用新的详细信息创建另一个问题。
猜你喜欢
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-04
  • 1970-01-01
  • 2019-06-15
  • 2013-04-15
  • 2022-08-15
  • 2015-09-16
相关资源
最近更新 更多