{"id":2191,"date":"2021-03-18T09:23:23","date_gmt":"2021-03-18T09:23:23","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?p=2191"},"modified":"2021-04-01T07:14:20","modified_gmt":"2021-04-01T07:14:20","slug":"appium-einfuehrung-teil-1","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/","title":{"rendered":"Appium \u2013 Eine Einf\u00fchrung (Teil 1)"},"content":{"rendered":"\n<p>In den folgenden drei Blogartikeln m\u00f6chte ich Ihnen Appium vorstellen: Ein Testautomatisierungs-Tool, welches speziell f\u00fcr den Test mobiler Anwendungen entwickelt wurde. Appium bietet uns die M\u00f6glichkeit, mobile-spezifische Anwendungsf\u00e4lle wie z. B. Gestensteuerung, SMS oder eingehende Anrufe zu simulieren und entsprechende Testf\u00e4lle zu automatisieren. Neben virtuellen Ger\u00e4ten bietet uns Appium als zus\u00e4tzliches Feature die M\u00f6glichkeit, automatisierte Testf\u00e4lle auf realen mobilen Endger\u00e4ten auszuf\u00fchren.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Wieso auf mobilen Ger\u00e4ten automatisieren?<\/h2>\n\n\n\n<p>Aber wieso sollten wir unsere Testautomatisierung auf realen Endger\u00e4ten ausf\u00fchren? Wieso sollten wir nicht die virtuellen Ger\u00e4te der Entwicklungstools Xcode (iOS) und Android Studio (Android) nutzen? Dies sind berechtigte Fragen, denn die Anschaffung von Endger\u00e4ten verursacht Kosten.<\/p>\n\n\n\n<p>Das erste Argument f\u00fcr eine Automatisierung auf realen Endger\u00e4ten mag banal klingen, f\u00e4llt jedoch schwer ins Gewicht: Ihre Anwenderinnen und Anwender nutzen keine virtuellen Ger\u00e4te.<\/p>\n\n\n\n<p>Man k\u00f6nnte annehmen, dass virtuelle Ger\u00e4te reale Endger\u00e4te eins zu eins widerspiegeln. Diese Annahme ist jedoch falsch. Der Hauptgrund daf\u00fcr ist, dass virtuelle Ger\u00e4te keine eigene Hardware besitzen. Sie nutzen die Hardware des Rechners, auf dem sie installiert sind. Die Erfahrung zeigt auch, dass Fehler, die auf einem realen Endger\u00e4t entdeckt wurden, in virtuellen Ger\u00e4ten nicht immer zuverl\u00e4ssig reproduziert werden k\u00f6nnen.<\/p>\n\n\n\n<p>Das Automatisieren auf realen Endger\u00e4ten erm\u00f6glicht Ihnen au\u00dferdem, die Performance Ihrer Anwendung zu \u00fcberpr\u00fcfen. Selbst wenn alle Funktionen in Ihrer Anwendung einwandfrei funktionieren, kann eine schlechte Performance auf dem Endger\u00e4t dazu f\u00fchren, dass Ihre Anwendung unbrauchbar ist. Tests auf virtuellen Ger\u00e4ten liefern uns diesbez\u00fcglich keine verl\u00e4sslichen Daten.<\/p>\n\n\n\n<p>Auch das Problem der Hardware- und Software-Fragmentierung ist als ein Argument f\u00fcr die Automatisierung auf realen Endger\u00e4ten zu verstehen.<\/p>\n\n\n\n<p>Sowohl bei iOS- als auch bei Android-Ger\u00e4ten entsteht durch immer gr\u00f6\u00dfere Produktpaletten sowie Betriebssystemversionen, die immer l\u00e4nger im Umlauf bleiben, eine Art nat\u00fcrliche Fragmentierung &#8211; wie die folgenden Statistiken zeigen.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"351\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_iOS_Verteilung-600x351.png\" alt=\"iOS Verteilung auf Apple-Ger\u00e4ten - Q2 2020\" class=\"wp-image-2204\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_iOS_Verteilung-600x351.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_iOS_Verteilung-768x449.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_iOS_Verteilung-640x374.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_iOS_Verteilung.png 902w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 1: iOS Verteilung auf Apple-Ger\u00e4ten &#8211; Q2 2020 | https:\/\/developer.apple.com\/support\/app-store\/<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"350\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Android_OS_Verteilung-600x350.png\" alt=\"Android OS Verteilung - Q2 2020\" class=\"wp-image-2199\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Android_OS_Verteilung-600x350.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Android_OS_Verteilung-768x448.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Android_OS_Verteilung-640x373.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Android_OS_Verteilung.png 904w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 2: Android OS Verteilung &#8211; Q2 2020 | https:\/\/9to5google.com\/2020\/04\/10\/google-kills-android-distribution-numbers-web<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Bei Android-Ger\u00e4ten k\u00f6nnen wir eine weitere Software-Fragmentierung beobachten. Den Herstellern ist es m\u00f6glich, das Android-Betriebssystem in einem gewissen Rahmen zu ver\u00e4ndern. So k\u00f6nnen System-Apps wie die virtuelle Tastatur unterschiedlich funktionieren.<\/p>\n\n\n\n<p>Nehmen wir als Beispiel das Gboard von Google und die virtuelle Tastatur OneU von Samsung. Beide unterst\u00fctzen Swipe-Steuerelemente oder die Eingabe von Gesten, unterscheiden sich jedoch in der Ausf\u00fchrung.<\/p>\n\n\n\n<p>Googles virtuelle Tastatur zeigt Ihnen das Wort, das gebildet wird, wenn Sie \u00fcber die Tastatur gleiten. Samsungs Tastatur hingegen zeigt Ihnen das Wort erst, wenn Ihre Finger nicht mehr gleiten. Man sollte nicht davon ausgehen, dass die virtuellen Ger\u00e4te von xCode oder Android Studio diese Unterschiede simulieren.<\/p>\n\n\n\n<p>Nat\u00fcrlich k\u00f6nnen wir keinen unendlich gro\u00dfen Pool mit mobilen Endger\u00e4ten aufbauen. Wir k\u00f6nnen jedoch eine Auswahl von Ger\u00e4ten treffen, die bei Ihren Anwenderinnen und Anwendern stark vertreten sind.<\/p>\n\n\n\n<p>Endger\u00e4te von Apple, Samsung und Huawei sind sicher entscheidender f\u00fcr einen Endger\u00e4te-Pool als Ger\u00e4te anderer Hersteller, wie die folgenden Statistiken zeigen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"351\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Hersteller_Marktanteile-600x351.png\" alt=\"Hersteller Marktanteile Deutschland Q2 2020\" class=\"wp-image-2202\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Hersteller_Marktanteile-600x351.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Hersteller_Marktanteile-768x449.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Hersteller_Marktanteile-640x374.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Hersteller_Marktanteile.png 902w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 3: Hersteller Marktanteile Deutschland Q2 2020 | de.statista.com<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"351\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Hersteller_Marktanteile_USA-600x351.png\" alt=\"Hersteller Marktanteile USA Q2 2020\" class=\"wp-image-2203\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Hersteller_Marktanteile_USA-600x351.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Hersteller_Marktanteile_USA-768x449.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Hersteller_Marktanteile_USA-640x374.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Hersteller_Marktanteile_USA.png 902w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 4: Hersteller Marktanteile USA Q2 2020 | https:\/\/www.canalys.com\/newsroom\/canalys-us-smartphones-shipments-Q2-2020<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Problematik &#8211; Testautomation Tool-Fragmentierung<\/h2>\n\n\n\n<p>Nachdem ich nun auf die Vorteile der Testautomatisierung auf realen Endger\u00e4ten eingegangen bin, stellt sich nat\u00fcrlich noch immer die grunds\u00e4tzliche Frage f\u00fcr Projekte mit einer vorhandenen Testautomatisierung: Wieso sollte Appium als zus\u00e4tzliches Testautomatisierungstool eingef\u00fchrt werden?<\/p>\n\n\n\n<p>Das Problem der Software-Fragmentierung l\u00e4sst sich auch in der Testfallautomatisierung beobachten. Es gibt immer mehr Tools, die bestimmte Funktionen und Umgebungen unterst\u00fctzen, untereinander jedoch nur bedingt kompatibel sind. Im Idealfall wollen wir aber nur ein einziges Testautomatisierungstool nutzen, um die H\u00fcrden in der Testfallautomatisierung gering zu halten.<\/p>\n\n\n\n<p>Um die zuletzt gestellte Frage zu kl\u00e4ren, lassen Sie uns von einem Multiplattformprojekt ausgehen.<\/p>\n\n\n\n<p>Unsere Anwendung wurde als Desktop-Webseite, native iOS-App und hybride Android-App programmiert. Zus\u00e4tzlich haben wir eine responsive Web-App erstellt, denn Ihre Webseite besitzt bereits eine gute Abdeckung an automatisierten Testf\u00e4llen durch Selenium.<\/p>\n\n\n\n<p>Die folgenden Statistiken zeigen, dass eine Testfallautomatisierung, welche sich lediglich auf die Webseite beschr\u00e4nkt, f\u00fcr unser Multiplattformprojekt nicht mehr ausreicht.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"351\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Besitz_Nutzung_Altersgruppen-600x351.png\" alt=\"Besitz und Nutzung von Smartphones nach Altersgruppen in Deutschland 2019\" class=\"wp-image-2200\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Besitz_Nutzung_Altersgruppen-600x351.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Besitz_Nutzung_Altersgruppen-768x449.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Besitz_Nutzung_Altersgruppen-640x374.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Besitz_Nutzung_Altersgruppen.png 902w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 5: Besitz und Nutzung von Smartphones nach Altersgruppen in Deutschland 2019 | de.statista.com<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"351\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Umsatz_Mobile_Stores-600x351.png\" alt=\"Umsatz Mobile Stores in Mrd. US$\" class=\"wp-image-2197\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Umsatz_Mobile_Stores-600x351.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Umsatz_Mobile_Stores-768x449.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Umsatz_Mobile_Stores-640x374.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Umsatz_Mobile_Stores.png 902w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 6: Umsatz Mobile Stores in Mrd. US$ | https:\/\/sensortower.com\/blog\/app-revenue-and-downloads-1h-2020<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Wir sollten davon ausgehen, dass alle relevanten Zielgruppen unsere Anwendung auch auf mobilen Endger\u00e4ten nutzen.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Appium vs. Selenium<\/h2>\n\n\n\n<p>Ein kurzer Blick zur\u00fcck auf die Urspr\u00fcnge der Testautomatisierungstools zeigt, wieso die Einf\u00fchrung von weiteren Tools in unserem Beispiel sinnvoll ist.<\/p>\n\n\n\n<p>Die ersten Applikationen, f\u00fcr die Testf\u00e4lle auf Endger\u00e4ten automatisiert wurden, waren unter anderem Webseiten. Durch das Aufkommen von immer mehr Browsern wurde eine Automatisierung von Testf\u00e4llen auch im Frontendbereich notwendig.<\/p>\n\n\n\n<p>Eines der erfolgreichsten Testautomatisierungs-Tools in diesem Bereich ist Selenium. Den Urspr\u00fcngen entsprechend ist Selenium allerdings auf die Testfallautomatisierung von Webseiten ausgerichtet. Mobile spezifische Anwendungsf\u00e4lle wie Gestensteuerung werden ohne Weiteres nicht unterst\u00fctzt.<\/p>\n\n\n\n<p>Doch gehen wir in unserem Multiplattformprojekt einmal davon aus, dass nur ein kleiner Teil der User die mobilen Anwendungen nutzt. Der Gro\u00dfteil nutzt die Desktop-Webseite und diese besitzt, wie wir wissen, eine gute automatisierte Testfallabdeckung durch Selenium. Lohnt sich dennoch die Einf\u00fchrung von Appium?<\/p>\n\n\n\n<p>Nachdem ich das Problem der Tool-Fragmentierung kurz erl\u00e4utert habe, w\u00e4re die Einf\u00fchrung von Appium eventuell mit mehr Kosten als Nutzen verbunden. Man k\u00f6nnte annehmen, unsere in der Selenium-Automatisierung erfahrenen Teams k\u00f6nnen die wichtigsten Testf\u00e4lle mit Selenium und ein paar Workarounds f\u00fcr unsere mobilen Anwendungen automatisieren. Doch schauen wir uns Appium etwas genauer an, um zu \u00fcberpr\u00fcfen, ob diese Behauptung zutrifft.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Automatisierung mobile-spezifischer Anwendungsf\u00e4lle mit Appium<\/h2>\n\n\n\n<p>Gehen wir zun\u00e4chst auf die Problematik der mobile-spezifischen Anwendungsf\u00e4lle ein. Lassen Sie uns einen Blick auf einige Anwendungsf\u00e4lle werfen, die Appium unterst\u00fctzt, bei denen sich f\u00fcr unsere Experten f\u00fcr Testautomatisierung mit Selenium sicher schnell H\u00fcrden aufbauen.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Gestensteuerung<\/strong><\/p>\n\n\n\n<p>In unserer Anwendung existiert eine Liste, deren Ende unsere Benutzerinnen und Benutzer gerne erreichen w\u00fcrde. In der Desktop-Browser-Version nutzen die User daf\u00fcr sicher das Mausrad, den Scrollbalken oder die Pfeiltasten auf der Tastatur. In den mobilen Anwendungen werden sie allerdings auf diverse Gesten zur\u00fcckgreifen, um das Ende der Liste zu erreichen.<\/p>\n\n\n\n<p>Sie k\u00f6nnten den Finger auf den unteren Bildschirmbereich setzen, ihn halten, nach oben ziehen und wieder l\u00f6sen, um nur einen bestimmten Teil der Liste zu bewegen. Eine weitere M\u00f6glichkeit w\u00e4re, den Finger auf den unteren Bildschirmrand zu setzen und mit einer schnellen Wischgeste nach oben ein automatisches Scrollen nach unten auszul\u00f6sen. F\u00fcr diese F\u00e4lle k\u00f6nnen wir auf die TouchAPI von Appium zur\u00fcckgreifen.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Anrufe und SMS<\/strong><\/p>\n\n\n\n<p>Eingehende Anrufe und SMS wirken sich auf mobilen Endger\u00e4ten viel schwerer auf die Nutzung unserer Anwendung aus. Wo sich auf dem Desktop bei einem Anruf meistens nur ein weiteres Fenster \u00f6ffnet, wird auf mobilen Endger\u00e4ten die laufende Anwendung meist unterbrochen und die jeweilige Anwendung f\u00fcr Telefonanrufe in den Vordergrund geholt. Auch eingehende SMS l\u00f6sen meist eine Benachrichtigung \u00fcber der laufenden Anwendung aus. F\u00fcr diese F\u00e4lle k\u00f6nnen wir auf die Phone-Call-API von Appium zur\u00fcckgreifen.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Systemanwendungen<\/strong><\/p>\n\n\n\n<p>Auf mobilen Endger\u00e4ten kommt unsere Anwendung wahrscheinlich viel h\u00e4ufiger in Verbindung mit Systemanwendungen. Sei es der Kalender, die Fotogalerie oder die hauseigene Kartenanwendung. Appium bietet uns an dieser Stelle &#8211; abh\u00e4ngig davon, welchen Appium Driver wir nutzen \u2013 die M\u00f6glichkeit diese Systemanwendungen ebenfalls in unsere Testautomatisierung zu integrieren.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Automatisierung von hybriden Apps<\/h2>\n\n\n\n<p>Betrachten wir nun die Problematik der Tool-Fragmentierung in der Testfallautomatisierung. Ein Teil des Problems besteht in den verschiedenen Entwicklungsarten von mobilen Applikationen. In unserem Beispielprojekt sind die \u00fcblichen Arten vertreten.<\/p>\n\n\n\n<p>Werfen wir einen genaueren Blick darauf, wie Appium mittels der Context API, mit den komplexeren hybriden Anwendungen umgeht.<\/p>\n\n\n\n<p>Um Elemente zu finden oder mit ihnen zu interagieren, geht Appium standardm\u00e4\u00dfig davon aus, dass sich all unsere Befehle auf native UI-Komponenten beziehen, die auf dem Bildschirm angezeigt werden. Unsere Testsession befindet sich also noch im sogenannten Native Context.<\/p>\n\n\n\n<p>Nutzen wir z. B. den Appium-Befehl <code>getPageSource <\/code>im Rahmen einer hybriden Anwendung, werden wir in der Ausgabe bez\u00fcglich der Web Views nur Elemente finden wie <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">&lt;<\/code><code>XCUIElementType<\/code><code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">\u2026&gt;<\/code>. Wichtige Elemente wie Anchor Tags oder Divs werden uns zun\u00e4chst nicht angezeigt.<\/p>\n\n\n\n<p>Solange wir uns also im Native Context bewegen, sind alle Web Views oder sogenannter Web Context eine Blackbox f\u00fcr Appium. Wir sind zwar in der Lage, Web View UI-Elemente auszumachen und eventuell auch einige Buttons, die zum Beispiel iOS mit sich bringt. Elemente anhand von CSS-Selektoren auszumachen, wird jedoch nicht m\u00f6glich sein.<\/p>\n\n\n\n<p>Um besseren Zugriff auf den Web Context zu bekommen, m\u00fcssen wir unsere Appium Session in den Web Context bringen. Dies k\u00f6nnen wir tun, indem wir zun\u00e4chst den Namen des Web Contexts mit dem Befehl <code>driver.getContextHandles<\/code><em> <\/em>ausmachen. Dieser gibt ein Array aller Context-Namen zur\u00fcck, die Appium erstellt hat, um sie dem verf\u00fcgbaren Context zuzuordnen. In unserem Fall wird uns ein Web Context namens WebView1 und ein Native Context namens NativeElement1 ausgegeben.<\/p>\n\n\n\n<p>Um unsere Appium Session nun in den Web Context zu bringen, nutzen wir den Befehl <code>driver.setContext(WebView1)<\/code><em>. <\/em>Wenn dieser Befehl ausgef\u00fchrt wurde, nutzt Appium die Context-Umgebung, die dem angegebenen Context entspricht.<\/p>\n\n\n\n<p>Alle weiteren Befehle operieren nun innerhalb des Web Context und beziehen sich auf WebView1. Um wieder das native Element ansprechen zu k\u00f6nnen, nutzen wir den gleichen Befehl erneut mit dem Namen des Native Context, den wir ansprechen wollen. In unserem Fall also <code>driver.setContext(NativeElement1)<\/code><em>. <\/em>Wenn wir herausfinden m\u00f6chten, in welchem Context wir uns aktuell befinden, k\u00f6nnen wir den folgenden Befehl nutzen: <code>String currentContext = driver.getContext();<\/code><\/p>\n\n\n\n<p>Nachdem wir nun kurz auf die Context API von Appium eingegangen sind, lassen Sie uns einen Blick auf die Funktionsweise werfen.<\/p>\n\n\n\n<p>Auf iOS nutzt Appium das sogenannte \u201eremote Debugger Protocol\u201c, welches von Safari unterst\u00fctzt wird. Dieses \u201eremote Debugger Protocol\u201c erm\u00f6glicht es uns, Information \u00fcber die in Safari angezeigten Seiten zu erhalten oder das Browserverhalten zu kontrollieren. Eine Methode, auf die wir zur\u00fcckgreifen k\u00f6nnen, ist die M\u00f6glichkeit, JavaScript in die aktuelle Webseite einzuf\u00fcgen.<\/p>\n\n\n\n<p>Appium verwendet diese Funktion, um alle in der WebDriver API verf\u00fcgbaren Befehle durchzuf\u00fchren.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Unterst\u00fctzung von Codesprachen<\/h2>\n\n\n\n<p>Mit Appium k\u00f6nnen Sie Tests in verschiedenen Codesprachen schreiben. Dies ist ein Vorteil des Client-Server-Modells. Das Appium-Entwicklungsteam kann alle Appium-Funktionen in nur einer Server-Codebasis implementieren, welche in JavaScript geschrieben ist (Appium Server = NodeJS Plattform). Dennoch k\u00f6nnen die Nutzerinnen und Nutzer, die Code in einer anderen Programmiersprache schreiben, Zugriff auf diese Funktionen erhalten. Der Zugriff erfolgt \u00fcber die Appium Client Libraries, die uns Appium zur Verf\u00fcgung stellt. Wenn wir zum Bespiel unsere automatischen Tests in Java schreiben m\u00f6chten, m\u00fcssen wir die entsprechenden Appium Java Libraries in unseren Appium Client integrieren.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Appium Client-Server-Modell<\/h2>\n\n\n\n<p>Wie bereits beschrieben senden wir unseren Testcode (Befehle\/Requests) \u00fcber den Appium Client mit den entsprechenden Libraries an den Appium Server. Als Appium Client kann zum Bespiel das Entwickler-Tool Eclipse dienen. Der Appium Server wiederum schickt unseren Testcode (Befehle\/Requests) an das mobile Endger\u00e4t, auf dem dieser dann ausgef\u00fchrt wird. Doch gehen wir etwas mehr ins Detail.<\/p>\n\n\n\n<p>Damit der Appium Server den Appium Client Testcode (Befehle\/Requests) interpretieren kann, nutzt er das WebDriver Protocol oder das \u00e4ltere JSON Wire Protocol, welche unseren Testcode in einen HTTP RESTful request konvertieren.<\/p>\n\n\n\n<p>Danach schickt der Appium Server unseren Testcode, je nachdem welches Endger\u00e4t wir ansprechen wollen, an das plattformspezifische Testframework, welches wiederum den Testcode auf dem Endger\u00e4t ausf\u00fchrt. Der Appium Server ist an dieser Stelle in der Lage, mit den unterschiedlichen Testframeworks zu kommunizieren.<\/p>\n\n\n\n<p>Damit der Appium Server entscheiden kann, mit welchem dieser plattformspezifischen Testframeworks bzw. mit welchem Endger\u00e4t er kommunizieren soll, muss unser Testcode sogenannte \u201eDesired Capabilities\u201c als JSON Object an den Appium Server mitschicken. In den Desired Capabilities geben wir zum Beispiel den Ger\u00e4tenamen, die Plattform (iOS, Android\u2026) und die Plattformversion an.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"479\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Client_Server_Modell-600x479.png\" alt=\"Appium Client-Server-Modell\" class=\"wp-image-2208\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Client_Server_Modell-600x479.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Client_Server_Modell-768x613.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Client_Server_Modell-640x511.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Client_Server_Modell.png 918w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 7: Appium Client-Server-Modell<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Es gibt nicht unbedingt nur ein Testframework pro Plattform. So gibt es beispielsweise unter Android drei verschiedene Automatisierungstechnologien von Google. Die \u00e4lteste, UiAutomator, wurde von UiAutomator2 abgel\u00f6st. UiAutomator2 hat eine Vielzahl neuer Automatisierungsfunktionen hinzugef\u00fcgt.<\/p>\n\n\n\n<p>Das neueste Testframework hei\u00dft Espresso und funktioniert mit einem ganz anderen Modell als UiAutomator2, bietet jedoch eine viel gr\u00f6\u00dfere Stabilit\u00e4t und Testgeschwindigkeit.<\/p>\n\n\n\n<p>Sie k\u00f6nnen Ihre Appium-Tests anweisen, sich auf eine dieser Testframeworks zu beziehen, basierend auf deren spezifischen Funktionen und der Plattformunterst\u00fctzung.<\/p>\n\n\n\n<p>Theoretisch k\u00f6nnten Sie die Testframeworks auch direkt einsetzen. Appium bietet jedoch einen praktischen Rahmen f\u00fcr die verschiedenen Testframeworks, stellt sie mit demselben WebDriver-Protocol zur Verf\u00fcgung und versucht, Verhaltensunterschiede zwischen den verschiedenen Testframeworks auszugleichen.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"361\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Testframeworks-600x361.png\" alt=\"Appium als Rahmen f\u00fcr Testframeworks\" class=\"wp-image-2212\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Testframeworks-600x361.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Testframeworks-768x462.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Testframeworks-640x385.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_1_Testframeworks.png 899w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 8: Appium als Rahmen f\u00fcr Testframeworks<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Wenn neue Testframeworks erscheinen, kann das Appium-Team ein Kommunikationsprotokoll (Driver) f\u00fcr diese erstellen, sodass Sie auf diese zugreifen k\u00f6nnen, ohne all Ihre Testskripte neu schreiben zu m\u00fcssen. Dies ist die St\u00e4rke der Verwendung eines Standardprotokolls und der Client-Server-Architektur.<\/p>\n\n\n\n<p>Es erm\u00f6glicht auch die plattform\u00fcbergreifende Automatisierung. Anstatt zwei verschiedene Testframeworks in zwei verschiedenen Sprachen zu lernen, k\u00f6nnen Sie in vielen F\u00e4llen ein Appium-Skript schreiben und dieses auf unterschiedlichen Plattformen ausf\u00fchren.<\/p>\n\n\n\n<p>Wer Appium nutzt, f\u00fcr den ist es nicht erforderlich, viel \u00fcber diese zugrunde liegenden Testframeworks zu wissen, da sie sich nur mit der Appium API befassen und beispielsweise keinen XCUITest- oder Espresso-Test schreiben.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Zusammenfassung<\/h2>\n\n\n\n<p>Zusammenfassend ist zu sagen: Appium ist ein Tool zur Automatisierung mobiler Anwendungen, welches von Selenium inspiriert wurde. Tats\u00e4chlich basieren Appium-Tests auf demselben Protocol wie Selenium-Tests. Selenium bietet seinen Nutzerinnen und Nutzern die M\u00f6glichkeit, Webbrowser zu steuern. Aus historischen Gr\u00fcnden wird es daher manchmal als \u201eWebDriver\u201c oder \u201eSelenium\/WebDriver\u201c bezeichnet.<\/p>\n\n\n\n<p>Wie Sie eventuell bereits am Namen erkennen k\u00f6nnen, wurde Appium so konzipiert, dass es so gut wie m\u00f6glich mit Selenium kompatibel ist. Appium \u00fcbernahm das gleiche Protocol wie Selenium, so dass Appium- und Seleniumtests gr\u00f6\u00dftenteils gleich aussehen und sich gleich \u201eanf\u00fchlen\u201c.<\/p>\n\n\n\n<p>Tats\u00e4chlich wurden die Appium Client Libraries auf den Selenium Client Libraries aufgebaut. Es gab jedoch ein Problem: Das Selenium Protocol wurde nur zur Automatisierung von Webbrowsern entwickelt. Daher musste Appium dem Protocol Befehle hinzuf\u00fcgen, um mobilspezifische Automatisierung zu unterst\u00fctzen. Dies bedeutet, dass Appium-Befehle eine Erweiterung der Selenium-Befehle sind.<\/p>\n\n\n\n<p>Die zuvor aufgestellte Behauptung, dass die Einf\u00fchrung von Appium in unser Beispielprojekt aufgrund des Kosten-Nutzen-Faktors nicht sinnvoll w\u00e4re, ist also falsch. Es ist sogar davon auszugehen, dass eine Einf\u00fchrung, neben einer besseren Abdeckung hinsichtlich der Testautomatisierung, auch zu einer Prozessverbesserung beitragen kann.<\/p>\n\n\n\n<p>Ich hoffe, dieser kurze Exkurs in die Welt der Testautomatisierung und in den technischen Hintergrund von Appium hat Ihnen etwas Freude bereitet.<\/p>\n\n\n\n<p>In meinem zweiten Blog zum Thema Appium zeige ich Ihnen, wie wir Appium einrichten. Zus\u00e4tzlich werde ich anhand konkreter Codebeispiele zeigen, was wir mit Appium in unserem Multiplattformprojekt leisten k\u00f6nnen. Dabei gehen wir auf die bereits angesprochenen F\u00e4lle ein.<\/p>\n\n\n\n<p>Ich w\u00fcrde mich freuen, wenn Sie auch in den n\u00e4chsten Beitrag dieser Blogreihe wieder reinschauen. Bis dahin, happy testing.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Appium ist ein Testautomatisierungs-Tool, welches speziell f\u00fcr den Test mobiler Anwendungen entwickelt wurde und bietet uns die M\u00f6glichkeit, mobile-spezifische Anwendungsf\u00e4lle zu simulieren.<\/p>\n","protected":false},"author":113,"featured_media":2209,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[10],"tags":[52,223,225,328,561,564,565,566,567,568,569,570],"topics":[227],"class_list":["post-2191","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-qualitaetssicherung","tag-testautomatisierung","tag-mobiles-testen","tag-mobile-endgeraete","tag-selenium","tag-test","tag-appium","tag-reale-endgeraete","tag-hardware-fragmentierung","tag-software-fragmentierung","tag-hybride-apps","tag-client-server-modell","tag-zeiss-digital-innovation","topics-testautomatisierung"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Appium \u2013 Eine Einf\u00fchrung (Teil 1) - ZEISS Digital Innovation Blog<\/title>\n<meta name=\"description\" content=\"Appium ist ein Testautomatisierungstool f\u00fcr den Test mobiler Anwendungen. Es bietet die M\u00f6glichkeit spezifische Anwendungsf\u00e4lle zu simulieren.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Appium - Eine Einf\u00fchrung\" \/>\n<meta property=\"og:description\" content=\"Appium ist ein Testautomatisierungs-Tool, welches speziell f\u00fcr den Test mobiler Anwendungen entwickelt wurde und bietet uns die M\u00f6glichkeit, mobile-spezifische Anwendungsf\u00e4lle zu simulieren.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-18T09:23:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-04-01T07:14:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_Client_Server_Modell_fi.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1616\" \/>\n\t<meta property=\"og:image:height\" content=\"908\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Mario Rolletschek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Appium - Eine Einf\u00fchrung\" \/>\n<meta name=\"twitter:description\" content=\"Appium ist ein Testautomatisierungs-Tool, welches speziell f\u00fcr den Test mobiler Anwendungen entwickelt wurde und bietet uns die M\u00f6glichkeit, mobile-spezifische Anwendungsf\u00e4lle zu simulieren.\" \/>\n<meta name=\"twitter:creator\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:site\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mario Rolletschek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"13\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/\",\"name\":\"Appium \u2013 Eine Einf\u00fchrung (Teil 1) - ZEISS Digital Innovation Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_Client_Server_Modell_fi.png\",\"datePublished\":\"2021-03-18T09:23:23+00:00\",\"dateModified\":\"2021-04-01T07:14:20+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/1ad31dfa9d4b11b25bbeb3d51f5f9047\"},\"description\":\"Appium ist ein Testautomatisierungstool f\u00fcr den Test mobiler Anwendungen. Es bietet die M\u00f6glichkeit spezifische Anwendungsf\u00e4lle zu simulieren.\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/#primaryimage\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_Client_Server_Modell_fi.png\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_Client_Server_Modell_fi.png\",\"width\":1616,\"height\":908,\"caption\":\"Appium Client-Server-Modell\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Appium \u2013 Eine Einf\u00fchrung (Teil 1)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/1ad31dfa9d4b11b25bbeb3d51f5f9047\",\"name\":\"Mario Rolletschek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/rolletschek_mario-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/rolletschek_mario-150x150.jpg\",\"caption\":\"Mario Rolletschek\"},\"description\":\"Mario Rolletschek studierte Angewandte Medienwirtschaft mit Studienrichtung Digital Designer und ist bei ZEISS Digital Innovation als Senior Consultant Quality Assurance t\u00e4tig. Seine beruflichen Schwerpunkte liegen im Bereich Softwaretest und mobile Applikationen. Zudem interessiert er sich f\u00fcr Themen wie QA-Prozessmanagement und Testautomatisierung und \u00fcbernimmt dar\u00fcber hinaus Aufgaben als Scrum Master.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/mariorolletschek\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Appium \u2013 Eine Einf\u00fchrung (Teil 1) - ZEISS Digital Innovation Blog","description":"Appium ist ein Testautomatisierungstool f\u00fcr den Test mobiler Anwendungen. Es bietet die M\u00f6glichkeit spezifische Anwendungsf\u00e4lle zu simulieren.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/","og_locale":"de_DE","og_type":"article","og_title":"Appium - Eine Einf\u00fchrung","og_description":"Appium ist ein Testautomatisierungs-Tool, welches speziell f\u00fcr den Test mobiler Anwendungen entwickelt wurde und bietet uns die M\u00f6glichkeit, mobile-spezifische Anwendungsf\u00e4lle zu simulieren.","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/","og_site_name":"Digital Innovation Blog","article_publisher":"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/","article_published_time":"2021-03-18T09:23:23+00:00","article_modified_time":"2021-04-01T07:14:20+00:00","og_image":[{"width":1616,"height":908,"url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_Client_Server_Modell_fi.png","type":"image\/png"}],"author":"Mario Rolletschek","twitter_card":"summary_large_image","twitter_title":"Appium - Eine Einf\u00fchrung","twitter_description":"Appium ist ein Testautomatisierungs-Tool, welches speziell f\u00fcr den Test mobiler Anwendungen entwickelt wurde und bietet uns die M\u00f6glichkeit, mobile-spezifische Anwendungsf\u00e4lle zu simulieren.","twitter_creator":"@ZEISS_di","twitter_site":"@ZEISS_di","twitter_misc":{"Verfasst von":"Mario Rolletschek","Gesch\u00e4tzte Lesezeit":"13\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/","name":"Appium \u2013 Eine Einf\u00fchrung (Teil 1) - ZEISS Digital Innovation Blog","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_Client_Server_Modell_fi.png","datePublished":"2021-03-18T09:23:23+00:00","dateModified":"2021-04-01T07:14:20+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/1ad31dfa9d4b11b25bbeb3d51f5f9047"},"description":"Appium ist ein Testautomatisierungstool f\u00fcr den Test mobiler Anwendungen. Es bietet die M\u00f6glichkeit spezifische Anwendungsf\u00e4lle zu simulieren.","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/#primaryimage","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_Client_Server_Modell_fi.png","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_Client_Server_Modell_fi.png","width":1616,"height":908,"caption":"Appium Client-Server-Modell"},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/appium-einfuehrung-teil-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/"},{"@type":"ListItem","position":2,"name":"Appium \u2013 Eine Einf\u00fchrung (Teil 1)"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/1ad31dfa9d4b11b25bbeb3d51f5f9047","name":"Mario Rolletschek","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/rolletschek_mario-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/rolletschek_mario-150x150.jpg","caption":"Mario Rolletschek"},"description":"Mario Rolletschek studierte Angewandte Medienwirtschaft mit Studienrichtung Digital Designer und ist bei ZEISS Digital Innovation als Senior Consultant Quality Assurance t\u00e4tig. Seine beruflichen Schwerpunkte liegen im Bereich Softwaretest und mobile Applikationen. Zudem interessiert er sich f\u00fcr Themen wie QA-Prozessmanagement und Testautomatisierung und \u00fcbernimmt dar\u00fcber hinaus Aufgaben als Scrum Master.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/mariorolletschek\/"}]}},"author_meta":{"display_name":"Mario Rolletschek","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/mariorolletschek\/"},"featured_img":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2021\/02\/202102_Appium_Client_Server_Modell_fi-600x337.png","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Qualit\u00e4tssicherung<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Qualit\u00e4tssicherung<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Testautomatisierung<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">mobiles Testen<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">mobile Endger\u00e4te<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Selenium<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Test<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Appium<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">reale Endger\u00e4te<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Hardware-Fragmentierung<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Software-Fragmentierung<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">hybride Apps<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Client-Server-Modell<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">ZEISS Digital Innovation<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Testautomatisierung<\/span>","<span class=\"advgb-post-tax-term\">mobiles Testen<\/span>","<span class=\"advgb-post-tax-term\">mobile Endger\u00e4te<\/span>","<span class=\"advgb-post-tax-term\">Selenium<\/span>","<span class=\"advgb-post-tax-term\">Test<\/span>","<span class=\"advgb-post-tax-term\">Appium<\/span>","<span class=\"advgb-post-tax-term\">reale Endger\u00e4te<\/span>","<span class=\"advgb-post-tax-term\">Hardware-Fragmentierung<\/span>","<span class=\"advgb-post-tax-term\">Software-Fragmentierung<\/span>","<span class=\"advgb-post-tax-term\">hybride Apps<\/span>","<span class=\"advgb-post-tax-term\">Client-Server-Modell<\/span>","<span class=\"advgb-post-tax-term\">ZEISS Digital Innovation<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 5\u00a0Jahren ago","modified":"Updated 5\u00a0Jahren ago"},"absolute_dates":{"created":"Posted on M\u00e4rz 18, 2021","modified":"Updated on April 1, 2021"},"absolute_dates_time":{"created":"Posted on M\u00e4rz 18, 2021 9:23 a.m.","modified":"Updated on April 1, 2021 7:14 a.m."},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/2191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/users\/113"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/comments?post=2191"}],"version-history":[{"count":19,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/2191\/revisions"}],"predecessor-version":[{"id":2411,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/2191\/revisions\/2411"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media\/2209"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media?parent=2191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/categories?post=2191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/tags?post=2191"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/topics?post=2191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}