Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 37 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie Appium & Jenkins (20)

Anzeige

Aktuellste (20)

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

×