多次运行相同的黄瓜场景

时间:2015-03-10 10:02:52

标签: ruby webdriver cucumber watir-webdriver

我试图运行相同的场景1000次。我要测试的是,如果我登录并注销n次,应用程序是否稳定。我想出了一个方法,但看起来并不干净整洁。我想为同一HTML中的1000次执行生成报告。

这就是我所做的

黄瓜步骤:

    When I login "1000" number of times  

在我的步骤定义中是:

    successful_attempts = 0
    unsuccessful_attempts = 0
    attempt_login = attempt_login.to_i

    attempt_login.times do 

      visit_page(Login)

      on_page Login do |page|
        page.login_with username, password
        page.logout? ? (page.logout;successful_attempts+= 1) : unsuccessful_attempts+= 1
      end

    end

    puts "Total Attempts :  #{attempt_login}"
    puts "Successful Attempts : #{successful_attempts}"
    puts "Unsuccessful Attempts : #{unsuccessful_attempts}"

    fail if unsuccessful_attempts > 0

1 个答案:

答案 0 :(得分:1)

你的情况有点不寻常。如果是我,我会尝试使用'Scenario Outline',其中每个场景都会引入一个名为“尝试”的参数。例如:

Scenario Outline: verify login 1000 times
  Given I am not logged in
  When I log in with attempt <attempt>
  Then ...

  Examples:
    | attempt |
    | 1       |
    | 2       |
    | ...     |
    | 1000    |

步骤定义:

When(/^I log in with attempt (\d+)$/) do |attempt|
    ...
end

这方面的优点是你有一个干净的报告,说明它失败的尝试,可能保留不同的异常日志,1个失败的案例不会阻止其他情况。这样做的缺点是你需要编写一些脚本来生成1000个数字的表。