Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

[Resolved] Selenium Grid ошибка при запуске тестов


(olka) #1

Привет! Подскажите плиз, в чем проблема при запуске тестов с Selenium Grid. Вот такой пример простенького теста

    @RunWith(Parallelized.class)
  public class JUnitParallel {
private String platform;
private String browserName;
private String browserVersion;
@Parameterized.Parameters
public static LinkedList<String[]> getEnvironments() throws Exception {
    LinkedList<String[]> env = new LinkedList<String[]>();
    env.add(new String[]{Platform.MAC.toString(), "chrome", "39"});
    env.add(new String[]{Platform.MAC.toString(),"firefox","35.0"});
    env.add(new String[]{Platform.MAC.toString(),"safari","8"});
    //env.add(new String[]{Platform.MAC.toString(),"opera","12.14"});

    //add more browsers here

    return env;
}


public JUnitParallel(String platform, String browserName, String browserVersion) {
    this.platform = platform;
    this.browserName = browserName;
    this.browserVersion = browserVersion;
}

private RemoteWebDriver driver;

@Before
public void setUp() throws Exception {
    DesiredCapabilities capability = new DesiredCapabilities();
    capability.setCapability("platform", platform);
    capability.setCapability("browser", browserName);
    capability.setCapability("browserVersion", browserVersion);
   capability.setCapability("build", "JUnit-Parallel");
    driver = new RemoteWebDriver(
            new URL("http://localhost:5555/wd/hub"),
            capability
    );
}

@Test
public void testSimple() throws Exception {
    driver.get("http://www.google.com");
    String title = driver.getTitle();
    System.out.println("Page title is: " + title);
}

@After
public void tearDown() throws Exception {
    driver.quit();
}

в консоле запускаю сервер - java -jar selenium-server-standalone-2.42.2.jar -port 5555 -role hub
потом - java -jar selenium-server-standalone-2.42.2.jar -port 4544 -registerCycle 30000 -role node -hub http://localhost:5555/grid/register
при запуске тестов выдает ошибку -

org.openqa.selenium.WebDriverException: Build info: version: '2.44.0', revision: '76d78cf323ce037c5f92db6c1bba601c2ac43ad8', time: '2014-10-23 13:11:40'
System info: host: 'nb-lio.local', ip: '172.26.16.20', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.1', java.version: '1.7.0_71'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:126)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:153)
at JUnitParallel.setUp(JUnitParallel.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:24)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

на консоле, где были запущены ноды выдает:

15:23:01.860 WARN - POST /selenium-server/driver/session HTTP/1.1
java.lang.NullPointerException: sessionId should not be null; has this session been started yet?
at org.openqa.selenium.server.FrameGroupCommandQueueSet.getQueueSet(FrameGroupCommandQueueSet.java:220)
at org.openqa.selenium.server.SeleniumDriverResourceHandler.handleBrowserResponse(SeleniumDriverResourceHandler.java:187)
at org.openqa.selenium.server.SeleniumDriverResourceHandler.handle(SeleniumDriverResourceHandler.java:153)
at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1526)
at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1479)
at org.openqa.jetty.http.HttpServer.service(HttpServer.java:920)
at org.openqa.jetty.http.HttpConnection.service(HttpConnection.java:820)
at org.openqa.jetty.http.HttpConnection.handleNext(HttpConnection.java:986)
at org.openqa.jetty.http.HttpConnection.handle(HttpConnection.java:837)
at org.openqa.jetty.http.SocketListener.handleConnection(SocketListener.java:243)
at org.openqa.jetty.util.ThreadedServer.handle(ThreadedServer.java:358)
at org.openqa.jetty.util.ThreadPool$PoolThread.run(ThreadPool.java:537)

(Sergey Korol) #2

Эта тема теперь исключена из списков. Она не будет отображаться среди других тем ни на каких страницах, а единственным способом прочитать ее будет доступ по ее прямой ссылке.


(Sergey Korol) #3

Эта тема включена в списки и будет отображаться среди других тем.


(Максим Малунов) #4

я бы попробывал .

  1. на другом порте
  2. вместо localhost прописать напрямую

посмотрел как у меня в старом проэкте было
java -jar selenium-server-standalone-2.40.0.jar -role hub
подключение node
java
-jar selenium-server-standalone-2.40.0.jar -role node
-Dwebdriver.chrome.driver=E:\OMS_test\oms_testing\src\test\test_resources\chromedriver.exe
-hub http://localhost:4444/grid/register


(alexander) #5

olka, у тебя вроде все правильно.
1.А что ты видишь в http://localhost:5555/grid/console ?
2.Есть ли там Safari браузер?

Насколько я помню, в дефолтной конфигурации грида, Safari нет в списке доступных браузеров.


(olka) #6

Все запустилось, после того как поменяла порт )