SlideShare a Scribd company logo
1 of 39
Download to read offline
Continuous mobile automation
in build pipeline
Automation Day Berlin 2018
Hello!
I am Dmitry Lemeshko
Mobile QA Automation @ FrontierCarGroup, Berlin
6+ years in Test Automation
AutomateMeNow dmle
2
Frontier Car Group
● 6 markets
● 3 web apps
● mobile apps
● ~20 microservices
3
Let's start
Mobile test automation from scratch
4
Mobile automation stack
5
Feature testing process
6
1
Build APK
From feature branch and
point to Staging
environment
Feature testing
Manual testing of new
functionality
2
Merge to master
When passed QA Automated tests on latest
master branch
3
Regression testing
4
7
1
Build APK
Pointing to Staging
environment & upload to
Google Storage
Run tests
Download & install apk,
run tests, analyse results
and report to developers
2
Gitlab CI
Android
pipeline
Test
automation
pipeline
First result
● Android/iOS tests in same repo
● Regression testing on master
● Staging environment
● Local emulators
8
“
Work done. Any issues?
9
“
Bugs are spotted lately
10
“
Hard to maintain tests
11
“ No full control over test
environment
12
“
Hard to scale
13
“ Lack of interests from
developers
14
Let’s think
What do we want to achieve?
15
Continuous
mobile test
automation
It sounds good, right?
16
Feature testing process
17
1
Build APK
From feature branch and
point to isolated environment
Regression testing
Automated tests
2
Feature testing
Manual testing of new
functionality
When passed QA
3
Merge to master
4
Build APK
From master branch and
point to Staging
environment
Extended regression
Automated tests on
latest master branch
1 2
1 pipeline instead of 2
18
1
Build APK
Pointing to isolated
environment & uploaded
to Google Storage
Deploy services
Specified branch for
each service, services are
up-and-running
2
Run tests
Take recent APK and run
tests on random device
from market pool
Upload artifacts to gitlab
CI job
3
Attach artifacts
4
Steps to do
● Move tests to Android/iOS project repos
● Configure env deployment from tests
● Manage API endpoints in mobile app
● Scale mobile devices & Appium tools
● Build in single android pipeline
19
Split & move:
20
Mobile tools iOS testsAndroid tests
● page objects
● tests & hooks
● wd.js wrapper
● setup, logging
● cloud utils
21
Admin Web tests
Projects in
AUT source
code
Dealer Web tests
Customer Web
tests
Dealer iOS tests
Dealer Android
tests
Web tools
Tools
(API/deploy)
Mobile tools
Frameworks
dependencies
22
Dealer iOS tests
Dealer Android tests
Tools (API/deploy) Mobile tools
Project dependencies
Configure deployment from tests
● List services and branches
"services": [
{"name": "serviceA", "branch": "master"},
{"name": "serviceB", "branch": "B-270"}
]
● Specify env prefix
"prefix": "automation10"
23
Make custom test builds
That point to API with prefix configured before
24
25
Test devices infrastructure
Source: Facebook
In-house farm Cloud services
Virtualization
Integrate cloud service
● Upload new builds from Google Storage
● Manage available devices
● Run tests in a single session*
● Handle cloud session time limit
● Set results and pull artifacts
26
27
Gitlab CI pipeline
Update pipeline
● Update existing docker image
● Add new gitlab CI runner
● Add new job for tests
● Configure trigger for job
28
“ How to add a new job in
Gitlab CI?
29
Update .gitlab-ci.yml:
deployAndUItests:
stage: build
script:
- export branch=$(echo $CI_BUILD_REF_NAME)
- bash /buildAndroid.sh
...
- npm run deploy
- export appiumService=testobject env=automation
- npm run regression
30
Update .gitlab-ci.yml:
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
when: always
paths:
- tests/uiTests/screenshots
expire_in: 4 weeks
allow_failure: false
only:
- triggers
31
Trigger conditions
● Target branch is master
● No WIP in title
● Marked with `Reviewed` label
32
“
How does it look in Gitlab CI?
33
34
35
Before
● Regression after merge
● Shared unreliable test env
● Self support for appium &
devices
● Tests maintenance is on QA
● Proxying test results
What do we get?
Now
● Regression before merge
● Isolated configurable test env
● Cloud service
● Tests maintenance is on
QA/Dev
● Results in build pipeline
36
Flexibility
Any environment, any version of services
Shared maintenance
Developers are fixing tests :)
Fast feedback
Developers get results faster & directly
37
38
iOS project is
in progress...
39
Thanks!
Any questions?
You can find me at AutomateMeNow dmle

More Related Content

What's hot

Making Angular2 lean and Fast
Making Angular2 lean and FastMaking Angular2 lean and Fast
Making Angular2 lean and FastVinci Rufus
 
Taking Control of your Data with GraphQL
Taking Control of your Data with GraphQLTaking Control of your Data with GraphQL
Taking Control of your Data with GraphQLVinci Rufus
 
Angular Ivy- An Overview
Angular Ivy- An OverviewAngular Ivy- An Overview
Angular Ivy- An OverviewJalpesh Vadgama
 
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4jGraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4jNeo4j
 
Continuous load testing
Continuous load testingContinuous load testing
Continuous load testingcodepitbull
 
SPConnect2014 Office 365 APIs
SPConnect2014 Office 365 APIsSPConnect2014 Office 365 APIs
SPConnect2014 Office 365 APIsWes Hackett
 
Eclipse based products
Eclipse based productsEclipse based products
Eclipse based productsESPRIT
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCityAnton Arhipov
 
Cars.com – revolutionizing continuous integration with selenium rd
Cars.com – revolutionizing continuous integration with selenium  rdCars.com – revolutionizing continuous integration with selenium  rd
Cars.com – revolutionizing continuous integration with selenium rdRichard Darcy
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCityAnton Arhipov
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCityAnton Arhipov
 
Agile + DevOps Keynote - The Evolution of a Continuous Integration Pipeline
Agile + DevOps Keynote - The Evolution of a Continuous Integration PipelineAgile + DevOps Keynote - The Evolution of a Continuous Integration Pipeline
Agile + DevOps Keynote - The Evolution of a Continuous Integration PipelineGreg Sypolt
 
How to Build Front-End Web Apps that Scale - FutureJS
How to Build Front-End Web Apps that Scale - FutureJSHow to Build Front-End Web Apps that Scale - FutureJS
How to Build Front-End Web Apps that Scale - FutureJSPhil Leggetter
 
SAP TAO and Automation testing from Online
SAP TAO and Automation testing from Online SAP TAO and Automation testing from Online
SAP TAO and Automation testing from Online Sap Tao Bpt
 

What's hot (20)

GitLab Product Update, January 2017
GitLab Product Update, January 2017GitLab Product Update, January 2017
GitLab Product Update, January 2017
 
Deploying to AppEngine
Deploying to AppEngineDeploying to AppEngine
Deploying to AppEngine
 
Making Angular2 lean and Fast
Making Angular2 lean and FastMaking Angular2 lean and Fast
Making Angular2 lean and Fast
 
Taking Control of your Data with GraphQL
Taking Control of your Data with GraphQLTaking Control of your Data with GraphQL
Taking Control of your Data with GraphQL
 
Product update aug_29
Product update aug_29Product update aug_29
Product update aug_29
 
Angular Ivy- An Overview
Angular Ivy- An OverviewAngular Ivy- An Overview
Angular Ivy- An Overview
 
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4jGraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
 
Continuous load testing
Continuous load testingContinuous load testing
Continuous load testing
 
SPConnect2014 Office 365 APIs
SPConnect2014 Office 365 APIsSPConnect2014 Office 365 APIs
SPConnect2014 Office 365 APIs
 
Eclipse based products
Eclipse based productsEclipse based products
Eclipse based products
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCity
 
Cars.com – revolutionizing continuous integration with selenium rd
Cars.com – revolutionizing continuous integration with selenium  rdCars.com – revolutionizing continuous integration with selenium  rd
Cars.com – revolutionizing continuous integration with selenium rd
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCity
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCity
 
DevOps @ Proteus Operations
DevOps @ Proteus OperationsDevOps @ Proteus Operations
DevOps @ Proteus Operations
 
Prathamesh Zarkar Resume
Prathamesh Zarkar ResumePrathamesh Zarkar Resume
Prathamesh Zarkar Resume
 
Agile + DevOps Keynote - The Evolution of a Continuous Integration Pipeline
Agile + DevOps Keynote - The Evolution of a Continuous Integration PipelineAgile + DevOps Keynote - The Evolution of a Continuous Integration Pipeline
Agile + DevOps Keynote - The Evolution of a Continuous Integration Pipeline
 
How to Build Front-End Web Apps that Scale - FutureJS
How to Build Front-End Web Apps that Scale - FutureJSHow to Build Front-End Web Apps that Scale - FutureJS
How to Build Front-End Web Apps that Scale - FutureJS
 
[TestWarez 2017] Automated Testing for Common Errors and Difference Recogniti...
[TestWarez 2017] Automated Testing for Common Errors and Difference Recogniti...[TestWarez 2017] Automated Testing for Common Errors and Difference Recogniti...
[TestWarez 2017] Automated Testing for Common Errors and Difference Recogniti...
 
SAP TAO and Automation testing from Online
SAP TAO and Automation testing from Online SAP TAO and Automation testing from Online
SAP TAO and Automation testing from Online
 

Similar to Continuous mobile automation in build pipeline

Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...COMAQA.BY
 
Overview for device farm for mobile testing
Overview for device farm for mobile testingOverview for device farm for mobile testing
Overview for device farm for mobile testingAnna Klueva
 
Android Apps Testing in 2019
Android Apps Testing in 2019Android Apps Testing in 2019
Android Apps Testing in 2019Ivan Katunou
 
Continuous Integration for your Android projects
Continuous Integration for your Android projectsContinuous Integration for your Android projects
Continuous Integration for your Android projectsSergii Zhuk
 
CI in the mobile world
CI in the mobile worldCI in the mobile world
CI in the mobile worldGodfrey Nolan
 
Introduction to Protractor
Introduction to ProtractorIntroduction to Protractor
Introduction to ProtractorFlorian Fesseler
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterAmazon Web Services
 
Performance testing in the cloud webinar jul 2018
Performance testing in the cloud webinar jul 2018Performance testing in the cloud webinar jul 2018
Performance testing in the cloud webinar jul 2018John Emmitt
 
Modernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectModernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectDevOps.com
 
ACDKOCHI19 - CI / CD using AWS Developer Tools
ACDKOCHI19 - CI / CD using AWS Developer ToolsACDKOCHI19 - CI / CD using AWS Developer Tools
ACDKOCHI19 - CI / CD using AWS Developer ToolsAWS User Group Kochi
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarBitbar
 
DevOps Spain 2019. Pedro Mendoza-AWS
DevOps Spain 2019. Pedro Mendoza-AWSDevOps Spain 2019. Pedro Mendoza-AWS
DevOps Spain 2019. Pedro Mendoza-AWSatSistemas
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoAmazon Web Services
 

Similar to Continuous mobile automation in build pipeline (20)

Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
 
Overview for device farm for mobile testing
Overview for device farm for mobile testingOverview for device farm for mobile testing
Overview for device farm for mobile testing
 
Automated Testing in DevOps
Automated Testing in DevOpsAutomated Testing in DevOps
Automated Testing in DevOps
 
TCE Automation
TCE AutomationTCE Automation
TCE Automation
 
Android Apps Testing in 2019
Android Apps Testing in 2019Android Apps Testing in 2019
Android Apps Testing in 2019
 
Continuous Integration for your Android projects
Continuous Integration for your Android projectsContinuous Integration for your Android projects
Continuous Integration for your Android projects
 
Build Automation in Android
Build Automation in AndroidBuild Automation in Android
Build Automation in Android
 
Resume
ResumeResume
Resume
 
CI in the mobile world
CI in the mobile worldCI in the mobile world
CI in the mobile world
 
Introduction to Protractor
Introduction to ProtractorIntroduction to Protractor
Introduction to Protractor
 
Appium solution artizone
Appium solution   artizoneAppium solution   artizone
Appium solution artizone
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
Performance testing in the cloud webinar jul 2018
Performance testing in the cloud webinar jul 2018Performance testing in the cloud webinar jul 2018
Performance testing in the cloud webinar jul 2018
 
Modernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectModernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-Architect
 
Appium solution
Appium solutionAppium solution
Appium solution
 
ACDKOCHI19 - CI / CD using AWS Developer Tools
ACDKOCHI19 - CI / CD using AWS Developer ToolsACDKOCHI19 - CI / CD using AWS Developer Tools
ACDKOCHI19 - CI / CD using AWS Developer Tools
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
 
DevOps Spain 2019. Pedro Mendoza-AWS
DevOps Spain 2019. Pedro Mendoza-AWSDevOps Spain 2019. Pedro Mendoza-AWS
DevOps Spain 2019. Pedro Mendoza-AWS
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San Francisco
 
Developer Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdfDeveloper Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdf
 

Recently uploaded

Android Application Components with Implementation & Examples
Android Application Components with Implementation & ExamplesAndroid Application Components with Implementation & Examples
Android Application Components with Implementation & ExamplesChandrakantDivate1
 
Satara Call girl escort *74796//13122* Call me punam call girls 24*7hour avai...
Satara Call girl escort *74796//13122* Call me punam call girls 24*7hour avai...Satara Call girl escort *74796//13122* Call me punam call girls 24*7hour avai...
Satara Call girl escort *74796//13122* Call me punam call girls 24*7hour avai...nishasame66
 
Mobile Application Development-Android and It’s Tools
Mobile Application Development-Android and It’s ToolsMobile Application Development-Android and It’s Tools
Mobile Application Development-Android and It’s ToolsChandrakantDivate1
 
Mobile App Penetration Testing Bsides312
Mobile App Penetration Testing Bsides312Mobile App Penetration Testing Bsides312
Mobile App Penetration Testing Bsides312wphillips114
 
Mobile Application Development-Components and Layouts
Mobile Application Development-Components and LayoutsMobile Application Development-Components and Layouts
Mobile Application Development-Components and LayoutsChandrakantDivate1
 

Recently uploaded (6)

Android Application Components with Implementation & Examples
Android Application Components with Implementation & ExamplesAndroid Application Components with Implementation & Examples
Android Application Components with Implementation & Examples
 
Satara Call girl escort *74796//13122* Call me punam call girls 24*7hour avai...
Satara Call girl escort *74796//13122* Call me punam call girls 24*7hour avai...Satara Call girl escort *74796//13122* Call me punam call girls 24*7hour avai...
Satara Call girl escort *74796//13122* Call me punam call girls 24*7hour avai...
 
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
 
Mobile Application Development-Android and It’s Tools
Mobile Application Development-Android and It’s ToolsMobile Application Development-Android and It’s Tools
Mobile Application Development-Android and It’s Tools
 
Mobile App Penetration Testing Bsides312
Mobile App Penetration Testing Bsides312Mobile App Penetration Testing Bsides312
Mobile App Penetration Testing Bsides312
 
Mobile Application Development-Components and Layouts
Mobile Application Development-Components and LayoutsMobile Application Development-Components and Layouts
Mobile Application Development-Components and Layouts
 

Continuous mobile automation in build pipeline