我正在尝试使用selenium网格并行运行我的测试。我有我的jenkins服务器,一台刚刚运行集线器的PC,以及3台连接运行节点的PC。我可以毫无问题地运行7个并行任务,并且很少遇到8个问题,但是一旦我转到10或12,我就开始遇到问题。
我看到的一些问题是
Session [36531758-f9e2-40ed-95ea-9a811de7e5e1] was terminated due to CLIENT_STOPPED_SESSION (org.openqa.grid.common.exception.GridException)
和
Connection refused - Connection refused
org/jruby/ext/socket/RubyTCPSocket.java:126:in `initialize'
org/jruby/RubyIO.java:1177:in `open'
E:/jruby-1.7.16/lib/ruby/1.9/net/http.rb:762:in `connect'
org/jruby/ext/timeout/Timeout.java:104:in `timeout'
E:/jruby-1.7.16/lib/ruby/1.9/net/http.rb:762:in `connect'
E:/jruby-1.7.16/lib/ruby/1.9/net/http.rb:755:in `do_start'
E:/jruby-1.7.16/lib/ruby/1.9/net/http.rb:744:in `start'
E:/jruby-1.7.16/lib/ruby/1.9/net/http.rb:743:in `start'
E:/jruby-1.7.16/lib/ruby/1.9/net/http.rb:1292:in `request'
E:/jruby-1.7.16/lib/ruby/gems/shared/gems/selenium-webdriver-2.48.1/lib/selenium/webdriver/remote/http/default.rb:107:in `response_for'
和
Connection refused - Connection refused (Errno::ECONNREFUSED)
./features/page_objects/my_project/my_page.rb:90:in `log_out_previous_user'
我知道像browserstack这样的公司和其他公司都使用selenium grid,所以我知道可以同时运行8个以上的实例。任何帮助将不胜感激。
答案 0 :(得分:0)
启动节点时,可以指定每个浏览器的使用量。话虽这么说,你在同一个节点上同时运行的浏览器越多,你就有可能让一个任务影响另一个任务(我相信整体测试成本会比并行化节省更多)。此时我对最佳实践的看法是完全跳过使用网格并为每个节点计算机设置一个Jenkins执行程序,并将其作为实例限制。
答案 1 :(得分:0)
网格非常棘手,因为它们非常依赖于您运行的硬件以及测试速度和命令行参数。
你是如何启动枢纽的?您可能需要添加“-maxSession x”,其中x是您的硬件可以支持的会话数(尝试查找: - ))
我不熟悉错误消息,但可能是由集线器或节点上的浏览器超时设置引起的。
要查看所有可用设置,请运行以下命令:
java -jar selenium-server-standalone-2.45.0.jar -h
根据您的要求进行调整是稳定网格的关键。
答案 2 :(得分:0)
我们在工作中使用的实现是5:1的比例(每1个集线器5个节点,集线器本身作为节点)。这是在我加入团队之前决定的,但听起来他们在数字上稍稍摆弄,而且5是最稳定的。