繁体   English   中英

无论如何,我每次都可以运行相同的测试用例,但使用不同的值吗?

[英]Is there anyway I can run the same test case but with different values everytime?

我每天只有一个测试用例来测试特定环境中的特定场景,这是詹金斯的工作自动完成的。

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或以任何顺序进行更改,但是总是在变化。 我在用黄瓜,水豚和红宝石

有什么想法吗?

黄瓜在用作编程语言方面有很多限制。 如果将其移动到红宝石文件中(黄瓜文件不是红宝石),则执行此操作会更容易。

一种选择是制作一个步骤,在内部调用这些其他步骤。 有些人可能会说这是更好地调用方法 ,而不是从内部其他步骤措施 ,但如果你已经有书面的步骤比这个您的情况下将更快地做这种方式,因为你不必重写代码到方法, 。 最好在方法中编写测试代码,然后顺便从步骤中调用它们,而不是将所有逻辑放入测试用例中。

黄瓜文件:

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

可以将其视为非习惯用法的另一个原因是,它在单个测试用例中打包太多。 但是,除了简单地将原始步骤定义复制粘贴到具有不同硬编码值的黄瓜文件中之外,我不确定是否有解决此问题的好方法。

这是可能的

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之间的整数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM