Appium vs Doğma Çərçivələr: Müqayisə

Kouros Aliabadi və Rohan Janjua tərəfindən

Bu yazı təcrübələrimizin xülasəsidir və mütləq bütün şəkil deyil. Gələcək yazılarda öz araşdırmalarınızda sizə kömək etmək üçün bəzi bağlantılar təqdim edəcəyik və ümid edirik ki, bu aparıcı mobil avtomatlaşdırma yanaşmaları arasında seçim etmək istəyən hər kəs üçün yaxşı bir başlanğıc nöqtəsi olacaqdır.

Orada alternativ avtomatlaşdırma vasitələri var, lakin bu blog yazıları çərçivəsində özümüzü bu Appium və iOS və Android üçün standart doğma vasitələrlə məhdudlaşdıracağıq: müvafiq olaraq XCUITests və Espresso.

Appium:

Appium, son bir neçə ildə mobil avtomatlaşdırma üçün defekto vasitəsi olaraq təcrübə kimi bir seleni təmin etdi. Bu günə qədər bir sıra səbəblərə görə ən peşəkar seçimlərdən biri olmuşdur.

  1. Əvvəlcə bu, geniş populyar dillərin dəstəyi ilə gələn dil aqnostikasıdır. Seçdiyiniz dilinizdə veb qurğusunun bir müştərisi varsa, Appium-dan istifadə edə bilərsiniz. Bu paylaşılan jsonWireProtocol-a endirilib. Bu, test tərtibatçılarına aləti tez bir zamanda almağa imkan verdiyi üçün çox rahatdır. Dəstəklənən dillərə Java, C #, JavaScript, Python və yaqut daxildir, lakin bunlarla məhdudlaşmır.
  2. Asanlıqla başlamaq və işə başlamaq çox sadədir. Əvvəlki nöqtədə olduğu kimi, Appium'un Selenium veb qurğusuna bənzərliyi çoxdur. Bunun faydası, test tərtibatçıları selenium veb qurma veb testlərini yazmaq üçün istifadə edilərsə, onda Appium ala bilmək üçün nisbətən sadə və olduqca asan olmalıdır.
  3. Appium eyni platforma kod bazasından birdən çox platformanın sınanmasına imkan verir. Mərkəzləşdirilmiş bir test qrupunda və ya həm iOS, həm də Android-də işləyən bir qrupda çalışanlar üçün, test infrastrukturu və emulyatorlarla işləmək üçün tələb olunan qazan kodunun miqdarını azalda bilər.
  4. Əlavə olaraq bəzi mühəndis mühəndislərimizin təcrübəsində veb baxışdan istifadə edən yerli tətbiqlərin dəstəyi digər rəqiblərdən daha çox Appium-da daha yaxşıdır. Appium tərəfindən verilən dəstək hibrid tətbiqləri avtomatlaşdırmağa gəldikdə əvəzsiz ola bilər.

Appium-dan istifadənin bəzi çatışmazlıqları da var:

  1. Təcrübəmizdə, Appium testləri ya XCUITests ya da Espresso-da yazılmış testlərdən daha yavaş keçir
  2. Test kodu dev kodu ilə yaşamır. İndi bu müzakirə üçün ola bilər, amma test kodunun və dev kodunun bir-birinə yaxın yaşamağını qətiyyətlə hiss edirik.
  3. Çarpaz platforma tətbiqlərini sınamaq üçün həmişə Appium ilə əlaqəli bir dərəcədə texniki mürəkkəblik olacaqdır. Ya etməlisən:
  4. Yalnız bir test sınağından çağırıla bilmək üçün bir müqaviləyə riayət edən PageObjects / ScreenObjects-in 2 dəstini qoruyun.
  5. 2 dəst test yazın
  6. Tərtibatçıların hər iki tətbiqdə eyni iddən istifadə etməsini təmin edin

Doğma vasitələr:

Tətbiq inkişafı üçün iki əsas platforma indi öz rəqabət qabiliyyətli UI avtomatlaşdırma alətlərinə malikdir: XCUITest və Espresso. Bu iki vasitənin yetkinliyi kəskin şəkildə yaxşılaşdı və WWDC 2017Apple'dakı son bir danışmada, UI avtomatlaşdırma vasitələrini inkişaf etdirmək üçün çox fəal olduqlarını açıqladı.

  1. XCUITest və Espresso-nun istifadəsinin əsas üstünlüyü var: bunlar platform təminatçıları tərəfindən yaradılmışdır: Apple və Google. Bu alətlər həmişə iOS və Android sınaqları üçün əyridən qabaq olacaq. Appium’un hər hansı bir yeni xüsusiyyəti əksər hallarda mövcud yerli alət funksiyasının üstündə qurulacaqdır.
  2. Gözümüzdəki başqa bir böyük fayda, test kodunu layihənizin mənbə kodu ilə daxil etməyinizdir. Bu, bəlkə də bir az müzakirə mövzusundadır, ancaq gələcək bir yazıda müzakirə edəcəyik. Hal-hazırda yalnız bir layihə daxilində və inkişaf etdiricilərinizin istifadə etdiyi eyni dildə test kodunuzun böyük üstünlüklərə sahib olduğuna inandığımızı bildirəcəyik. Komanda daxilində əməkdaşlıq üçün daha çox stimul verir və hər kəsə proqram təminatının inkişaf etdirilməsinin bu tərəfinə asanlıqla töhfə verməyə imkan verir.
  3. Bəzən android təcrübəsinin, bu vəziyyətləri həll etmək üçün test çərçivənizi çətinləşdirməməyiniz üçün hər bir platforma üçün testlərinizi yazaraq, iOS təcrübəsi ilə fərqli olacağı ehtimal olunur.
  4. Daha az qırıq. Doğma vasitələr daha az qırıqdır. Bu, daha az sayda hərəkət edən hissə və test kodu ilə cihaz arasında daha az təbəqə əlaqəsi ilə əlaqəli ola bilər, ancaq doğma vasitələrlə yazılmış testlər daha az həssas görünür.
  5. Appium kimi bir alət istifadə etsəniz, daha böyük bir alət dəstindən istifadə edə bilərsiniz. Məsələn, Android ilə həm UiAutomator kitabxanasına, həm də Espresso kitabxanasına girişiniz var.

Espresso:

Google'un Android test vasitəsi Espresso, bəzi diqqətəlayiq xüsusiyyətlərinə malikdir.

  1. Espresso çox sürətli, UI avtomatlaşdırmasında bu qədər sürətli bir şey görmədik. UI avtomatlaşdırma işığı kimi, sürətə yaxın başqa bir vasitə yoxdur.
  2. Espresso bəzi müstəsna hallar istisna olmaqla bunu sizin üçün idarə etdiyinə görə işlərin baş verəcəyini və ya test kodunuzda bitməsini gözləməkdən qorxmaq lazım deyil. Bu, əsasən UI avtomatlaşdırılması ilə bağlı ən kövrək bir şeyi tənlikdən çıxarır.
  3. Espresso, 'boz qutu' test yanaşması tətbiq edir. Qara qutu deyil, olduqca ağ deyil. Espresso ilə tester, appium kimi bir qara qutu alətindən daha çox tətbiqə daha çox nəzarət edir.
  4. Espresso, sınayıcıya simulyator işə salmadan və ya bir cihazı işə salmadan Android SDK-ı işə salmaq üçün bir çərçivə olan Robolectric kimi vasitələrdən istifadə etməyə imkan verir. Bunun mənası, testlərinizin daha sürətli başlaması və daha sürətli keçməsidir.

Google tərəfindən yaradılan Espresso-ya bənzər bir çərçivə var, burada da qeyd edilməyə dəyər olan iOS testi üçün: EarlGrey. Biz istifadə etməmişik, amma Espressonun bəzi faydalarını iOS-a gətirsə, araşdırmağa dəyər.

Doğma test alətlərindən istifadənin bəzi çatışmazlıqları da var:

  1. Çarpaz platforma tətbiqetməsini inkişaf etdirirsinizsə, Appium kimi bir vasitə istifadə etmisinizsə, potensial olaraq testlərin sayını iki dəfə artırmalı olacaqsınız.
  2. Çarpaz platforma tətbiqetməsini hazırlayırsınızsa, iki dili bilməlisiniz.
  3. Bu yanaşmaya daha mürəkkəblik cəlb edilə bilər. Bu, Espresso kimi bir vasitənin test cihazına verə biləcəyi əlavə güc və girişin yan təsiridir. Məsələn Espresso, İdlingResource istifadə edərək test altında tətbiqetmədə hadisələrin avtomatik tamamlanmasını gözləyir. Ancaq bəzi hallarda test cihazı əl ilə İdlingResource tətbiq etməli olacaq.
  4. Espresso kimi bir vasitə ilə test cihazı bir istifadəçinin nöqteyi-nəzərindən əldə edə bilməyəcəyi bir vəziyyətə gətirə bilər. Yenə də bu, əldə etdiyiniz əlavə gücün digər tərəfidir.