Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Seite 1
Agenda
Agenda
- Our starting point
- appium architecture
- How we used appium
Seite 2
Android
Hybrid
GWT
starting point
Seite 3
10 months
20 – 30 apps
600 Features
7 scrum teams
60+ developers
some figures
Seite 4
The Building Blocks we have to deal with
App
core
library
Seite 5
The Development Workflow per App
App
apk
war
Seite 6
The Communication big picture
App 1
core
library
App 2
core
library
App 3
core
library
Post IT
Infrastructure
Auth...
Seite 7
The Development Workflow the big picture
core
library
Team Post
App
2
App
1
App
3
App
4
Team 1
Team 2
Team 3
Team ...
Seite 8
Quality
available mobile test tools
appium
selendroid
ios-driver
calabash
Seite 9
appium Architecture
appium Architecture
Appium is an HTTP server that creates
and handles webdriver sessions.
Appi...
Seite 10
webdriver
webdriver
a platform and language-neutral
interface and associated wire protocol
that allows programs o...
Seite 11
webdriver
webdriver mobile extension
the appium people extended the json
wire protocol for the mobile world (Eg.
...
Seite 12
appium Architecture
appium Architecture
appium starts a test case on the device
that spawns a server and listens ...
Seite 13
appium Architecture
appium Architecture
on android, appium proxies commands
to a UIAutomator test case running on...
Seite 14
appium Architecture
appium Architecture
as clients you can use the standard
selenium drivers or the specific clie...
Seite 15
appium Architecture
appium Architecture
Web
driver
Appium
Selendroid
IOSDriver
Mobile
AppJSON Wire
Protocol
UIAut...
Seite 16
supported platforms
appium Architecture
Platform Automation
iOS ios-driver
(UIAutomation)
Android 4.2+ appium-uia...
Seite 17
selendroid
selendroid Architecture
Selendroid is a test automation
framework which drives off the UI of
Android n...
Seite 18
selendroid
selendroid Architecture
Selendroid is based on the Android
instrumentation framework.
Android instrume...
Seite 19
selendroid
selendroid Architecture
Seite 20
appium Android
appium UIAutomator architecture
Seite 21
The Development Workflow per App
SeleniumUiTestHelper
Test Code
AppiumUiTestHelper
Selenium WebDriver
Selenium Ap...
Seite 22
Demo
Demo
Appium Setup the history
JSON Wire
ProtocolMaven
JUnit
appium v0.17
Appium Setup the history
JSON Wire
Protocol
appium v1.0.0
Maven
JUnit selendroid
Appium Setup the history
JSON Wire
Protocol
appium v1.1.0
Maven
JUnit
Seite 26
Appium Setup
apkapk’s
Seite 27
Appium Tests
apk’s
ADB
Seite 28
Demo
Code Walkthrough
Demo
Seite 29
scaling
scaling possibilities
selenium grid
docker
test load balancer
Seite 30
Appium / Selenium Test
796 Integration
Tests
Appium &
Selenium
Seite 31
Quality
appium and BDD
appium can be combined with eg.
cucumber
Seite 32
Quality
why not the cloud or
emulator
https://saucelabs.com/appium
http://xamarin.com/test-cloud
Seite 33
Appium Tests
The pain
 Only one appium server instance per
team
 All devices connected over one usb
 Session h...
Seite 34
Appium Tests
The pain
 Tests need to be very robust
 Webview switching
 Had to tweak the apk for appium tests....
Seite 35
Appium Tests
The pain
 Sometimes devices just fail, because of
other reasons than your code
 Hard to reproduce ...
Seite 36
Appium Tests
Whats next
 Uncoupling host:port
eg. with consul
 Move to appium client driver,
UIAutomator
 One ...
Seite 37
Questions & Answer
Upcoming SlideShare
Loading in …5
×

Appium & Jenkins

Presentation about appium and jenkins

Appium & Jenkins

  1. 1. Seite 1 Agenda Agenda - Our starting point - appium architecture - How we used appium
  2. 2. Seite 2 Android Hybrid GWT starting point
  3. 3. Seite 3 10 months 20 – 30 apps 600 Features 7 scrum teams 60+ developers some figures
  4. 4. Seite 4 The Building Blocks we have to deal with App core library
  5. 5. Seite 5 The Development Workflow per App App apk war
  6. 6. Seite 6 The Communication big picture App 1 core library App 2 core library App 3 core library Post IT Infrastructure Authorization Communication Caching Widgets Businesslogic User Interface
  7. 7. Seite 7 The Development Workflow the big picture core library Team Post App 2 App 1 App 3 App 4 Team 1 Team 2 Team 3 Team 4 2 Weeks 2 Weeks
  8. 8. Seite 8 Quality available mobile test tools appium selendroid ios-driver calabash
  9. 9. Seite 9 appium Architecture appium Architecture Appium is an HTTP server that creates and handles webdriver sessions. Appium Server is written in node.js
  10. 10. Seite 10 webdriver webdriver a platform and language-neutral interface and associated wire protocol that allows programs or scripts to introspect into, and control the behaviour of, a web browser. https://w3c.github.io/webdriver/webdriver-spec.html
  11. 11. Seite 11 webdriver webdriver mobile extension the appium people extended the json wire protocol for the mobile world (Eg. WEBVIEW, Connection Type) https://code.google.com/p/selenium/source/browse/spec- draft.md?repo=mobile
  12. 12. Seite 12 appium Architecture appium Architecture appium starts a test case on the device that spawns a server and listens for proxied commands
  13. 13. Seite 13 appium Architecture appium Architecture on android, appium proxies commands to a UIAutomator test case running on the device. For older versions it uses selendroid.
  14. 14. Seite 14 appium Architecture appium Architecture as clients you can use the standard selenium drivers or the specific client libraries with the mobile json wire protocol extension. https://github.com/appium/java-client
  15. 15. Seite 15 appium Architecture appium Architecture Web driver Appium Selendroid IOSDriver Mobile AppJSON Wire Protocol UIAutomator Instrumentation UIAutomation mobile JSON Wire Protocol
  16. 16. Seite 16 supported platforms appium Architecture Platform Automation iOS ios-driver (UIAutomation) Android 4.2+ appium-uiautomator (UiAutomator) Android 2.3+ selendroid (Instrumentation)
  17. 17. Seite 17 selendroid selendroid Architecture Selendroid is a test automation framework which drives off the UI of Android native and hybrid applications and the mobile web. Tests are written using the Selenium 2 client API
  18. 18. Seite 18 selendroid selendroid Architecture Selendroid is based on the Android instrumentation framework. Android instrumentation is a set of control methods or "hooks" in the Android system. These hooks control an Android component independently of its normal lifecycle. They also control how Android loads applications.
  19. 19. Seite 19 selendroid selendroid Architecture
  20. 20. Seite 20 appium Android appium UIAutomator architecture
  21. 21. Seite 21 The Development Workflow per App SeleniumUiTestHelper Test Code AppiumUiTestHelper Selenium WebDriver Selenium Appium Chromedriver Selendroid Chrome Intermec CN51
  22. 22. Seite 22 Demo Demo
  23. 23. Appium Setup the history JSON Wire ProtocolMaven JUnit appium v0.17
  24. 24. Appium Setup the history JSON Wire Protocol appium v1.0.0 Maven JUnit selendroid
  25. 25. Appium Setup the history JSON Wire Protocol appium v1.1.0 Maven JUnit
  26. 26. Seite 26 Appium Setup apkapk’s
  27. 27. Seite 27 Appium Tests apk’s ADB
  28. 28. Seite 28 Demo Code Walkthrough Demo
  29. 29. Seite 29 scaling scaling possibilities selenium grid docker test load balancer
  30. 30. Seite 30 Appium / Selenium Test 796 Integration Tests Appium & Selenium
  31. 31. Seite 31 Quality appium and BDD appium can be combined with eg. cucumber
  32. 32. Seite 32 Quality why not the cloud or emulator https://saucelabs.com/appium http://xamarin.com/test-cloud
  33. 33. Seite 33 Appium Tests The pain  Only one appium server instance per team  All devices connected over one usb  Session handling  Network infrastracture  Backend
  34. 34. Seite 34 Appium Tests The pain  Tests need to be very robust  Webview switching  Had to tweak the apk for appium tests. Only one process.  Setup is complicated and time consuming (also local)
  35. 35. Seite 35 Appium Tests The pain  Sometimes devices just fail, because of other reasons than your code  Hard to reproduce failures (eg. waiting for element fails), we built in a retry  Appium tests are slow
  36. 36. Seite 36 Appium Tests Whats next  Uncoupling host:port eg. with consul  Move to appium client driver, UIAutomator  One Device per Acceptance Test ;)
  37. 37. Seite 37 Questions & Answer

×