SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Тема доклада
Тема доклада
Тема доклада
KYIV 2019
Web and Mobile Testing with
Selenium,JUnit 5,and Docker
QA CONFERENCE#1 IN UKRAINE
Boni García
boni.garcia@urjc.es
Web and Mobile Testing with Selenium, JUnit 5, and Docker
Boni García
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Assistant Professor at KingJuan CarlosUniversity
(URJC) in Spain
● Author of 35+ research papersin different journals,
magazines,international conferences,and the book
MasteringSoftware Testingwith JUnit 5
● Maintainer of different open source projects,such as
WebDriverManager,Selenium-Jupiter,or DualSub
2
http://bonigarcia.github.io/
Web and Mobile Testing with Selenium, JUnit 5, and Docker
Table of contents
QA CONFERENCE#1 IN UKRAINE KYIV 2019
1. Background
• Selenium
• JUnit
• Docker
2. Selenium-Jupiter
3. Final remarksand future work
3
Web and Mobile Testing with Selenium, JUnit 5, and Docker
1.Background - Selenium
QA CONFERENCE#1 IN UKRAINE KYIV 2019
4
Selenium bindings
...
Browsers
JSON Wire
protocol /
W3C
WebDriver
Browser
specific calls
Browser drivers
chromedriver
geckodriver
msedgedriver
...
operadriver ...
● Selenium isafamily of projectsfor automated testingwith browsers
○ WebDriver allowsto control web browsersprogrammatically
https://seleniumhq.github.io/docs/site/en/webdriver/
Web and Mobile Testing with Selenium, JUnit 5, and Docker
1.Background - Selenium
QA CONFERENCE#1 IN UKRAINE KYIV 2019
5
Selenium bindings
...
Node 1 (Chrome)
Hub
(Selenium
Server)
chromedriver
Node 2 (Firefox)
geckodriver
Node N (Edge)
msedgedriver
...
https://seleniumhq.github.io/docs/site/en/grid/
○ Grid allowsto drive web browsersin
parallel hosted on remote machines:
JSON Wire
protocol /
W3C
WebDriver
JSON Wire
protocol /
W3C
WebDriver
Web and Mobile Testing with Selenium, JUnit 5, and Docker
1.Background - JUnit
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● JUnit isthe most popular testingframework for Java
and can be used to implement different typesof
tests(unit,integration,end-to-end,…)
● JUnit 5 (first GA released on September 2017)
providesabrand-new programmingan extension
model called Jupiter
https://junit.org/junit5/docs/current/user-guide/
6
Web and Mobile Testing with Selenium, JUnit 5, and Docker
1.Background - JUnit
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● The extension model of Jupiter
allowsto add custom featuresto the
programmingmodel:
○ Dependency injection in test
methodsand constructors
○ Custom logic in the test lifecycle
○ Test templates
7
Very convenient for Selenium!
Web and Mobile Testing with Selenium, JUnit 5, and Docker
1.Background - Docker
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Docker isasoftware technology which
allowsto pack and run any application as
alightweight and portablecontainer
● The Docker platform hastwo main
components: the Docker Engine,to create
and execute containers;and the Docker
Hub (https://hub.docker.com/),acloud
service for distributingcontainers
8
https://www.docker.com/
Web and Mobile Testing with Selenium, JUnit 5, and Docker
Table of contents
QA CONFERENCE#1 IN UKRAINE KYIV 2019
1. Background
2. Selenium-Jupiter
• Motivation
• Setup
• Local browsers
• Remote browsers
• Docker browsers
• Test templates
• Integration with Jenkins
• Beyond Java
3. Final remarksand future work
9
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Motivation
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Selenium-Jupiter isaJUnit 5 extension aimed to ease the use of
Selenium and Appium from Javatests
10
https://bonigarcia.github.io/selenium-jupiter/
Clean test code (reduced boilerplate)
EffortlessDocker integration (web
browsersand Android devices)
Advanced featuresfor tests
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Setup
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Selenium-Jupiter can be included in aJavaproject asfollows:
11
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>selenium-jupiter</artifactId>
<version>3.3.1</version>
<scope>test</scope>
</dependency>
dependencies {
testCompile("io.github.bonigarcia:selenium-jupiter:3.3.1")
}
Usingthe latest version is
always recommended!
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Setup
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Source code: https://github.com/bonigarcia/selenium-jupiter
● Documentation: https://bonigarcia.github.io/selenium-jupiter/
● Examples: https://github.com/bonigarcia/selenium-jupiter-examples
12
Requirementsto run these examples:
• Java
• Maven/Gradle (alternatively some IDE)
• Docker Engine
• Linux (only required when running Android in Docker)
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Local browsers
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● JUnit 4 and Selenium JUnit 5 and Selenium-Jupiter:
13
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Local browsers
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Selenium-Jupiter usesJUnit 5’s
dependency injection
14
@ExtendWith(SeleniumExtension.class)
class SeleniumJupiterTest {
@Test
void test(ChromeDriver chromeDriver) {
// Use Chrome in this test
}
}
Valid types: ChromeDriver,
FirefoxDriver, OperaDriver,
SafariDriver, EdgeDriver,
InternetExplorerDriver,
HtmlUnitDriver, PhantomJSDriver,
AppiumDriver, SelenideDriver
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Local browsers
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Seamlessintegration
with Selenide (fluent
API for Selenium in
Java)
15
@ExtendWith(SeleniumExtension.class)
class SelenideDefaultTest {
@Test
void testWithSelenideAndChrome(SelenideDriver driver) {
driver.open(
"https://bonigarcia.github.io/selenium-jupiter/");
SelenideElement about = driver.$(linkText("About"));
about.shouldBe(visible);
about.click();
}
}https://selenide.org/
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Local browsers
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Use case: WebRTCapplications(real-time communicationsusingweb
browsers)
○ We need to specify optionsfor browsers:
16
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Local browsers
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Use case: reuse same browser by different tests
○ Convenient for ordered tests(JUnit 5 new feature)
17
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Remote browsers
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Selenium-Jupiter providesthe annotations@DriverUrl and
@DriverCapabilities to control remote browsers and mobiles, e.g.:
18
https://saucelabs.com/ http://appium.io/
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Docker browsers
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Selenium-Jupiter providesseamlessintegration with Docker using
the annotation @DockerBrowser:
○ Chrome, Firefox, and Opera:
■ Docker images for stable versions are maintained by Aerokube
■ Beta and unstable (Chrome and Firefox) are maintained by ElasTest
○ Edge and Internet Explorer:
■ Due to license, these Docker images are not hosted in Docker Hub
■ It can be built following a tutorial provided by Aerokube
○ Android devices:
■ Docker images for Android (docker-android project) by Budi Utomo
19
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Docker browsers
QA CONFERENCE#1 IN UKRAINE KYIV 2019
20
@ExtendWith(SeleniumExtension.class)
class DockerBasicTest {
@Test
void testFirefoxBeta(
@DockerBrowser(type = FIREFOX, version = "beta") RemoteWebDriver driver) {
driver.get("https://bonigarcia.github.io/selenium-jupiter/");
assertThat(driver.getTitle(),
containsString("JUnit 5 extension for Selenium"));
}
}
Supported browser types are: CHROME, FIREFOX,
OPERA, EDGE , IEXPLORER and ANDROID
If version is not specified, the latest container version in Docker
Hub is pulled. This parameter allows fixed versions and also the
special values: latest, latest-*, beta, and unstable
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Docker browsers
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● The use of Docker enablesarich number of features:
○ Remote session accesswith VNC
○ Session recordings
○ Performance tests
21
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Docker browsers
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● The possibleAndroid setup optionsare the following:
22
Android
version
API
level
Browser
name
5.0.1 21 browser
5.1.1 22 browser
6.0 23 chrome
7.0 24 chrome
7.1.1 25 chrome
8.0 26 chrome
8.1 27 chrome
9.0 28 chrome
Type Device name
Phone SamsungGalaxy S6
Phone Nexus4
Phone Nexus5
Phone NexusOne
Phone NexusS
Tablet Nexus7
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Test templates
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Selenium-Jupiter use the JUnit 5’ssupport for test templates
23
@ExtendWith(SeleniumExtension.class)
public class TemplateTest {
@TestTemplate
void templateTest(WebDriver driver) {
// test
}
}
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Integration with Jenkins
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Seamlessintegration with Jenkins
through the Jenkinsattachment plugin
● It allowsto attach output filesin tests
(e.g.PNGscreenshotsand MP4
recordings)in the JenkinsGUI
● For example:
24
$ mvn clean test -Dtest=DockerRecordingTest 
-Dsel.jup.recording=true 
-Dsel.jup.screenshot.at.the.end.of.tests=true 
-Dsel.jup.screenshot.format=png 
-Dsel.jup.output.folder=surefire-reports
Web and Mobile Testing with Selenium, JUnit 5, and Docker
2.Selenium-Jupiter - Beyond Java
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Selenium-Jupiter can be also used:
1. AsCLI (Command Line Interface) tool:
2. Asaserver (usingaREST-like API):
25
$ java -jar selenium-jupiter-3.3.1-fat.jar chrome unstable
[INFO] Using Selenium-Jupiter to execute chrome unstable in Docker
...
Selenium-Jupiter allows to
control Docker browsers through
VNC (manual testing)
$ java -jar webdrivermanager-3.3.1-fat.jar server
[INFO] Selenium-Jupiter server listening on http://localhost:4042/wd/hub
Selenium-Jupiter becomes into
a Selenium Server (Hub)
Web and Mobile Testing with Selenium, JUnit 5, and Docker
Table of contents
QA CONFERENCE#1 IN UKRAINE KYIV 2019
1. Background
2. Selenium-Jupiter
3. Final remarksand future work
26
Web and Mobile Testing with Selenium, JUnit 5, and Docker
3.Final remarksand future work
QA CONFERENCE#1 IN UKRAINE KYIV 2019
● Selenium-Jupiter hasanother featuressuch as:
○ Configurable screenshotsat the end of test (asPNG image or Base64)
○ Integration with Genymotion (cloud provider for Android devices)
○ Generic driver (configurable type of browser)
○ Mappingvolumesin Docker containers
○ Accessto Docker client to manage custom containers
● Selenium-Jupiter isin constant development.Itsroadmap includes:
○ Implement a browser console (JavaScript log) gathering mechanism
○ Improve test template support (e.g.specifyingoptions)
○ Improve scalability for performance tests(e.g.using Kubernetes)
27
Тема доклада
Тема доклада
Тема доклада
KYIV 2019
Web and Mobile Testing with
Selenium,JUnit 5,and Docker
QA CONFERENCE#1 IN UKRAINE
Thank you very much!
Boni García
boni.garcia@urjc.es

Weitere ähnliche Inhalte

Was ist angesagt?

Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Weaveworks
 
Continuous Integration on my work
Continuous Integration on my workContinuous Integration on my work
Continuous Integration on my work
Mu Chun Wang
 

Was ist angesagt? (20)

JavaOne 2016: The Deploy Master: From Basic to Zero Downtime, Blue/Green, A/B...
JavaOne 2016: The Deploy Master: From Basic to Zero Downtime, Blue/Green, A/B...JavaOne 2016: The Deploy Master: From Basic to Zero Downtime, Blue/Green, A/B...
JavaOne 2016: The Deploy Master: From Basic to Zero Downtime, Blue/Green, A/B...
 
DevOps Indonesia #5 - The Future of Containers
DevOps Indonesia #5 - The Future of ContainersDevOps Indonesia #5 - The Future of Containers
DevOps Indonesia #5 - The Future of Containers
 
はじめての JFrog Xray
はじめての JFrog Xrayはじめての JFrog Xray
はじめての JFrog Xray
 
Docs or it didn’t happen
Docs or it didn’t happenDocs or it didn’t happen
Docs or it didn’t happen
 
Docker, what's next ?
Docker, what's next ?Docker, what's next ?
Docker, what's next ?
 
不只自動化而且更敏捷的Android開發工具 gradle mopcon
不只自動化而且更敏捷的Android開發工具 gradle mopcon不只自動化而且更敏捷的Android開發工具 gradle mopcon
不只自動化而且更敏捷的Android開發工具 gradle mopcon
 
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
 
Writing Commits for You, Your Friends, and Your Future Self
Writing Commits for You, Your Friends, and Your Future SelfWriting Commits for You, Your Friends, and Your Future Self
Writing Commits for You, Your Friends, and Your Future Self
 
Continuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL ServerContinuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL Server
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1
 
JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with Docker
 
How we can do Multi-Tenancy on Kubernetes
How we can do Multi-Tenancy on KubernetesHow we can do Multi-Tenancy on Kubernetes
How we can do Multi-Tenancy on Kubernetes
 
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...
 
Drone Continuous Integration
Drone Continuous IntegrationDrone Continuous Integration
Drone Continuous Integration
 
Automating the Quality
Automating the QualityAutomating the Quality
Automating the Quality
 
The Virtual Git Summit - Subversion to Git - A Sugar Story
The Virtual Git Summit - Subversion to Git - A Sugar StoryThe Virtual Git Summit - Subversion to Git - A Sugar Story
The Virtual Git Summit - Subversion to Git - A Sugar Story
 
Continuous Integration on my work
Continuous Integration on my workContinuous Integration on my work
Continuous Integration on my work
 
Go for Operations
Go for OperationsGo for Operations
Go for Operations
 
Building Jenkins Pipelines at Scale
Building Jenkins Pipelines at ScaleBuilding Jenkins Pipelines at Scale
Building Jenkins Pipelines at Scale
 
Continuous (Non)-Functional Testing of Microservices on k8s
Continuous (Non)-Functional Testing of Microservices on k8s Continuous (Non)-Functional Testing of Microservices on k8s
Continuous (Non)-Functional Testing of Microservices on k8s
 

Ähnlich wie QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and Docker

watir-webdriver
watir-webdriverwatir-webdriver
watir-webdriver
Amit DEWAN
 
Empowering Selenium Tests with JUnit 5 Integration.pdf
Empowering Selenium Tests with JUnit 5 Integration.pdfEmpowering Selenium Tests with JUnit 5 Integration.pdf
Empowering Selenium Tests with JUnit 5 Integration.pdf
AnanthReddy38
 
EUSummaryCV-QAEngineer-MaximVasilchuk
EUSummaryCV-QAEngineer-MaximVasilchukEUSummaryCV-QAEngineer-MaximVasilchuk
EUSummaryCV-QAEngineer-MaximVasilchuk
Max Vasilchuk
 
Your Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at ScaleYour Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at Scale
Sauce Labs
 

Ähnlich wie QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and Docker (20)

Mobile Test Automation using one API and one infrastructure
Mobile Test Automation using one API and one infrastructureMobile Test Automation using one API and one infrastructure
Mobile Test Automation using one API and one infrastructure
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?
 
ETICS supporting compliance and interoperability, Gabriele Giammatteo, Engine...
ETICS supporting compliance and interoperability, Gabriele Giammatteo, Engine...ETICS supporting compliance and interoperability, Gabriele Giammatteo, Engine...
ETICS supporting compliance and interoperability, Gabriele Giammatteo, Engine...
 
vodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in TestingvodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in Testing
 
watir-webdriver
watir-webdriverwatir-webdriver
watir-webdriver
 
test_automation_POC
test_automation_POCtest_automation_POC
test_automation_POC
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript Testing
 
Redefining Mobile App Testing pCloudy’s Comprehensive Framework Arsenal.pdf
Redefining Mobile App Testing pCloudy’s Comprehensive Framework Arsenal.pdfRedefining Mobile App Testing pCloudy’s Comprehensive Framework Arsenal.pdf
Redefining Mobile App Testing pCloudy’s Comprehensive Framework Arsenal.pdf
 
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdfFront-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
 
Empowering Selenium Tests with JUnit 5 Integration.pdf
Empowering Selenium Tests with JUnit 5 Integration.pdfEmpowering Selenium Tests with JUnit 5 Integration.pdf
Empowering Selenium Tests with JUnit 5 Integration.pdf
 
Getting Started with Android Development
Getting Started with Android DevelopmentGetting Started with Android Development
Getting Started with Android Development
 
EUSummaryCV-QAEngineer-MaximVasilchuk
EUSummaryCV-QAEngineer-MaximVasilchukEUSummaryCV-QAEngineer-MaximVasilchuk
EUSummaryCV-QAEngineer-MaximVasilchuk
 
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019
 
Your Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at ScaleYour Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at Scale
 
Automated Testing in DevOps
Automated Testing in DevOpsAutomated Testing in DevOps
Automated Testing in DevOps
 
Run your Appium tests using Docker Android - AppiumConf 2019
Run your Appium tests using Docker Android - AppiumConf 2019Run your Appium tests using Docker Android - AppiumConf 2019
Run your Appium tests using Docker Android - AppiumConf 2019
 
Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015
 
Pdx Se Intro To Se
Pdx Se Intro To SePdx Se Intro To Se
Pdx Se Intro To Se
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
 
Test Inside Containers: Dockerise Appium Tests
Test Inside Containers: Dockerise Appium TestsTest Inside Containers: Dockerise Appium Tests
Test Inside Containers: Dockerise Appium Tests
 

Mehr von QAFest

QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QAFest
 
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QAFest
 

Mehr von QAFest (20)

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
 
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
 
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
 
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
 
QA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать больше
 
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
 
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгораниемQA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
 
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
 
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
 
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
 
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
 
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
 
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automationQA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
 
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
 
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
 
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
 
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложенииQA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
 
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
 
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
 
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
 

Kürzlich hochgeladen

1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
MateoGardella
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
PECB
 

Kürzlich hochgeladen (20)

Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 

QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and Docker

  • 1. Тема доклада Тема доклада Тема доклада KYIV 2019 Web and Mobile Testing with Selenium,JUnit 5,and Docker QA CONFERENCE#1 IN UKRAINE Boni García boni.garcia@urjc.es
  • 2. Web and Mobile Testing with Selenium, JUnit 5, and Docker Boni García QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Assistant Professor at KingJuan CarlosUniversity (URJC) in Spain ● Author of 35+ research papersin different journals, magazines,international conferences,and the book MasteringSoftware Testingwith JUnit 5 ● Maintainer of different open source projects,such as WebDriverManager,Selenium-Jupiter,or DualSub 2 http://bonigarcia.github.io/
  • 3. Web and Mobile Testing with Selenium, JUnit 5, and Docker Table of contents QA CONFERENCE#1 IN UKRAINE KYIV 2019 1. Background • Selenium • JUnit • Docker 2. Selenium-Jupiter 3. Final remarksand future work 3
  • 4. Web and Mobile Testing with Selenium, JUnit 5, and Docker 1.Background - Selenium QA CONFERENCE#1 IN UKRAINE KYIV 2019 4 Selenium bindings ... Browsers JSON Wire protocol / W3C WebDriver Browser specific calls Browser drivers chromedriver geckodriver msedgedriver ... operadriver ... ● Selenium isafamily of projectsfor automated testingwith browsers ○ WebDriver allowsto control web browsersprogrammatically https://seleniumhq.github.io/docs/site/en/webdriver/
  • 5. Web and Mobile Testing with Selenium, JUnit 5, and Docker 1.Background - Selenium QA CONFERENCE#1 IN UKRAINE KYIV 2019 5 Selenium bindings ... Node 1 (Chrome) Hub (Selenium Server) chromedriver Node 2 (Firefox) geckodriver Node N (Edge) msedgedriver ... https://seleniumhq.github.io/docs/site/en/grid/ ○ Grid allowsto drive web browsersin parallel hosted on remote machines: JSON Wire protocol / W3C WebDriver JSON Wire protocol / W3C WebDriver
  • 6. Web and Mobile Testing with Selenium, JUnit 5, and Docker 1.Background - JUnit QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● JUnit isthe most popular testingframework for Java and can be used to implement different typesof tests(unit,integration,end-to-end,…) ● JUnit 5 (first GA released on September 2017) providesabrand-new programmingan extension model called Jupiter https://junit.org/junit5/docs/current/user-guide/ 6
  • 7. Web and Mobile Testing with Selenium, JUnit 5, and Docker 1.Background - JUnit QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● The extension model of Jupiter allowsto add custom featuresto the programmingmodel: ○ Dependency injection in test methodsand constructors ○ Custom logic in the test lifecycle ○ Test templates 7 Very convenient for Selenium!
  • 8. Web and Mobile Testing with Selenium, JUnit 5, and Docker 1.Background - Docker QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Docker isasoftware technology which allowsto pack and run any application as alightweight and portablecontainer ● The Docker platform hastwo main components: the Docker Engine,to create and execute containers;and the Docker Hub (https://hub.docker.com/),acloud service for distributingcontainers 8 https://www.docker.com/
  • 9. Web and Mobile Testing with Selenium, JUnit 5, and Docker Table of contents QA CONFERENCE#1 IN UKRAINE KYIV 2019 1. Background 2. Selenium-Jupiter • Motivation • Setup • Local browsers • Remote browsers • Docker browsers • Test templates • Integration with Jenkins • Beyond Java 3. Final remarksand future work 9
  • 10. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Motivation QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Selenium-Jupiter isaJUnit 5 extension aimed to ease the use of Selenium and Appium from Javatests 10 https://bonigarcia.github.io/selenium-jupiter/ Clean test code (reduced boilerplate) EffortlessDocker integration (web browsersand Android devices) Advanced featuresfor tests
  • 11. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Setup QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Selenium-Jupiter can be included in aJavaproject asfollows: 11 <dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>selenium-jupiter</artifactId> <version>3.3.1</version> <scope>test</scope> </dependency> dependencies { testCompile("io.github.bonigarcia:selenium-jupiter:3.3.1") } Usingthe latest version is always recommended!
  • 12. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Setup QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Source code: https://github.com/bonigarcia/selenium-jupiter ● Documentation: https://bonigarcia.github.io/selenium-jupiter/ ● Examples: https://github.com/bonigarcia/selenium-jupiter-examples 12 Requirementsto run these examples: • Java • Maven/Gradle (alternatively some IDE) • Docker Engine • Linux (only required when running Android in Docker)
  • 13. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Local browsers QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● JUnit 4 and Selenium JUnit 5 and Selenium-Jupiter: 13
  • 14. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Local browsers QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Selenium-Jupiter usesJUnit 5’s dependency injection 14 @ExtendWith(SeleniumExtension.class) class SeleniumJupiterTest { @Test void test(ChromeDriver chromeDriver) { // Use Chrome in this test } } Valid types: ChromeDriver, FirefoxDriver, OperaDriver, SafariDriver, EdgeDriver, InternetExplorerDriver, HtmlUnitDriver, PhantomJSDriver, AppiumDriver, SelenideDriver
  • 15. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Local browsers QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Seamlessintegration with Selenide (fluent API for Selenium in Java) 15 @ExtendWith(SeleniumExtension.class) class SelenideDefaultTest { @Test void testWithSelenideAndChrome(SelenideDriver driver) { driver.open( "https://bonigarcia.github.io/selenium-jupiter/"); SelenideElement about = driver.$(linkText("About")); about.shouldBe(visible); about.click(); } }https://selenide.org/
  • 16. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Local browsers QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Use case: WebRTCapplications(real-time communicationsusingweb browsers) ○ We need to specify optionsfor browsers: 16
  • 17. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Local browsers QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Use case: reuse same browser by different tests ○ Convenient for ordered tests(JUnit 5 new feature) 17
  • 18. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Remote browsers QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Selenium-Jupiter providesthe annotations@DriverUrl and @DriverCapabilities to control remote browsers and mobiles, e.g.: 18 https://saucelabs.com/ http://appium.io/
  • 19. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Docker browsers QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Selenium-Jupiter providesseamlessintegration with Docker using the annotation @DockerBrowser: ○ Chrome, Firefox, and Opera: ■ Docker images for stable versions are maintained by Aerokube ■ Beta and unstable (Chrome and Firefox) are maintained by ElasTest ○ Edge and Internet Explorer: ■ Due to license, these Docker images are not hosted in Docker Hub ■ It can be built following a tutorial provided by Aerokube ○ Android devices: ■ Docker images for Android (docker-android project) by Budi Utomo 19
  • 20. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Docker browsers QA CONFERENCE#1 IN UKRAINE KYIV 2019 20 @ExtendWith(SeleniumExtension.class) class DockerBasicTest { @Test void testFirefoxBeta( @DockerBrowser(type = FIREFOX, version = "beta") RemoteWebDriver driver) { driver.get("https://bonigarcia.github.io/selenium-jupiter/"); assertThat(driver.getTitle(), containsString("JUnit 5 extension for Selenium")); } } Supported browser types are: CHROME, FIREFOX, OPERA, EDGE , IEXPLORER and ANDROID If version is not specified, the latest container version in Docker Hub is pulled. This parameter allows fixed versions and also the special values: latest, latest-*, beta, and unstable
  • 21. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Docker browsers QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● The use of Docker enablesarich number of features: ○ Remote session accesswith VNC ○ Session recordings ○ Performance tests 21
  • 22. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Docker browsers QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● The possibleAndroid setup optionsare the following: 22 Android version API level Browser name 5.0.1 21 browser 5.1.1 22 browser 6.0 23 chrome 7.0 24 chrome 7.1.1 25 chrome 8.0 26 chrome 8.1 27 chrome 9.0 28 chrome Type Device name Phone SamsungGalaxy S6 Phone Nexus4 Phone Nexus5 Phone NexusOne Phone NexusS Tablet Nexus7
  • 23. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Test templates QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Selenium-Jupiter use the JUnit 5’ssupport for test templates 23 @ExtendWith(SeleniumExtension.class) public class TemplateTest { @TestTemplate void templateTest(WebDriver driver) { // test } }
  • 24. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Integration with Jenkins QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Seamlessintegration with Jenkins through the Jenkinsattachment plugin ● It allowsto attach output filesin tests (e.g.PNGscreenshotsand MP4 recordings)in the JenkinsGUI ● For example: 24 $ mvn clean test -Dtest=DockerRecordingTest -Dsel.jup.recording=true -Dsel.jup.screenshot.at.the.end.of.tests=true -Dsel.jup.screenshot.format=png -Dsel.jup.output.folder=surefire-reports
  • 25. Web and Mobile Testing with Selenium, JUnit 5, and Docker 2.Selenium-Jupiter - Beyond Java QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Selenium-Jupiter can be also used: 1. AsCLI (Command Line Interface) tool: 2. Asaserver (usingaREST-like API): 25 $ java -jar selenium-jupiter-3.3.1-fat.jar chrome unstable [INFO] Using Selenium-Jupiter to execute chrome unstable in Docker ... Selenium-Jupiter allows to control Docker browsers through VNC (manual testing) $ java -jar webdrivermanager-3.3.1-fat.jar server [INFO] Selenium-Jupiter server listening on http://localhost:4042/wd/hub Selenium-Jupiter becomes into a Selenium Server (Hub)
  • 26. Web and Mobile Testing with Selenium, JUnit 5, and Docker Table of contents QA CONFERENCE#1 IN UKRAINE KYIV 2019 1. Background 2. Selenium-Jupiter 3. Final remarksand future work 26
  • 27. Web and Mobile Testing with Selenium, JUnit 5, and Docker 3.Final remarksand future work QA CONFERENCE#1 IN UKRAINE KYIV 2019 ● Selenium-Jupiter hasanother featuressuch as: ○ Configurable screenshotsat the end of test (asPNG image or Base64) ○ Integration with Genymotion (cloud provider for Android devices) ○ Generic driver (configurable type of browser) ○ Mappingvolumesin Docker containers ○ Accessto Docker client to manage custom containers ● Selenium-Jupiter isin constant development.Itsroadmap includes: ○ Implement a browser console (JavaScript log) gathering mechanism ○ Improve test template support (e.g.specifyingoptions) ○ Improve scalability for performance tests(e.g.using Kubernetes) 27
  • 28. Тема доклада Тема доклада Тема доклада KYIV 2019 Web and Mobile Testing with Selenium,JUnit 5,and Docker QA CONFERENCE#1 IN UKRAINE Thank you very much! Boni García boni.garcia@urjc.es