This document discusses Testinium's extended mobile test grid solution for testing applications across multiple mobile environments and devices. The solution builds on Selenium grid to distribute tests across over 200 real mobile devices running various operating system and browser combinations. It addresses challenges like synchronizing tests executed in parallel across different devices and platforms. It leverages components like a restful synchronization service and utilities for taking screenshots and videos during test execution. The architecture uses page object models and defines test steps and flows based on device roles and layout.
3. Testinium
200+ REAL Mobile Device
1000+ OS - Browser
Automation
+90 Engineers
Consultants and
more…
+120 People
Istanbul
Turkey
Continuous
R&D
4. Table of Content
Application Under Test
Solution’s Code Base
Building Custom Grid & Appium Solution
Challenges & Solutions
QA Session
Sidekick Components
5. Application Under Test
9 Country Support +18M Downloads
Basic features
Text / Image / Voice Messaging
VoIP / Video Calls
Gaming Features
Mobile Payment
Social Platform
+ in app purchase
9. Basic Mobile Automation Implementation
Android
iOS
Android
GRID
Appium Nodes
CI Tool
- Capabilities managed on Source Code Level.
- Test Automation Frameworks choice defined
with If-Else Structure.
10. Extended Grid
Testinium Grid
XCUITest and Instrumentation for iOS
Uiautomator and Uiautomator2 for Android
Extended Grid choose the appropriate version
of Appium and set desired capability with
testing framework according to properties
stored in Json file.
Testinium Test Executor
12. Sender Device Receiver Device
S2: Receive Photo
S3: Download Photo
S4: Replies Back
S1: Send Photo
S5: Check the Reply
Send Picture Scenario
Test runs parallel but not the way
you think of it!
Parallelism as we know: Running
one test case in different device with
the same steps.
Parallelism here: Running one test
case in different device with
different steps.
13. WhiHow are you going to check whether a new message
Received and it’s your turn to respond?
- Pass message content as a parameter for
second user to wait?
- Implicit or Explicit Waits causing timeouts.
- Or some other solution?
Waiter Strategy
16. Become the
Sender
Become the
Receiver
I am the Receiver
I am the Sender
Restful
Synchroniser
Service
How much is
Bitcoin?
Don’t Ask!!
Bankrupt on the way!
SM
MS
AUM
MR
SM : Send Message
MS . Message Sent
AUM: Any Unread Message
MR: Message Replied
Syncronization Multiple Mobile Device
18. Capture Video & Screenshots in Extended Grid
Video Recording
Taking Screenshots
Has a Native Video Recorder
Limitation is 3 minutes so we add videos
after test finishes
Android Debug Bridge records video
Android Debug Bridge capture screenshots
No Native Video Recorder
Capture 6-8 Screenshots/sec
and Combine them with a Ruby script.
3rd Party
https://github.com/libimobiledevice