Appium vs Native Frameworks: E Verglach

Vum Kouros Aliabadi an Rohan Janjua

Dëse Post ass e Resumé vun eisen Erfarungen an net onbedéngt dat ganzt Bild. Mir ginn e puer Links a bauen dorop an zukünftege Posts fir Iech an Ärer eegener Fuerschung ze hëllefen. Mir hoffen datt dëst e gudde Startpunkt fir jiddereen ass deen d'Wiel wëllt tëscht e puer vun de féierende mobilen Automatiséierungs-Approche maachen.

Et gi alternativ Automatiséierungsinstrumenter dobaussen, awer fir de Kontext vun dësem Blogpost beschränken mir eis op dësen Appium an d'Default native Tools fir iOS an Android: XCUITests an Espresso resp.

Appium:

Appium war an de leschte Joren de Defacto-Tool fir mobil Automatiséierung ze bidden, wat e Selenium wéi Erfahrung liwwert. Bis elo war et ee vun de professionnelste viabel Wielen aus e puer Grënn.

  1. Als éischt ass et sproochlech agnostesch, mat Ënnerstëtzung fir eng breet Palette vu populäre Sproochen. Wann Är Sprooch vun der Wiel e Webdriver Client huet, kënnt Dir Appium benotzen. Dëst ass erof op de gemeinsame jsonWireProtocol. Dëst ass vu grousser Komfort well et Testentwéckler et erméiglecht de Tool séier opzehuelen. Ënnerstëtzte Sprooche enthalen sinn awer net limitéiert op Java, C #, JavaScript, Python a Rubin.
  2. Et ass ganz einfach fir einfach z'erreechen an ze starten. Ähnlech mam virege Punkt huet d'Appium vill Ähnlechkeet mam Selenium Webdriver. De Virdeel dovun ass datt wann d'Testentwéckler benotzt ginn fir Selen Webdriver Web Tester ze schreiwen, da sollt den Appium relativ einfach ophuelen an zimmlech intuitiv sinn.
  3. Appium erméiglecht Tester vu méi Plattformen aus der selwechter Testcode Basis. Fir déi, déi an enger zentraliséierter Testteam oder an engem Team schaffen, dat iwwer iOS an Android schafft, kann et d'Quantitéit vum Boilerplate Code reduzéieren fir mat der Testinfrastruktur an Emulatoren ze schaffen.
  4. Zousätzlech an der Experienz vun e puer vun eisen Testingenieuren ass d'Ënnerstëtzung fir nativ Apps, déi Webviews benotzen, besser op Appium wéi déi meescht aner Konkurrenten. D'Ënnerstëtzung ugebuede vun Appium kann onschätzbar sinn wann et drëm geet Hybrid Apps ze automatiséieren.

Et ginn och e puer Nodeeler fir d'Appium ze benotzen:

  1. An eiser Erfahrung lafen d'Appium Tester vill méi lues wéi Tester, déi an entweder XCUITests oder Espresso geschriwwe goufen
  2. Den Testcode lieft net mam Dev Code. Elo kann dëst op Debatt sinn, awer mir si fest datt Testcode an den Dev Code noenee solle liewen.
  3. Fir Tester iwwer Cross Plattform Apps wäert et ëmmer en Deel vun der technescher Komplexitéit mat Appium involvéiert sinn. Dir musst entweder:
  4. Maacht 2 Sets vun PageObjects / ScreenObjects déi un engem eenzege Kontrakt festhalen, sou datt se vun nëmmen engem Set Tester genannt kënne ginn.
  5. Schreift 2 Sets vun Tester
  6. Gitt sécher datt d'Entwéckler d'selwecht ID iwwer zwou Apps benotzen

Native Tools:

Déi zwee Haaptplattforme fir d'App Entwécklung hunn elo ganz kompetitiv UI Automatiséierungsinstrumenter vun hirer eegener: XCUITest an Espresso. D'Maturitéit vun dësen zwee Tools huet dramatesch verbessert an an engem kierzleche Gespréich um WWDC 2017Apple hunn et kloer gemaach datt si ganz aktiv si fir hir UI Automatiounstools ze verbesseren.

  1. Et gëtt e fundamentale Virdeel fir XCUITest an Espresso ze benotzen: si gi vun de Plattform Ubidder erstallt: Apple a Google. Dës Tools wäerte ëmmer nach virun der Curve fir iOS an Android Testen. All nei Feature aus Appium géif an de meeschte Fäll uewen op eng existent gebierteg Outil Funktionalitéit gebaut ginn.
  2. En anere grousse Virdeel an eisen Aen ass datt Dir den Testcode mat de Quellcode vun Ärem Projet enthält. Dëst ass vläicht liicht zur Debatt, awer mir diskutéieren dëst an engem zukünftege Post. Fir de Moment solle mer just soen datt mir gleewen datt Ären Testcode an dem selwechte Projet abegraff sinn an an der selwechter Sprooch déi Är Entwéckler benotzen grouss Virdeeler huet. Et gëtt méi Ureiz fir d'Zesummenaarbecht am Team an erlaabt jidderee ganz einfach zu dësem Aspekt vun der Softwareentwécklung bäizedroen.
  3. Heiansdo soll d'Android Experienz anescht sinn wéi d'iOS Erfarung, andeems Dir Är Tester fir all Plattform schreift Dir musst Ären Testraum net komplizéiere fir dës Situatiounen ze verschaffen.
  4. Vill manner flaky. Nierft Tools si just manner flackeg. Et kann eppes mat enger méi klenger Zuel vu bewegenden Deeler a manner Schichten vun der Kommunikatioun tëscht dem Testcode an der Instrumentatioun ze dinn hunn, awer Tester geschriwwe mat nativen Tools schéngen vill manner flaach ze sinn.
  5. Dir kënnt e vill méi groussen Toolset benotze wéi wann Dir e Tool wéi Appium benotzt. Zum Beispill mat Android hutt Dir Zougang zu der UiAutomator Bibliothéik an der Espresso Bibliothéik.

Espresso:

Google's Android Testinstrument Espresso huet e puer ordentleche Feature vun sech selwer déi et wäert ass ze nennen.

  1. Espresso ass ganz séier, mir hunn ni eppes sou séier an der UI Automatioun gesinn. Et ass wéi de Flash vun der UI Automatioun, keen aneren Tool kënnt bei senger Geschwindegkeet.
  2. Dir musst Iech keng Suergen drun waarden fir datt Saache geschéien oder an Ärem Testcode ofgeschloss sinn, well Espresso dëst fir Iech geréiert, ausser Ausnahmefäll. Dëst hëlt am meeschte déi bréchegst Saach iwwer d'UI Automatioun aus der Equatioun.
  3. Espresso hëlt eng 'gro Box' Testen Approche. Net ganz schwaarz Box, net ganz wäiss. Mam Espresso huet den Tester vill méi Kontroll iwwer d'Applikatioun wéi an engem schwaarze Box-Tool wéi Appium.
  4. Espresso erlaabt den Tester fir Tools ze benotzen wéi Robolectric, e Kader fir den Android SDK ze lafen ouni en Simulator ze starten oder en Apparat ze pluggelen. Wat dat bedeit ass datt Är Tester méi séier starten, a méi séier lafen.

Et gëtt e Kader ähnlech wéi Espresso, och vu Google erstallt, fir iOS Testen, déi et wäert ass hei ze nennen: EarlGrey. Mir hunn et net benotzt, awer wann et e puer Virdeeler vun Espresso op iOS bréngt, ass et gutt derwäert z'erkennen.

Et ginn och e puer Nodeeler fir d'Native Test Tools ze benotzen:

  1. Wann Dir eng Cross-Plattform App entwéckelt, musst Dir duebel d'Zuel vun den Tester am Verglach zu deem, wann Dir e Tool wéi Appium benotzt hutt.
  2. Wann Dir eng Cross Plattform App entwéckelt, musst Dir zwou Sprooche wëssen.
  3. Méi Komplexitéit kann an dëser Approche involvéiert ginn. Dëst ass eng Nebenwirkung vun der zousätzlecher Kraaft an Zougang, datt en Tool wéi Espresso den Tester kann ginn. Zum Beispill waart Espresso automatesch op d'Evenementer fir an der Uwendung am Test mat engem IdlingResource komplett ze sinn. Awer fir e puer Fäll muss den Tester den IdlingResource manuell implementéieren.
  4. Mat engem Tool wéi Espresso kann den Tester d'Applikatioun an e Staat setzen datt et aus engem Benotzer senger Perspektiv net erreechbar ass. Erëm, dat ass déi aner Säit vun der extra Kraaft déi Dir kritt.