„Appium“ ir „gimtoji“ sistemos: palyginimas

Autorius: Kouros Aliabadi ir Rohanas Janjua

Šis įrašas yra mūsų patirties santrauka ir nebūtinai visas vaizdas. Ateityje pateiksime keletą nuorodų ir jais pasinaudosime, kad padėtume jums atlikti savo tyrimus. Tikimės, kad tai bus geras atspirties taškas visiems, norintiems pasirinkti tarp kelių pirmaujančių mobiliosios automatizavimo metodų.

Yra ir alternatyvių automatikos įrankių, tačiau šio tinklaraščio įrašo kontekste apsiribosime šiuo „Appium“ ir numatytaisiais „iOS“ ir „Android“ numatytaisiais vietiniais įrankiais: atitinkamai „XCUITests“ ir „Espresso“.

„Appium“:

„Appium“ per pastaruosius kelerius metus buvo defacto priemonė mobiliajai automatizacijai, teikianti panašią į seleną patirtį. Iki šiol tai buvo vienas profesionaliausių sprendimų dėl daugelio priežasčių.

  1. Pirma, tai yra kalbos agnostika, palaikoma daugeliui populiarių kalbų. Jei jūsų pasirinkta kalba yra žiniatinklio serverio klientas, galite naudotis „Appium“. Tai priklauso nuo bendro „jsonWireProtocol“. Tai labai patogu, nes tai leidžia bandymų kūrėjams greitai pasiimti įrankį. Palaikomos kalbos apima, bet tuo neapsiribojant, „Java“, C #, „JavaScript“, „Python“ ir „ruby“.
  2. Paimti ir pradėti yra labai paprasta. Panašiai kaip ir ankstesniame punkte, „Appium“ turi daug panašumų į „Selenium“ žiniatinklio tvarkyklę. Privalumas yra tas, kad jei testų kūrėjai yra įpratę rašyti seleno žiniatinklio serverio žiniatinklio testus, tada „Appium“ turėtų būti gana paprasta pasiimti ir gana intuityvi.
  3. „Appium“ leidžia išbandyti kelias platformas iš tos pačios bandymo kodo bazės. Tiems, kurie dirba centralizuotoje bandymų komandoje arba komandoje, kuri veikia tiek „iOS“, tiek „Android“, tai gali sumažinti katilinės kodo kiekį, reikalingą dirbant su bandymo infrastruktūra ir emuliatoriais.
  4. Be to, kai kurių mūsų bandymų inžinierių patirtis rodo, kad vietinėms programoms, naudojančioms internetines peržiūras, „Appium“ yra didesnė parama nei daugeliui kitų konkurentų. „Appium“ teikiama parama gali būti neįkainojama, kai reikia automatizuoti hibridines programas.

Taip pat yra keletas „Appium“ naudojimo trūkumų:

  1. Mūsų patirtis rodo, kad „Appium“ testai vyksta daug lėčiau nei testai, parašyti „XCUITests“ arba „Espresso“
  2. Bandymo kodas negyvena su dev kodu. Dabar tai gali reikėti diskusijų, tačiau tvirtai manome, kad bandymo kodas ir dev kodas turėtų gyventi vienas šalia kito.
  3. Testuojant kelių platformų programas, „Appium“ visada bus šiek tiek sudėtingas. Jūs arba turite:
  4. Prižiūrėkite 2 „PageObjects“ / „ScreenObject“ rinkinius, kurie laikosi vienos sutarties, kad juos būtų galima iškviesti tik iš vieno bandymų rinkinio.
  5. Parašykite 2 testų rinkinius
  6. Įsitikinkite, kad kūrėjai abiejose programose naudoja tą patį ID

Gimtosios priemonės:

Dabar dvi pagrindinės programų kūrimo platformos turi labai konkurencingus UI automatizavimo įrankius: „XCUITest“ ir „Espresso“. Šių dviejų įrankių branda žymiai pagerėjo ir neseniai įvykusiame pokalbyje „WWDC 2017Apple“ paaiškėjo, kad jie labai aktyviai tobulina savo UI automatizavimo įrankius.

  1. Naudojant „XCUITest“ ir „Espresso“ yra pagrindinis pranašumas: juos sukuria platformos tiekėjai: „Apple“ ir „Google“. Šie įrankiai visada bus priekyje „iOS“ ir „Android“ bandymų kreivės. Bet kuri nauja „Appium“ funkcija daugeliu atvejų būtų sukurta remiantis esamo savitojo įrankio funkcijomis.
  2. Kitas svarbus pranašumas, mūsų akimis, yra tai, kad jūs įtrauksite bandymo kodą į savo projekto išeities kodą. Galbūt tai šiek tiek verta diskutuoti, bet mes tai aptarsime būsimame įraše. Kol kas tiesiog pasakysime, kad manome, jog jūsų bandymo kodo įtraukimas į tą patį projektą ir ta pačia kalba, kuria naudojasi jūsų kūrėjai, turi didelę naudą. Tai suteikia daugiau paskatų bendradarbiauti komandoje ir leidžia visiems lengvai prisidėti prie šio programinės įrangos kūrimo aspekto.
  3. Kartais manoma, kad „Android“ patirtis skiriasi nuo „iOS“ patirties - užrašydami kiekvienos platformos testus, neturite apsunkinti savo bandymo sistemos, kad galėtumėte tvarkyti šias situacijas.
  4. Daug mažiau dribsnių. Vietos įrankiai tiesiog nėra tokie patvarūs. Tai gali būti kažkas bendro su mažesniu judančių dalių skaičiumi ir mažesniu ryšio sluoksniu tarp bandymo kodo ir prietaisų, tačiau bandymai, užrašyti naudojant vietinius įrankius, atrodo, yra daug silpnesni.
  5. Galite naudoti daug didesnį įrankių rinkinį nei tuo atveju, jei naudojate tokį įrankį kaip „Appium“. Pvz., Naudodami „Android“ turite prieigą prie „UiAutomator“ bibliotekos ir „Espresso“ bibliotekos.

Espresso:

„Google“ „Android“ bandymo įrankis „Espresso“ turi keletą savų savybių, kurias verta paminėti.

  1. Espresso yra labai greitas, dar niekada nieko tokio greito nematėme naudodamiesi vartotojo sąsajos automatizavimu. Tai panašu į vartotojo sąsajos automatizavimo „Flash“, joks kitas įrankis nėra greitas.
  2. Nereikia jaudintis, kol lauki, kol viskas įvyks ar pasibaigs jūsų bandymo kodas, nes „Espresso“ tai tvarko už jus, išskyrus kai kuriuos išimtinius atvejus. Iš esmės tai paima trapiausią UI automatizavimo dalyką iš lygties.
  3. Espresso pasirenka „pilkosios dėžės“ testavimo metodą. Ne visai juoda dėžutė, ne visai balta. Espresso pagalba testeris gali žymiai labiau valdyti programą nei juodosios dėžės įrankyje, tokiame kaip obuolys.
  4. „Espresso“ leidžia testeriui naudoti tokius įrankius kaip „Robolectric“, „Android SDK“ paleidimo pagrindą, neįjungiant treniruoklio ar neįjungiant įrenginio. Tai reiškia, kad jūsų bandymai paleidžiami greičiau ir pagreitėja.

„IOS“ testavimui yra sistema, panaši į „Espresso“, kurią taip pat sukūrė „Google“, kurią verta paminėti čia: „EarlGrey“. Nenaudojome jo, bet jei verta atnešti kai kuriuos „Espresso“ pranašumus „iOS“, verta ištirti.

Vietinių testų įrankių naudojimas taip pat turi keletą trūkumų:

  1. Jei kuriate kelių platformų programą, jums gali tekti išlaikyti dvigubai daugiau bandymų, palyginti su tuo atveju, jei naudojote tokį įrankį kaip „Appium“.
  2. Jei kuriate kryžminės platformos programą, turėsite žinoti dvi kalbas.
  3. Šis požiūris gali būti sudėtingesnis. Tai yra šalutinis papildomos energijos ir prieigos, kurią testeriui gali suteikti toks įrankis kaip „Espresso“, poveikis. Pavyzdžiui, naudojant „IdlingResource“, „Espresso“ automatiškai laukia įvykių įvykdymo bandomoje programoje. Tačiau kai kuriais atvejais testeris turės įdiegti „IdlingResource“ rankiniu būdu.
  4. Naudodamas tokį įrankį kaip „Espresso“, testeris gali padėti programai pasiekti tokią būseną, kokios ji gali nepasiekti iš vartotojo perspektyvos. Vėlgi, tai yra kita jūsų gautos papildomos galios pusė.