我正试图从詹金斯那里进行无头测试。当我指定HTML测试套件时,这适用于HTML测试。但现在我想对同一个selenium服务器运行selenium-2测试。
我试过了:
执行shell:
export DISPLAY=":99" && java -jar /var/lib/selenium/selenium-server.jar
但这似乎是挂起的,直到我手动停止服务器。如何以通过grails调用我的selenium RC测试的方式启动selenium服务器?
答案 0 :(得分:1)
没有特殊方法可以“启动”任何特定语言使用的selenium服务器。启动selenium服务器时,它将开始在端口上侦听传入请求。您应该在测试中使用一行代码将测试指向selenium服务器。我不知道grails。在java中它将是
Selenium sel = new DefaultSelenium("host","port","browsername","baseurl")
grails中的等效方法应该让你工作。
编辑 - 启动selenium服务器的JAVA代码:
Selenium sel;
int port=9999;
public static SeleniumServer server;
public void startSeleniumServer() throws Exception {
try {
ServerSocket serverSocket = new ServerSocket(port);
serverSocket.close();
//Server not up, start it
try {
RemoteControlConfiguration rcc = new RemoteControlConfiguration();
rcc.setPort(port);
server = new SeleniumServer(false, rcc);
} catch (Exception e) {
System.err.println("Could not create Selenium Server because of: "
+ e.getMessage());
e.printStackTrace();
}
try {
server.start();
System.out.println("Server started");
} catch (Exception e) {
System.err.println("Could not start Selenium Server because of: "
+ e.getMessage());
e.printStackTrace();
}
} catch (BindException e) {
System.out.println("Selenium server already up, will reuse...");
}
}
public void stopSeleniumServer(){
if (server != null)
{
try
{
server.stop();
}
catch (Exception e)
{
e.printStackTrace();
}
}
System.out.println("Selenium server stopped..");
}
public void startSeleniumRC() throws Exception{
sel=new DefaultSelenium("localhost",
port,
"*firefox",
"http://www.google.com");
sel.start();
}
public void stopSeleniumRC()
{
sel.shutDownSeleniumServer();
}