Перейти к содержимому

Фотография

Помощь в работе selenium-grid

selenium-grid

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 27

#1 forvvard09

forvvard09

    Новый участник

  • Members
  • Pip
  • 28 сообщений


Отправлено 08 мая 2014 - 08:00

Всем дня доброго!

Помогите новичку.

Появилась необходимость запуска тестов через Jenkins+ maven, в данный момент на локальном компьютере с windows все работает тесты запускаются локально. Появилась необходимость запускать тесты в другом Jenkins+maven, который на ubunte. Так как большинство тестов предназначено для IE необходимо сделать чтобы тесты запускались jenkins'ом, который на ubunte, а сами тесты выполнялись на другом ПК с Windows, где есть IE. Как я понял это можно сделать при помощи selenium-grid. Но есть необходимость переписать тесты и заменить использования driver = new RemoteWebDriver и запуска selenium-server на ПК, где нужно запускать сами тесты. Но появилась проблема....эти тесты не отрабатывают, не могу сам понять почему, с программированием так себе. Сделал новый самый простой тест, который бы открывал страницу ya.ru в FF. Даже этот тест не запускается, хотя старт сессии на сервере виден поэтому не могу перейти к переписыванию промышленных тестов. 

Заранее спасибо!

 

package fifasoccer;
 
import java.net.URL; 
import java.util.concurrent.TimeUnit;
 
import org.openqa.selenium.Platform;
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 
import org.testng.AssertJUnit;
import org.testng.annotations.AfterClass; 
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass; 
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test; 
 
public class LoginToFifasosser {
 
 public String baseUrl;
 public RemoteWebDriver driver;
 
 
 @BeforeTest
 
  public void setUp() throws Exception {
  
      URL hubUrl = new URL("http://localhost:4444/wd/hub");
      DesiredCapabilities capabilities = new DesiredCapabilities();
      capabilities.setBrowserName("firefox");
      capabilities.setPlatform(Platform.WINDOWS);
      driver = new RemoteWebDriver(hubUrl, capabilities);
 
  baseUrl = "ya.ru";
  driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
 
}
 
 
@Test
public void RemoteTest() throws Exception {
  
 
  driver.get(baseUrl);
  
 
}
 
 
  @AfterTest
 
  public void tearDown() throws Exception {
   driver.quit();
   //driver.close();
   
   }
 
 
}
 
 
прикрепляю скрины..сес

Прикрепленные файлы

  • Прикрепленный файл  rem2.png   52,22К   1 Количество загрузок:
  • Прикрепленный файл  rem.png   276,26К   1 Количество загрузок:

  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 08 мая 2014 - 08:35

Второй скрин нечитаемый.

Версии селениума какие вы используете везде совпадают (на ноде и на хабе)?


  • 1

#3 forvvard09

forvvard09

    Новый участник

  • Members
  • Pip
  • 28 сообщений


Отправлено 08 мая 2014 - 08:52

Версия Selenium 2.39

Прикрепленные файлы

  • Прикрепленный файл  rem3.png   61,05К   0 Количество загрузок:
  • Прикрепленный файл  rem.png   285,57К   0 Количество загрузок:

  • 0

#4 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 08 мая 2014 - 09:17

Что у вас здесь?  http://localhost:4444/grid/console

т.е. то где будут выполняться тесты?

 

https://code.google....nium/wiki/Grid2   -  Step 2 сделали?


  • 1

#5 forvvard09

forvvard09

    Новый участник

  • Members
  • Pip
  • 28 сообщений


Отправлено 13 мая 2014 - 07:34

Что у вас здесь?  http://localhost:4444/grid/console

т.е. то где будут выполняться тесты?

 

https://code.google....nium/wiki/Grid2   -  Step 2 сделали?

 

 

Да, второй шаг сделал. При запуске самого теста - запускается браузер, но переход на страницу не происходит появляется ошибка.

Прикрепленные файлы

  • Прикрепленный файл  1.png   93,78К   1 Количество загрузок:
  • Прикрепленный файл  2.png   480,79К   1 Количество загрузок:
  • Прикрепленный файл  3.png   213,62К   1 Количество загрузок:

  • 0

#6 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 13 мая 2014 - 07:50

Урл должен быть полным.

 baseUrl = "http://ya.ru";


  • 1

#7 forvvard09

forvvard09

    Новый участник

  • Members
  • Pip
  • 28 сообщений


Отправлено 13 мая 2014 - 08:06

Исправил на yandex.ru.

Исход тот же. 

Прикладываю скрины.

Еще при попытке зайти на localhost:4444/grid/register при запущеных хабе и ноде ошибка (прикрепил скрby последний) может дело в этом.

Прикрепленные файлы

  • Прикрепленный файл  1.png   244,53К   0 Количество загрузок:
  • Прикрепленный файл  2.png   248,98К   0 Количество загрузок:
  • Прикрепленный файл  3.png   268,96К   0 Количество загрузок:
  • Прикрепленный файл  4.png   72,45К   0 Количество загрузок:

  • 0

#8 forvvard09

forvvard09

    Новый участник

  • Members
  • Pip
  • 28 сообщений


Отправлено 13 мая 2014 - 08:09

И еще раз код теста.

 

package fifasoccer;
 
import java.net.URL; 
import java.util.concurrent.TimeUnit;
 
import org.openqa.selenium.Platform;
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 
import org.testng.AssertJUnit;
import org.testng.annotations.AfterClass; 
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass; 
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test; 
 
public class LoginToFifasosser {
 
 public String baseUrl;
 public RemoteWebDriver driver;
 
 
 @BeforeClass
 
  public void setUp() throws Exception {
  
      URL hubUrl = new URL("http://192.168.42.33:4444/wd/hub");
      DesiredCapabilities capabilities = new DesiredCapabilities();
      capabilities.setBrowserName("firefox");
      //capabilities.setPlatform(Platform.WINDOWS);
      driver = new RemoteWebDriver(hubUrl, capabilities);
 
  baseUrl = "yandex.ru";
  driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
 
}
 
 
@Test
public void RemoteTest() throws Exception {
  
 
  driver.get(baseUrl);
  
 
}
 
 
  @AfterClass
 
  public void tearDown() throws Exception {
   //driver.quit();
   driver.close();
   
   }
 
 
}

  • 0

#9 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 13 мая 2014 - 08:14

Ещё раз.

 

Урл должен быть полным.

baseUrl = "http://ya.ru";


  • 1

#10 forvvard09

forvvard09

    Новый участник

  • Members
  • Pip
  • 28 сообщений


Отправлено 13 мая 2014 - 08:20

Да...спасибо. Заработало.


  • 0

#11 forvvard09

forvvard09

    Новый участник

  • Members
  • Pip
  • 28 сообщений


Отправлено 13 мая 2014 - 09:59

В продолжении темы не поможете запустить удаленно браузер IE.

При использовании WebDriveк локально есть переменная, где располагается драйвер    /System.setProperty("webdriver.ie.driver", "C:\\DriverForSelenium2\\32IEDriverServer.exe");/

 
public void setUp() throws Exception {
      URL hubUrl = new URL("http://localhost:4444/wd/hub");
      DesiredCapabilities capabilities = new DesiredCapabilities();
      DesiredCapabilities.internetExplorer();
      //capabilities.setBrowserName("firefox");
      capabilities.setPlatform(Platform.WINDOWS);
      System.setProperty("webdriver.ie.driver", "C:\\DriverForSelenium2\\32IEDriverServer.exe");
      driver = new RemoteWebDriver(hubUrl, capabilities);
      baseUrl = "http://yandex.ru";
      driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
 
 
помогите переделать данную конструкцию для работы IE.

 


  • 0

#12 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 13 мая 2014 - 10:13

Добавьте вручную на машине (где IE) в переменную PATH путь к 32IEDriverServer.exe, и вам не надо будет тогда ничего указывать в коде.


  • 1

#13 forvvard09

forvvard09

    Новый участник

  • Members
  • Pip
  • 28 сообщений


Отправлено 13 мая 2014 - 10:58

 @BeforeClass
 
  
 public void setUp() throws Exception {
     
URL hubUrl = new URL("http://localhost:4444/wd/hub");
DesiredCapabilities capabilities = new DesiredCapabilities();
DesiredCapabilities.internetExplorer();
capabilities.setCapability("nativeEvents",false);
driver = new RemoteWebDriver(hubUrl,capabilities);
driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
 
 }
 
Запущен драйвер, хаб и нода, IE не запускается. В чем проблема?

Прикрепленные файлы

  • Прикрепленный файл  driver.png   91,71К   0 Количество загрузок:
  • Прикрепленный файл  hub.png   142,22К   0 Количество загрузок:
  • Прикрепленный файл  node.png   219,22К   0 Количество загрузок:

  • 0

#14 forvvard09

forvvard09

    Новый участник

  • Members
  • Pip
  • 28 сообщений


Отправлено 13 мая 2014 - 11:03

Драйвер в Path добавил, проверил на WebDrivere, при запущенном драйвере, все работает.


  • 0

#15 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 13 мая 2014 - 11:09

На скрине 13 поста я не вижу чтобы вы добавили путь в драйверу.


  • 0

#16 forvvard09

forvvard09

    Новый участник

  • Members
  • Pip
  • 28 сообщений


Отправлено 13 мая 2014 - 11:24

Добавил папку, где находится драйвер. /C:\DriverForSelenium2/.

 

32IEDriverServer.exe -port 5556  - запускается из командной строки из любого места.


  • 0

#17 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 13 мая 2014 - 11:40

Переименуйте его просто в IEDriverServer.exe

И скачайте свежую версию, её переименовывать не надо.


  • 0

#18 forvvard09

forvvard09

    Новый участник

  • Members
  • Pip
  • 28 сообщений


Отправлено 13 мая 2014 - 12:26

Все сделал. Не работает. Webdriver - норм работает, теперь и без запуска IEDriver на фоне.

 

package fifasoccer;
 
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.AssertJUnit;
import org.testng.Assert;
import org.testng.annotations.Test;
 
import java.net.URL;
import java.util.concurrent.TimeUnit;
 
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.CommandExecutor;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;
import org.openqa.selenium.remote.RemoteWebDriver;
 
public class LoginToFifasosser {
 
 public String baseUrl;
 public RemoteWebDriver driver;
  
 @BeforeClass
   
 public void setUp() throws Exception {
     
URL hubUrl = new URL("http://localhost:4444/wd/hub");
DesiredCapabilities capabilities = new DesiredCapabilities();
DesiredCapabilities.internetExplorer();
capabilities.setCapability("nativeEvents",false);
driver = new RemoteWebDriver(hubUrl,capabilities);
driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
 }
 
@Test
public void RemoteTest() throws Exception {
   driver.get(baseUrl);
}
 
  @AfterClass
 
  public void tearDown() throws Exception {
   driver.quit();    
   }
}

 

 

Прикрепленные файлы

  • Прикрепленный файл  driver.png   159,7К   0 Количество загрузок:
  • Прикрепленный файл  hub.png   204,45К   0 Количество загрузок:
  • Прикрепленный файл  node.png   217,73К   0 Количество загрузок:

  • 0

#19 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 13 мая 2014 - 13:28

Вы не в cmd устанавливайте path, а руками (в свойствах компьютера).

То что вы в cmd установили - оно только на сессию распространяется.

И обновите селениум-сервер.


  • 0

#20 forvvard09

forvvard09

    Новый участник

  • Members
  • Pip
  • 28 сообщений


Отправлено 14 мая 2014 - 06:42

Все сделал, как вы сказали. Обновил selenium до последней версии 2.41.Ошибка осталась (из-за кода она изменилась, теперь видно, что не может найти драйвер для IE) не понимаю что еще сделать, может все из-за ОС Windows 8. Тесты, где используется "голый" Webdriver тесты запускаются без проблем. Драйвер определяется сам, прописывать путь до него не нужно. 

 

Немного изменил код в месте инициализации браузера.

 

package fifasoccer;
 
 
import org.testng.annotations.Test;
import java.net.URL;
 
import java.util.concurrent.TimeUnit;
 
 
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
 
import org.testng.annotations.BeforeClass;
 
import org.openqa.selenium.remote.RemoteWebDriver;
 
 
 
 
public class LoginToFifasosser {
 
 public String baseUrl;
 public RemoteWebDriver driver;
  
 @BeforeClass
   
 public void setUp() throws Exception {
     
URL hubUrl = new URL("http://localhost:4444/wd/hub");
DesiredCapabilities capability = DesiredCapabilities.internetExplorer();
 
capability.setBrowserName("internet explorer");
 
 
 
capability.setPlatform(org.openqa.selenium.Platform.WINDOWS);
DesiredCapabilities.internetExplorer();
 
 
driver = new RemoteWebDriver(hubUrl,capability);
driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
 }
 
@Test
public void RemoteTest() throws Exception {
   driver.get(baseUrl);
}
 
  @AfterClass
 
  public void tearDown() throws Exception {
   driver.quit();    
   }
}

Прикрепленные файлы

  • Прикрепленный файл  1.png   240,9К   0 Количество загрузок:
  • Прикрепленный файл  2.png   111,46К   0 Количество загрузок:
  • Прикрепленный файл  3.png   10,58К   0 Количество загрузок:

  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных