【问题标题】:How to achieve data driven testing using postman and newman?如何使用 postman 和 newman 实现数据驱动测试?
【发布时间】:2021-11-19 07:31:54
【问题描述】:

我需要自动化 API 并将其与 Azure devOps 管道集成。我目前正在使用 Cypress,并且我成功地这样做了。

我的客户想使用邮递员进行自动化。

我必须运行具有多种组合的单个 API,例如具有不同请求正文集的不同查询参数集。

我知道通过使用 Cypress 夹具我们可以实现数据驱动测试,但是如果可以,我们可以用 Postman 做同样的事情吗?我们如何将其集成到 Azure Pipeline 以运行不同的数据组合?

【问题讨论】:

  • data-driven testing 在邮递员中使用 csv/json 文件很糟糕,但我们可以采取一种解决方法,例如将数据存储在对象数组中,一个请求将从数组中获取一个对象并运行。
  • @lucasnguyen17 我们能否像 azure devops 一样将这些请求集成到 CI/CD 中?在这种情况下,这些 csv/json 文件将存储在哪里?以及如何告诉请求选择并运行哪个 csv/json 文件?
  • 不幸的是,没有。这就是为什么邮递员中的数据驱动很糟糕的原因。 community.postman.com/t/…。您可以按照我之前提到的解决方案进行操作,如果您愿意,我可以为您制作示例代码。
  • @lucasnguyen17 掌握知识很危险 :) 邮递员数据驱动测试是最简单的。您可以通过多种方式运行它,

标签: api automation postman cypress newman


【解决方案1】:

postman 中的数据驱动测试很简单,csv header 是变量名:

创建一个名为 data.csv 的 csv 文件:

age
1
2
3

现在在 {{name}} 等任何部分调用变量

例如让请求成为:

{

"user": "{{name}}"

}

现在使用 newman 或 collection runner 运行脚本。对于 cicd 集成,我们应该使用 newman。将集合导出为 json 并运行

 newman run collection.json -d data.csv

就是这样,一次您只能使用一个 csv 文件,但可以通过使用 -d 指定的不同数据文件重新运行命令来使用不同的 csv 文件运行配置

【讨论】:

  • 是的,我知道如何使用 csv 文件,但一次只能使用一个文件,而且我在集合中有很多这样的请求。还有一件事,我必须将此请求与集合中的其他请求分开,以减少迭代的副作用。例如,我有一个集合:req1,req2(读取 csv 文件:3 行)。当我使用 runner 运行集合时,我希望 req1 运行 1 次,req2 运行 3 次,但结果 req1 运行 3 次,req2 运行 3 次。对我来说,这很糟糕。
  • 好的,这回答了我的一个问题。另一个问题是如何将其与管道集成?当我们谈到 CI/CD 时,data.csv 文件将存储在哪里?
  • @lucasnguyen17 您可以通过使用 google sheet 或环境变量中的内容等轻松做到这一点。试试这个,postman.com/praveendvd-public/workspace/postman-tricks-and-tips
  • @AbdullaSuhail 它将与收集和环境变量 .json 文件一起保存。你应该有一个包含数据文件、集合和环境的文件夹
  • @lucasnguyen17 你应该使用 postman.setNextRequest 来控制流程
猜你喜欢
  • 2020-07-20
  • 2020-03-21
  • 2017-01-27
  • 2016-02-10
  • 2015-10-12
  • 1970-01-01
  • 2019-03-29
  • 1970-01-01
  • 2018-01-30
相关资源
最近更新 更多