【问题标题】:skip iteration based on value - postman基于值跳过迭代 - 邮递员
【发布时间】:2020-11-11 04:09:30
【问题描述】:

我正在开发一个邮递员集合,其中我编写了两个 API 获取请求。当我运行时,我在运行器中为两个请求使用单个数据文件。我的数据文件如下所示 -

我想要做的是,当我运行 request1 时,它应该使用 Algo_id 并在查询参数中使用,而对于 request2,它应该使用 product_ids。当我使用数据文件从测试运行器运行这些请求时,它也会运行对空白值的请求,每个请求四个。我想跳过空白值的运行,仅在请求的列中有值时运行它。

我想运行两次请求并跳过空白的请求。

到目前为止我已经尝试过,但没有成功 -

request1 预请求脚本 -

request2 预请求脚本 -

【问题讨论】:

  • pm.iterationData.get("product_ids") 返回什么?如果它是空的,它是 null 还是空字符串?在任何一种情况下,都不是布尔值,所以我不确定表达式的计算结果是什么。
  • 它返回一些符号,当我将鼠标悬停在它上面时,它显示Empty String。我也尝试使用 'NA' 而不是将值留空然后检查 pm.iterationData.get("product_ids") === 'NA' 但这也不起作用..它进入 if 但什么也不做。
  • 想想这个设置似乎有点奇怪,request2 是否依赖于 request1 的响应或者为什么是空值?你能用一些已知的错误值代替空白吗?
  • 我可以,但想法是对多个请求使用单个数据文件。如果参数值不适用于请求,则应跳过它
  • 我真的没有办法做你想做的事,在预请求脚本中设置下一个请求会这样做,但你的请求,当前请求仍然会执行此时您已经有一个空值可以使用。您需要执行请求并让它成为一个错误状态,这会产生很多不必要的错误。

标签: automated-tests postman web-api-testing postman-collection-runner postman-pre-request-script


【解决方案1】:

认为您正在尝试做的是当前不支持的事情,基本上是如果预请求脚本中的测试条件失败,则中止当前请求并转到下一个。在您的情况下,如果为 url 参数找到一个空值,则不要执行。

https://github.com/postmanlabs/postman-app-support/issues/7166

【讨论】:

  • 是的,我也这么认为。然而,我已经根据值跳过了测试本身,这样我让请求运行但不运行测试。
猜你喜欢
  • 2021-03-22
  • 1970-01-01
  • 2021-09-04
  • 2018-10-25
  • 2011-08-06
  • 1970-01-01
  • 2015-06-20
  • 2011-06-28
  • 1970-01-01
相关资源
最近更新 更多