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 ?

Foi útil?

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();
    }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top