Advertisement

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

QAFest
Oct. 10, 2016
Advertisement

More Related Content

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

More from QAFest(20)

Advertisement

Recently uploaded(20)

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

  1. Паралельний запуск автоматизованих тестів за допомогою Selenium Grid
  2. Яна Кокряшкіна QA Team Lead yana.thinkmobiles yana.gusti@thinkmobiles.com Київ 2016
  3. Grid. Що це таке? Київ 2016
  4. Як він працює? Selenium Grid складається з двох частин: 1. Є центральний сервер (hub) 2. До якого підключені вузли (node). Київ 2016
  5. Налаштування Для Hub: • Download Selenium Standalone Server Для Node: • Download Selenium Standalone Server • Download drivers for browsers (Google Chrome, IE, Edge ) Київ 2016
  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. Запуск • Запускаємо 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. Результат підключення вузла - Grid Console Київ 2016
  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. Підключення відповідних браузерів @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. Метод з описом кроків тесту Метод для запуску тестів 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. Структура проекту Київ 2016
  13. DEMO
  14. Додаткові можливості • Jenkins • Mobile testing - IOS/Android Київ 2016
  15. Дякую за Увагу! Київ 2016
Advertisement