0

请在我丢失之前帮助我!

我正在使用 Ruby 测试单元和 Selenium Webdriver。我的所有测试都从登录功能开始,因此我希望测试从中央脚本/csv/文本文件中提取用户名和密码值,无论是最简单的。这将使从一个地方控制登录详细信息变得更容易,而不是将它们硬编码到每个脚本中。我不是 Ruby 程序员,因此我觉得这并不容易。我想我应该能够在“def setup”部分声明用户名和密码参数,以便它从外部源读取值。

这可能吗?

   require "selenium-webdriver"
   require "test/unit"


   class CMSNewslist < Test::Unit::TestCase

      def setup
       @driver = Selenium::WebDriver.for :firefox
       @base_url = "http://skyintranet/"
       @driver.manage.timeouts.implicit_wait = 90
       @verification_errors = []
      end

      def teardown
       @driver.quit
       assert_equal [], @verification_errors
      end


      def test_c_m_s_newslist
       @driver.get(@base_url + "/Enterprise-Applications-Test/")
       @driver.find_element(:link, "Login").click
       @driver.find_element(:id,     "ctl00_MainRegion_LoginView_LoginControl_UserName").clear
@driver.find_element(:id, "ctl00_MainRegion_LoginView_LoginControl_UserName").send_keys  "Ruband"
@driver.find_element(:id, "ctl00_MainRegion_LoginView_LoginControl_Password").clear
@driver.find_element(:id, "ctl00_MainRegion_LoginView_LoginControl_Password").send_keys  "Donn1982"
@driver.find_element(:id, "ctl00_MainRegion_LoginView_LoginControl_LoginBtn").click
assert_equal "Logout", @driver.find_element(:class, "loginButton").text, "Login Unsuccessful"
puts "Login Successful"

非常感谢。

4

1 回答 1

1

您可以将它们放在一个单独的文件中并阅读它,或者在每个脚本中包含一个 mixin。

module LoginConfig
    @@username = 'foo'
    @@password = 'bar'
end

然后在您的班级 CMSNewslist 中:

...
require 'login_config'

class CMSNewslist < Test::Unit::TestCase
    include LoginConfig
...

然后你可以使用@@username 和@@password。这是一个关于 Mixins 的不错的教程... http://www.tutorialspoint.com/ruby/ruby_modules.htm

于 2012-10-28T20:47:14.057 回答