SlideShare a Scribd company logo
1 of 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

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 ContainersDevOps Indonesia
 
はじめての JFrog Xray
はじめての JFrog Xrayはじめての JFrog Xray
はじめての JFrog XrayTsuyoshi Miyake
 
Docs or it didn’t happen
Docs or it didn’t happenDocs or it didn’t happen
Docs or it didn’t happenAll Things Open
 
不只自動化而且更敏捷的Android開發工具 gradle mopcon
不只自動化而且更敏捷的Android開發工具 gradle mopcon不只自動化而且更敏捷的Android開發工具 gradle mopcon
不只自動化而且更敏捷的Android開發工具 gradle mopconsam 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 DowdneyWeaveworks
 
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 SelfAll 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 ServerChris Adkin
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1Rubens 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 DockerCloudBees
 
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 KubernetesOpsta
 
Drone Continuous Integration
Drone Continuous IntegrationDrone Continuous Integration
Drone Continuous IntegrationDaniel Cerecedo
 
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 StoryJohn 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 OperationsQAware GmbH
 
Building Jenkins Pipelines at Scale
Building Jenkins Pipelines at ScaleBuilding Jenkins Pipelines at Scale
Building Jenkins Pipelines at ScaleJulien 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 infrastructureMichael 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 TestingvodQA
 
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 TestingVlad 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.pdfpCloudy
 
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.pdfApplitools
 
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.pdfAnanthReddy38
 
Getting Started with Android Development
Getting Started with Android DevelopmentGetting Started with Android Development
Getting Started with Android DevelopmentEdureka!
 
EUSummaryCV-QAEngineer-MaximVasilchuk
EUSummaryCV-QAEngineer-MaximVasilchukEUSummaryCV-QAEngineer-MaximVasilchuk
EUSummaryCV-QAEngineer-MaximVasilchukMax Vasilchuk
 
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 2019Sargis 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 ScaleSauce Labs
 
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 2019Sargis Sargsyan
 
Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Patrick Chanezon
 
Pdx Se Intro To Se
Pdx Se Intro To SePdx Se Intro To Se
Pdx Se Intro To SeAn 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
 
Test Inside Containers: Dockerise Appium Tests
Test Inside Containers: Dockerise Appium TestsTest Inside Containers: Dockerise Appium Tests
Test Inside Containers: Dockerise Appium TestsSrinivasan Sekar
 

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

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 FutureQAFest
 
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 spoiledQAFest
 
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 ClusterQAFest
 
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 automationQAFest
 
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. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQAFest
 
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 22QAFest
 

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

50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...Nguyen Thanh Tu Collection
 
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptxMatatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptxJenilouCasareno
 
....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdf....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdfVikramadityaRaj
 
Application of Matrices in real life. Presentation on application of matrices
Application of Matrices in real life. Presentation on application of matricesApplication of Matrices in real life. Presentation on application of matrices
Application of Matrices in real life. Presentation on application of matricesRased Khan
 
Gyanartha SciBizTech Quiz slideshare.pptx
Gyanartha SciBizTech Quiz slideshare.pptxGyanartha SciBizTech Quiz slideshare.pptx
Gyanartha SciBizTech Quiz slideshare.pptxShibin Azad
 
Capitol Tech Univ Doctoral Presentation -May 2024
Capitol Tech Univ Doctoral Presentation -May 2024Capitol Tech Univ Doctoral Presentation -May 2024
Capitol Tech Univ Doctoral Presentation -May 2024CapitolTechU
 
IATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdffIATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdff17thcssbs2
 
How to Manage Notification Preferences in the Odoo 17
How to Manage Notification Preferences in the Odoo 17How to Manage Notification Preferences in the Odoo 17
How to Manage Notification Preferences in the Odoo 17Celine George
 
2024_Student Session 2_ Set Plan Preparation.pptx
2024_Student Session 2_ Set Plan Preparation.pptx2024_Student Session 2_ Set Plan Preparation.pptx
2024_Student Session 2_ Set Plan Preparation.pptxmansk2
 
An Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptxAn Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptxCeline George
 
Incoming and Outgoing Shipments in 2 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 2 STEPS Using Odoo 17Incoming and Outgoing Shipments in 2 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 2 STEPS Using Odoo 17Celine George
 
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽中 央社
 
Danh sách HSG Bộ môn cấp trường - Cấp THPT.pdf
Danh sách HSG Bộ môn cấp trường - Cấp THPT.pdfDanh sách HSG Bộ môn cấp trường - Cấp THPT.pdf
Danh sách HSG Bộ môn cấp trường - Cấp THPT.pdfQucHHunhnh
 
slides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptxslides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptxCapitolTechU
 
Features of Video Calls in the Discuss Module in Odoo 17
Features of Video Calls in the Discuss Module in Odoo 17Features of Video Calls in the Discuss Module in Odoo 17
Features of Video Calls in the Discuss Module in Odoo 17Celine George
 
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdfPost Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdfPragya - UEM Kolkata Quiz Club
 

Recently uploaded (20)

“O BEIJO” EM ARTE .
“O BEIJO” EM ARTE                       .“O BEIJO” EM ARTE                       .
“O BEIJO” EM ARTE .
 
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
 
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptxMatatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
 
....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdf....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdf
 
Operations Management - Book1.p - Dr. Abdulfatah A. Salem
Operations Management - Book1.p  - Dr. Abdulfatah A. SalemOperations Management - Book1.p  - Dr. Abdulfatah A. Salem
Operations Management - Book1.p - Dr. Abdulfatah A. Salem
 
Application of Matrices in real life. Presentation on application of matrices
Application of Matrices in real life. Presentation on application of matricesApplication of Matrices in real life. Presentation on application of matrices
Application of Matrices in real life. Presentation on application of matrices
 
Gyanartha SciBizTech Quiz slideshare.pptx
Gyanartha SciBizTech Quiz slideshare.pptxGyanartha SciBizTech Quiz slideshare.pptx
Gyanartha SciBizTech Quiz slideshare.pptx
 
Post Exam Fun(da) Intra UEM General Quiz - Finals.pdf
Post Exam Fun(da) Intra UEM General Quiz - Finals.pdfPost Exam Fun(da) Intra UEM General Quiz - Finals.pdf
Post Exam Fun(da) Intra UEM General Quiz - Finals.pdf
 
Capitol Tech Univ Doctoral Presentation -May 2024
Capitol Tech Univ Doctoral Presentation -May 2024Capitol Tech Univ Doctoral Presentation -May 2024
Capitol Tech Univ Doctoral Presentation -May 2024
 
IATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdffIATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdff
 
How to Manage Notification Preferences in the Odoo 17
How to Manage Notification Preferences in the Odoo 17How to Manage Notification Preferences in the Odoo 17
How to Manage Notification Preferences in the Odoo 17
 
2024_Student Session 2_ Set Plan Preparation.pptx
2024_Student Session 2_ Set Plan Preparation.pptx2024_Student Session 2_ Set Plan Preparation.pptx
2024_Student Session 2_ Set Plan Preparation.pptx
 
An Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptxAn Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptx
 
Incoming and Outgoing Shipments in 2 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 2 STEPS Using Odoo 17Incoming and Outgoing Shipments in 2 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 2 STEPS Using Odoo 17
 
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
 
Danh sách HSG Bộ môn cấp trường - Cấp THPT.pdf
Danh sách HSG Bộ môn cấp trường - Cấp THPT.pdfDanh sách HSG Bộ môn cấp trường - Cấp THPT.pdf
Danh sách HSG Bộ môn cấp trường - Cấp THPT.pdf
 
slides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptxslides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptx
 
Features of Video Calls in the Discuss Module in Odoo 17
Features of Video Calls in the Discuss Module in Odoo 17Features of Video Calls in the Discuss Module in Odoo 17
Features of Video Calls in the Discuss Module in Odoo 17
 
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdfPost Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
 
B.ed spl. HI pdusu exam paper-2023-24.pdf
B.ed spl. HI pdusu exam paper-2023-24.pdfB.ed spl. HI pdusu exam paper-2023-24.pdf
B.ed spl. HI pdusu exam paper-2023-24.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