Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Паралельний запуск
автоматизованих тестів за
допомогою Selenium Grid
Яна Кокряшкіна
QA Team Lead
yana.thinkmobiles yana.gusti@thinkmobiles.com
Київ 2016
Grid. Що це таке? Київ 2016
Як він працює?
Selenium Grid складається з двох частин:
1. Є центральний сервер (hub)
2. До якого підключені вузли (node)....
Налаштування
Для Hub:
• Download Selenium Standalone Server
Для Node:
• Download Selenium Standalone Server
• Download dri...
Запуск
• Запускаємо Hub:
java -jar selenium-server-standalone-<version>.jar -role hub
Київ 2016
INFO - Launching Selenium ...
Запуск
• Запускаємо Node:
java -jar selenium-server-standalone-<version>.jar -role node -hub
http://<hub address>:<hub por...
Результат підключення вузла - Grid Console
Київ 2016
XML файл для запуску тестів у заданих браузерах
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://test...
Підключення відповідних браузерів
@BeforeTest
//Parameter will get browser from testng.xml on which browser test to run
@P...
Метод з описом кроків тесту
Метод для запуску тестів
public void login(String _login, String _password, RemoteWebDriver dr...
Структура проекту Київ 2016
DEMO
Додаткові можливості
• Jenkins
• Mobile testing -
IOS/Android
Київ 2016
Дякую за Увагу! Київ 2016
Upcoming SlideShare
Loading in …5
×

QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за допомогою Selenium Grid

439 views

Published on

У доповіді розповідається про те, як пришвидшити час проходження автоматизованих тестів та виконати їх у різних браузерах одночасно. Використання такого підходу корисне ще у якості навантажувального тесту, адже симулюються дії великої кількості користувачів в той самий період часу. Виникали труднощі при налаштуванні такої мережі? В доповіді я покажу реальні робочі налаштування.

Published in: Education
  • Be the first to comment

  • Be the first to like this

QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за допомогою Selenium Grid

  1. 1. Паралельний запуск автоматизованих тестів за допомогою Selenium Grid
  2. 2. Яна Кокряшкіна QA Team Lead yana.thinkmobiles yana.gusti@thinkmobiles.com Київ 2016
  3. 3. Grid. Що це таке? Київ 2016
  4. 4. Як він працює? Selenium Grid складається з двох частин: 1. Є центральний сервер (hub) 2. До якого підключені вузли (node). Київ 2016
  5. 5. Налаштування Для Hub: • Download Selenium Standalone Server Для Node: • Download Selenium Standalone Server • Download drivers for browsers (Google Chrome, IE, Edge ) Київ 2016
  6. 6. Запуск • Запускаємо Hub: java -jar selenium-server-standalone-<version>.jar -role hub Київ 2016 INFO - Launching Selenium Grid hub INFO:: main: Logging initialized @9930ms INFO - Will listen on 4444 INFO - Will listen on 444 INFO: osjs.Server:main: jetty-9.2.z-SNAPSHOT INFO: osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@1d371b2d{/,null,AVAILABLE} INFO: osjs.ServerConnector:main: Started ServerConnector@5d92f634{HTTP/1.1}{0.0.0.0:4444} INFO: osjs.Server:main: Started @10657ms INFO - Nodes should register to http://192.168.88.150:4444/grid/register/ INFO - Selenium Grid hub is up and running
  7. 7. Запуск • Запускаємо Node: java -jar selenium-server-standalone-<version>.jar -role node -hub http://<hub address>:<hub port>/grid/register -port <node port> Київ 2016 INFO - Launching a Selenium Grid node INFO - Java: Oracle Corporation 25.91-b14 INFO - OS: Windows 7 6.1 amd64 INFO - Selenium Grid node is up and ready to register to the hub INFO - Starting auto registration thread. Will try to register every 5000 ms. INFO - Registering the node to the hub: http://192.168.88.150:4444/grid/register INFO - The node is registered to the hub and ready to use
  8. 8. Результат підключення вузла - Grid Console Київ 2016
  9. 9. XML файл для запуску тестів у заданих браузерах <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="ScheduleBusTest" parallel="tests" thread-count="5"> <test name= "LoginFirefox" parallel="true"> <parameter name="myBrowser" value="firefox" /> <classes> <class name="Tests.LoginPositive"/> </classes> </test> <test name=“LoginChrome" parallel="true"> <parameter name="myBrowser" value="chrome" /> <classes> <class name="Tests.LoginNegative"/> </classes> </test> <test name=“LoginInternetExplorer“ parallel="true"> <parameter name="myBrowser" value="internet explorer" /> <classes> <class name="Tests.LoginPositive"/> </classes> </test> </suite> Київ 2016
  10. 10. Підключення відповідних браузерів @BeforeTest //Parameter will get browser from testng.xml on which browser test to run @Parameters("myBrowser") public void beforeClass(String myBrowser) throws MalformedURLException { DesiredCapabilities capability = null; switch (myBrowser){ case "chrome": capability = new DesiredCapabilities().chrome(); capability.setBrowserName("chrome"); break; case "firefox": capability = new DesiredCapabilities().firefox(); capability.setBrowserName("firefox"); break; case "internet explorer": capability = new DesiredCapabilities().internetExplorer(); capability.setBrowserName("internet explorer"); default: break; } capability.setPlatform(Platform.WINDOWS); driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability); driver.get(baseUrl); } Київ 2016
  11. 11. Метод з описом кроків тесту Метод для запуску тестів public void login(String _login, String _password, RemoteWebDriver driver) throws InterruptedException { userName = driver.findElement(By.id("ulogin")); password = driver.findElement(By.id("upass")); userName.sendKeys(_login); password.sendKeys(_password); loginButton = driver.findElement(By.xpath(".//*[@id='loginForm']/fieldset/a")); loginButton.click(); } @Test() public void LoginNegative () throws InterruptedException, IOException { LoginPage loginPage = new LoginPage(); String username = “abc”; String pass = “abc”; loginPage.login(username, pass, driver); assertEquals("Incorrect login or password", getDriver().findElement(By.cssSelector("div.error")).getText()); } Київ 2016
  12. 12. Структура проекту Київ 2016
  13. 13. DEMO
  14. 14. Додаткові можливості • Jenkins • Mobile testing - IOS/Android Київ 2016
  15. 15. Дякую за Увагу! Київ 2016

×