0

我有 50 多个 Watir 测试脚本,目前只检查每个脚本中定义的特定 URL。

现在我们正在启动另外 4 个站点,并希望在所有 5 个站点上运行这些测试。维持 5 包 50+ 测试将是未来的噩梦。

有没有办法可以将变量传递给所有带有要访问的 URL 的单独测试。

例如

url = "http://site1.com" 

这样,如果我们想测试站点 2,我们只需要更改 url 变量而不是每个脚本。

url = "http://site2.com" 

示例测试:

require "watir-webdriver"

browser = Watir::Browser.new :chrome

browser.goto "http://url.com/"

browser.text_field(:id, "edit-search").set("Accounting")
browser.button(:value,"Search").click
browser.link(:text, "Accounting Manager with a leading US MNC").click
browser.link(:text, "Apply").click
browser.text_field(:id, "edit-firstname").set("hi2")
browser.text_field(:id, "edit-lastname").set("hi")
browser.text_field(:id, "edit-email").set("t@t.com")
browser.text_field(:id, "edit-current-job").set("Test")
browser.radio(:id, "edit-use-stored").click
browser.radio(:id, "edit-existing-cv-319706").click
browser.text_field(:id, "edit-message").set("Testing")
browser.checkbox(:id, "edit-create-alert").click
browser.button(:value,"Apply").click
browser.screenshot.save '..\screenshots\ApplyWithAlertNonRegistered.png'
browser.link(:text, "Home").click
browser.close
4

3 回答 3

0

Justin - 在 test_helper 文件中,是否可以设置浏览器类型(chrome、ie 或 ff)并将该变量传递给每个测试脚本;所以,如果我想更改浏览器,我只需要在 test_helper 文件中更改它,而不必进入每个测试脚本进行更改?

如果可能,这在 test_helper 文件和测试脚本中看起来如何?test_helper: type = ff 测试脚本: browser = Watir::Browser.new :type

谢谢!

于 2014-01-03T19:13:30.893 回答
0

虽然我建议转向实际的测试框架,但我认为以下方法适用于您的情况。

解决方案 1 - 将值从批次传递到测试

在测试脚本中,您可以使用 ARGV 数组从批处理文件中获取传入的参数。

  1. 在您的批处理文件中,您可以定义 URL,然后将其作为参数传递给测试脚本。

    SET URL="http://site2.com" 
    ruby test_example1.rb %URL%
    ruby test_example2.rb %URL%
    
  2. 您的测试将获得 ARGV[0] 值并转到它:

    browser.goto ARGV[0]
    
  3. 对于每次测试运行,您都需要为正确的 url 更新批次。

解决方案 2 - 在帮助文件中指定 URL

另一种解决方案是在每个测试包含的变量中指定 url。这可能是一种更好的方法,尤其是在有多个变量的情况下。

  1. 创建一个 test_helper.rb 文件:

    url = "http://site1.com"
    
  2. 对于每个测试脚本,需要这个 test_helper 文件并使用 url 变量:

    require "watir-webdriver"
    require "test_helper" #(Change path if not in the same folder)
    browser = Watir::Browser.new :chrome
    browser.goto url
    
  3. 在每次测试运行之前,更新 test_helper.rb 文件以指向正确的 url。

于 2013-10-28T16:39:06.933 回答
0

我喜欢贾斯汀的回答,但另一个选择是Fig Newton。它允许您根据正在运行的系统(localhost、jenkins、UAT 等)更改多个变量。

于 2013-10-29T03:59:58.963 回答