2013-04-10 151 views
0

我有Amazon EC2运行Selenium测试上GRID2

运行硒栅格和我有我试图用Ruby和TestUnit运行基本测试。

require "test/unit" 
require "rubygems" 
gem "selenium-client" 
require "selenium/client" 

class Test3 < Test::Unit::TestCase 

    def setup 
    @verification_errors = [] 
    puts "Running tests..." 
    @selenium = Selenium::Client::Driver.new \ 
     :host => "http://ec2-54-244-205-27.us-west-2.compute.amazonaws.com:7055/wd/hub", 
     :browser => "*chrome", 
     :url => "https://news.google.com/", 
     :timeout_in_second => 60 

    @selenium.start_new_browser_session 
    end 

    def teardown 
    @selenium.close_current_browser_session 
    assert_equal [], @verification_errors 
    end 

    def test_test3 
    @selenium.open "/nwshp?hl=en&tab=wn&authuser=0" 
    @selenium.click "css=#gb_5 > span.gbts" 
    @selenium.wait_for_page_to_load "30000" 
    @selenium.click "css=div.main-appbar" 
    @selenium.click "css=span.titletext" 
    end 
end 

不过,我不断收到以下错误:

SocketError:的getaddrinfo:节点名称也不servname提供,或者不知道

我创建了硒集线器下面的行。

Java的罐子硒的服务器独立-2.6.0.jar -role枢纽-port 7055

我那么做注册的webdriver的节点...

Java的罐子硒 - 服务器 - 独立-2.6.0.jar -role webdriver的-hub http://ec2-54-244-205-27.us-west-2.compute.amazonaws.com:7055/grid/register -port 7056

我的网格控制台说...

WebDriverRemoteProxy 
listening on http://10.250.11.113:7056/wd/hub 
test session time out after 300 sec. 
Supports up to 5 concurrent tests from: 

我不明白,使我的测试与连接硒网格。我做错了什么?我的WebDriver的URL应该是WebDriverRemoteProxy下的“监听”吗?

+0

当U创建的节点,如何做你定义它的角色? – Amey 2013-04-10 04:08:32

+0

你还可以从你打算运行测试的计算机ping EC2机器吗? – Amey 2013-04-10 04:14:12

+0

你是对的。我已经将测试作为远程控制导出,而不是WebDriver。我以WebDriver的方式再次导出该测试,但现在我得到了Errno :: ETIMEDOUT:操作超时 - connect(2) – erichrusch 2013-04-10 04:40:07

回答

1

我有一种感觉,你已经创建了节点到集线器扮演的角色webdriver

为了向后兼容,“wd”和“rc”角色是“节点”角色的有效子集。但是这些角色将远程连接的类型限制为相应的API,而“节点”允许RC和WebDriver远程连接。

考虑到你的跑步RC,尝试定义节点的作用rc或更好node

java -jar selenium-server-standalone-2.31.0.jar -role node -port 7056 -hub http://ec2-54-244-205-27.us-west-2.compute.amazonaws.com:7055 

和您的硒远程实例,像这样

@selenium = Selenium::Client::Driver.new \ 
     :host => "http://ec2-54-244-205-27.us-west-2.compute.amazonaws.com:7055/wd/hub", 
     :browser => "*googlechrome", 
     :url => "https://news.google.com/", 
     :timeout_in_second => 60 
+0

这样做。谢谢!现在,我只需要安装它看起来像的浏览器依赖关系。 – erichrusch 2013-04-10 05:24:09