Проведение испытаний селена 2 в Jenkins для определенного экземпляра селена - PullRequest
0 голосов
/ 26 июля 2011

Я пытаюсь запустить безголовые тесты от Дженкинса. Это отлично работает для тестов HTML, когда я указываю набор тестов HTML. Но теперь я хочу запустить тесты селена-2 на том же сервере селена.

Я пробовал это:

Выполнить оболочку:
export DISPLAY=":99" && java -jar /var/lib/selenium/selenium-server.jar

Но это кажется зависшим, пока я не остановил сервер вручную. Как запустить сервер селеном таким образом, чтобы мои тесты на селен RC запускались через Grails?

1 Ответ

1 голос
/ 26 июля 2011

Не существует специального метода для запуска сервера селена, который будет использоваться каким-либо конкретным языком. Когда вы запускаете сервер селен, он начинает прослушивать порт для входящих запросов. У вас должна быть строка кода внутри ваших тестов, чтобы направить ваши тесты на сервер селена. Я не знаю, Grails. В Java это будет

Selenium sel = new DefaultSelenium("host","port","browsername","baseurl")
  • > host - IP-адрес компьютера, на котором запущен сервер
  • > порт - номер порта, который прослушивает сервер селена. Это обычно 4444, если вы ничего не указали
  • > browsername-Browser, в котором вы хотите, чтобы тесты были
  • > запустить baseURL- базовый URL-адрес веб-приложения, которое необходимо протестировать.

Эквивалентный метод для этого в Grails должен заставить вас работать.

РЕДАКТИРОВАТЬ - 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();
    }
...