Talk at Test Automation Day 2018, Berlin, Germany. Its about how to integration Appium tests in Android build pipeline and run them on every merge request in Gitlab CI.
6. 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. 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
8. First result
● Android/iOS tests in same repo
● Regression testing on master
● Staging environment
● Local emulators
8
17. 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
18. 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
19. 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
21. 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
26. 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
36. 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
37. Flexibility
Any environment, any version of services
Shared maintenance
Developers are fixing tests :)
Fast feedback
Developers get results faster & directly
37