2011-06-13 24 views
1

因此,使用网格2,每当硒RC开始时,是否有配置文件来启动xvfb或xvnc。 Hub和Selenium RC已经安装在单独的Linux机器上。selenium grid 2使用xvfb或xvnc实现无头连接的持续集成?

另外,在RC上运行的硒测试和客户端(Java客户端软件)之间是否有实现双向通信的方法?对于例如)测试失败,因为在页面上找不到元素,需要通知客户端并且客户端可以提供正确的元素。

所以硒web驱动程序测试不应该停止,而是等到正确的输入或客户端终止测试。有点像反馈周期,以确保Web应用程序的所有变体都被考虑到。 ex)一个带有随机生成ID的表单按钮,依靠xpath在特定页面上随机地打破。

是否可以通过指定硒电网2启动rc的规则时间间隔来实现持续集成?

这是否意味着我需要将webdriver测试扩展为Jetty服务器?或Netty?开始硒web服务?

回答

3

为了回答您的第一个问题,我建议您始终在您的RC节点上运行Xvfb服务器。如果您运行的是debian或ubuntu,则还可以使用xvfb-run启动您的RC节点:

nohup xvfb-run java -jar selenium-server-standalone-2.0rc2.jar \ 
     -role rc \ 
     -port 5555 \ 
     -hub http://hub:4444/grid/register 2>&1 > selenium-rc.log & 

关于双向通信。为什么不使用isElementPresent()api调用并在测试中处理这个逻辑?通过在user-extensions.js和getEval()api调用的帮助下扩展硒,可以实现更复杂的交互。

Example of using getEval() api call

启动和停止RC节点不被毂支撑。集线器的目的是将请求从硒客户端调解到活动的RC节点。如果你不能一直运行RC节点,那么你可以看看cron。

+0

会不会有xvfb显示数字崩溃? – KJW 2011-06-16 04:50:56

+0

使用Selenium Grid2,您只需要为每台机器启动一个RC。每个RC实例现在可以同时控制多个浏览器。默认情况下,该节点最多支持5个Firefox和1个Chrome浏览器。但是这可以通过使用-browser标志(http://code.google.com/p/selenium/wiki/Grid2)进行更改。 – janderssn 2011-06-16 14:32:07

+0

sweeeet!所以我可以根据需要添加新的Linux盒子! – KJW 2011-06-16 14:52:08

1

Selenium Grid只是一种管理一组Selenium服务器并简化客户端分派到这些服务器的方法。如果您无法直接使用Selenium Server执行某些操作,则无法使用网格。同样,如果您可以使用Selenium Server,则可以使用网格来完成。

所以,如果你想要一个交互式脚本,那将起作用,但这一切都是从客户端驱动的。 Selenium Server无法回拨到您的应用程序中。