SlideShare a Scribd company logo
Тема доклада
Тема доклада
Тема доклада
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

More Related Content

What's hot

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...
Rafael Benevides
 
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
DevOps Indonesia
 
はじめての JFrog Xray
はじめての JFrog Xrayはじめての JFrog Xray
はじめての JFrog Xray
Tsuyoshi Miyake
 
Docs or it didn’t happen
Docs or it didn’t happenDocs or it didn’t happen
Docs or it didn’t happen
All Things Open
 
Docker, what's next ?
Docker, what's next ?Docker, what's next ?
Docker, what's next ?
DevOps Indonesia
 
不只自動化而且更敏捷的Android開發工具 gradle mopcon
不只自動化而且更敏捷的Android開發工具 gradle mopcon不只自動化而且更敏捷的Android開發工具 gradle mopcon
不只自動化而且更敏捷的Android開發工具 gradle mopcon
sam chiu
 
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
 
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
All Things Open
 
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
Chris Adkin
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1
Rubens Dos Santos Filho
 
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
CloudBees
 
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
Opsta
 
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...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Drone Continuous Integration
Drone Continuous IntegrationDrone Continuous Integration
Drone Continuous Integration
Daniel Cerecedo
 
Automating the Quality
Automating the QualityAutomating the Quality
Automating the Quality
Dejan Vukmirovic
 
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
John Mertic
 
Continuous Integration on my work
Continuous Integration on my workContinuous Integration on my work
Continuous Integration on my workMu Chun Wang
 
Go for Operations
Go for OperationsGo for Operations
Go for Operations
QAware GmbH
 
Building Jenkins Pipelines at Scale
Building Jenkins Pipelines at ScaleBuilding Jenkins Pipelines at Scale
Building Jenkins Pipelines at Scale
Julien Pivotto
 
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
QAware GmbH
 

What's hot (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
 

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

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
Michael Palotas
 
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?
Niklas Heidloff
 
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...
OW2
 
vodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in TestingvodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in Testing
vodQA
 
watir-webdriver
watir-webdriverwatir-webdriver
watir-webdriverAmit DEWAN
 
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
Vlad Filippov
 
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
pCloudy
 
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
Applitools
 
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
 
Getting Started with Android Development
Getting Started with Android DevelopmentGetting Started with Android Development
Getting Started with Android Development
Edureka!
 
EUSummaryCV-QAEngineer-MaximVasilchuk
EUSummaryCV-QAEngineer-MaximVasilchukEUSummaryCV-QAEngineer-MaximVasilchuk
EUSummaryCV-QAEngineer-MaximVasilchukMax Vasilchuk
 
A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...
A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...
A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...
flufftailshop
 
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
Sargis Sargsyan
 
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
 
Automated Testing in DevOps
Automated Testing in DevOpsAutomated Testing in DevOps
Automated Testing in DevOps
Haufe-Lexware GmbH & Co KG
 
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
Sargis Sargsyan
 
Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015
Patrick Chanezon
 
Pdx Se Intro To Se
Pdx Se Intro To SePdx Se Intro To Se
Pdx Se Intro To Se
An Doan
 
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...
Ajeet Singh Raina
 

Similar to 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
 
A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...
A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...
A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...
 
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...
 

More from QAFest

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QAFest
 
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
QAFest
 
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...
QAFest
 
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QAFest
 
QA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать больше
QAFest
 
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
QAFest
 
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгораниемQA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
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
 
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QAFest
 
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QAFest
 
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QAFest
 
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
QAFest
 
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QAFest
 
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...
QAFest
 
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QAFest
 
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложенииQA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QAFest
 
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QAFest
 
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QAFest
 
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
QAFest
 

More from 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
 

Recently uploaded

The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
SACHIN R KONDAGURI
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
Mohammed Sikander
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
DeeptiGupta154
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Atul Kumar Singh
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
Scholarhat
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
Levi Shapiro
 
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdfMASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
goswamiyash170123
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Dr. Vinod Kumar Kanvaria
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
Digital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion DesignsDigital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion Designs
chanes7
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
The Diamond Necklace by Guy De Maupassant.pptx
The Diamond Necklace by Guy De Maupassant.pptxThe Diamond Necklace by Guy De Maupassant.pptx
The Diamond Necklace by Guy De Maupassant.pptx
DhatriParmar
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 

Recently uploaded (20)

The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
 
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdfMASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
Digital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion DesignsDigital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion Designs
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
The Diamond Necklace by Guy De Maupassant.pptx
The Diamond Necklace by Guy De Maupassant.pptxThe Diamond Necklace by Guy De Maupassant.pptx
The Diamond Necklace by Guy De Maupassant.pptx
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 

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