Running selenium 2 tests within Jenkins against a certain selenium instance
-
26-10-2019 - |
Pergunta
I'm trying to run headless tests from Jenkins. This works fine for HTML tests when I specify the HTML test suite. But now I want to run selenium-2 tests against the same selenium server.
I tried this:
Execute shell:
export DISPLAY=":99" && java -jar /var/lib/selenium/selenium-server.jar
But this seems to be hang until I stopped the server manually. How do I start the selenium server in such a way that my selenium RC tests invoked through grails ?
Solução
There is no special method to "start" selenium server to be used by any particular language. When you start selenium server it will start listening on a port for incoming requests. You should be having a line of code inside your tests to point your tests to the selenium server. I don't know grails. In java it would be
Selenium sel = new DefaultSelenium("host","port","browsername","baseurl")
- > host - IP of the machine where server is started
- > port - port number on which selenium server is listening. This is usually 4444 if you don't specify anything
- > browsername-Browser on which you want the tests to be
- > run baseURL- base URL of the web app you need to test.
The equivalent method for this in grails should get you working.
EDIT - JAVA code to start selenium server:
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();
}