在Jenkins中针对某个selenium实例运行selenium 2测试

时间:2011-07-25 20:58:23

标签: java grails jenkins selenium-webdriver selenium-rc

我正试图从詹金斯那里进行无头测试。当我指定HTML测试套件时,这适用于HTML测试。但现在我想对同一个selenium服务器运行selenium-2测试。

我试过了:

执行shell:
    export DISPLAY=":99" && java -jar /var/lib/selenium/selenium-server.jar

但这似乎是挂起的,直到我手动停止服务器。如何以通过grails调用我的selenium RC测试的方式启动selenium服务器?

1 个答案:

答案 0 :(得分:1)

没有特殊方法可以“启动”任何特定语言使用的selenium服务器。启动selenium服务器时,它将开始在端口上侦听传入请求。您应该在测试中使用一行代码将测试指向selenium服务器。我不知道grails。在java中它将是

Selenium sel = new DefaultSelenium("host","port","browsername","baseurl")
  • > host - 启动服务器的计算机的IP
  • > port - selenium服务器正在侦听的端口号。这是 如果你没有指定任何东西,通常是4444
  • > browsername-您希望测试的浏览器
  • >运行您需要测试的Web应用程序的baseURL-基本URL。

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();
    }