【问题标题】:Is there anyway I can run the same test case but with different values everytime?无论如何我可以运行相同的测试用例但每次使用不同的值吗?
【发布时间】:2018-01-29 21:01:07
【问题描述】:

我每天都有一个测试用例在特定环境中测试特定场景,这是由 jenkins 作业自动完成的。

Scenario Outline: Verify a user can book 
 Given I navigate to the "xxxxx" Page
 And I set the "Location" field with "<location>" value
 And I click on the "Search" button on "xxxxx" page
 Then I verify the "Results" page is displayed
 Examples:
  | location |
  |Boston    |

我需要在内部有一个包含 20 个位置的列表,并且每次执行测试用例时,它都会以某种方式更改位置,可以是 ramdon 或以任何顺序,但总是在变化。 我用的是黄瓜、水豚,当然还有红宝石

有什么想法吗?

【问题讨论】:

  • 为什么不在示例列表中写下所有 20 个位置?
  • 在这种情况下,它将不再是一个测试用例,它将是 10 个或我将拥有的任意数量的位置
  • 你想在这里具体测试什么?是否存在数据?
  • 每 20 天为每个位置运行一次测试,将您的反馈时间延长至 20 天。你真的需要这样的测试吗?
  • @Pamela 明白了,但我的问题更像是“为什么需要测试所有位置而不是确保特定位置的数据存在”?换句话说,如果前端适用于一个位置,为什么它不能适用于其他位置?

标签: ruby jenkins automation cucumber


【解决方案1】:

Cucumber 在用作编程语言方面有很多限制。如果将它移到 ruby​​ 文件中(黄瓜文件不是 ruby​​),这样做会更容易。

一种选择是创建一个在内部调用这些其他步骤的步骤。有些人可能会说最好在其他步骤中调用 methods 而不是 steps,但是如果您已经将案例编写为步骤,那么这样做会更快方式,因为您不必将代码重写为方法。顺便说一下,最好在方法中编写测试代码,然后从步骤中调用它们,而不是将所有逻辑都放在测试用例中。

黄瓜文件:

Scenario Outline: Verify a user can book
  Given I navigate to the "xxxxx" Page
  Then the search bar works

Ruby 文件:

Then /the search bar works/ do
  locations = ["Boston", "Berkeley"].shuffle
  locations.each do |location|
    step %{I set the "Location" field with "#{location}" value}
    step %{I click on the "Search" button on "xxxxx" page}
    step %{I verify the "Results" page is displayed}
  end
end

这可能被认为是非惯用的另一个原因是因为它在单个测试用例中打包了太多内容。但是,除了使用不同的硬编码值简单地复制粘贴黄瓜文件中的原始步骤定义之外,我不确定解决此问题的好方法。

【讨论】:

  • 考虑到测试要求的性质(我认为这是开始的怀疑),我认为这并不是特别不习惯。
【解决方案2】:

有可能

locations = ["Boston", ...]
day_of_the_month = Date.new(2001,2,3).mday
today_location = locations[(day_of_the_month - 1) % locations.count]

我在第三行使用- 1,因为#mday 返回从1 到31 的整数。

【讨论】:

  • 我试过并更改了系统日期以便能够看到它工作,但它总是选择列表“波士顿”中的第一个选项
  • 我的示例每天更改位置,而不是月份或年份。请看我的例子repl.it/KTFm/0
猜你喜欢
  • 2014-02-19
  • 2014-11-25
  • 2010-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-30
相关资源
最近更新 更多