Watir 网络驱动程序 - 将变量传递给多个测试



>我有 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 '..screenshotsApplyWithAlertNonRegistered.png'
browser.link(:text, "Home").click
browser.close

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

解决方案 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。

我喜欢

贾斯汀的回答,但另一种选择是图牛顿。它允许您根据运行的系统(本地主机,jenkins,UAT等)更改多个变量。

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

如果可能,这在test_helper文件和测试脚本中的外观如何?test_helper:类型 = ff测试脚本:浏览器 = Watir::Browser.new :type

谢谢!

相关内容

  • 没有找到相关文章

最新更新