Appium vs Native Frameworks: taqqoslash

Kouros Aliabadi va Roxan Yanjua tomonidan

Ushbu yozuv bizning tajribalarimizning xulosasi va umuman rasm emas. Biz sizning izlanishlaringizda sizga yordam berish uchun ba'zi havolalarni taqdim etamiz va bunga asoslanamiz. Umid qilamizki, bu mobil avtomatlashtirishning ba'zi etakchi yondashuvlari orasida tanlov qilishni istagan har bir kishi uchun yaxshi boshlang'ich bo'ladi.

U erda avtomatlashtirishning alternativ vositalari mavjud, ammo ushbu blogning mazmuni uchun biz o'zimizni Appium va iOS va Android uchun odatiy vositalar bilan cheklaymiz: mos ravishda XCUITests va Espresso.

Appium:

Appium so'nggi yillarda mobil avtomatlashtirishning defekto vositasi bo'lib, selenga o'xshash tajribani ta'minlaydi. Bugungi kunga qadar u bir nechta sabablarga ko'ra eng professional tanlovlardan biri bo'lib kelgan.

  1. Birinchidan, bu agnostik til bo'lib, mashhur tillarning keng doirasini qo'llab-quvvatlaydi. Agar sizning tilingizda veb-drayver mijozi bo'lsa, Appium-dan foydalanishingiz mumkin. Bu umumiy jsonWireProtokol-ga tegishli. Bu juda qulaydir, chunki bu test ishlab chiquvchilarga vositani tezda olish imkoniyatini beradi. Qo'llab-quvvatlanadigan tillar Java, C #, JavaScript, Python va ruby-lar bilan cheklangan emas.
  2. Osonlik bilan olish va boshlash juda oson. Avvalgi nuqtaga o'xshab, Appium Selenium veb-drayveriga juda ko'p o'xshashliklarga ega. Buning foydasi shundaki, agar test ishlab chiquvchilari selenyum veb-drayveri veb-testlarini yozishga odatlangan bo'lsa, unda Appium olish oson va intuitiv bo'lishi kerak.
  3. Appium bir nechta platformalarni bir xil sinov kodlari bazasidan sinovdan o'tkazishga imkon beradi. Markazlashtirilgan sinov guruhida yoki iOS va Android-da ishlaydigan bir guruhda ishlaydiganlar uchun, sinov infratuzilmasi va emulyator bilan ishlash uchun zarur bo'lgan qozon kodi miqdorini kamaytirishi mumkin.
  4. Bundan tashqari, ba'zi sinov muhandislarimiz tajribasida, veb-sahifalarni ishlatadigan mahalliy ilovalarni qo'llab-quvvatlash, boshqa raqiblarga qaraganda Appium-da yaxshiroqdir. Appium tomonidan qo'llab-quvvatlanadigan gibrid dasturlarni avtomatlashtirish haqida gap ketganda bebaho bo'lishi mumkin.

Appium-ning ba'zi kamchiliklari ham mavjud:

  1. Bizning tajribamizda Appium testlari XCUITests yoki Espresso-da yozilgan testlarga qaraganda ancha sekin ishlaydi
  2. Sinov kodi dev kodi bilan yashamaydi. Endi bu munozaraga tayyor bo'lishi mumkin, ammo biz sinov kodi va dev kodi bir-biriga yaqin yashashi kerakligini qat'iyan his qilamiz.
  3. O'zaro platforma dasturlarini sinab ko'rish uchun har doim Appium bilan bog'liq bo'lgan biron-bir darajada texnik murakkablik bo'ladi. Siz quyidagini qilishingiz kerak:
  4. Bitta shartnomani bajaradigan PageObjects / ScreenObjects ning ikkita to'plamini saqlang, shunda ularni faqat bitta testlar to'plamidan chaqirish mumkin.
  5. 2 ta test to'plamini yozing
  6. Ikkala ilovada ham ishlab chiquvchilar bir xil identifikatorlardan foydalanishlarini ta'minlash

Asl vositalar:

Ilovalarni ishlab chiqish uchun ikkita asosiy platforma hozirda juda raqobatdosh UI avtomatlashtirish vositalariga ega: XCUITest va Espresso. Ushbu ikkita vositaning etukligi sezilarli darajada yaxshilandi va WWDC 2017Apple-dagi so'nggi nutqda ular UI avtomatlashtirish vositalarini takomillashtirish ustida ishlashda juda faol ekanliklarini ko'rsatdilar.

  1. XCUITest va Espresso-dan foydalanishning asosiy afzalligi bor: ular platforma provayderlari tomonidan yaratilgan: Apple va Google. Ushbu vositalar har doim iOS va Android sinovlari uchun egri chiziqdan oldinda bo'ladi. Appium-ning har qanday yangi funktsiyasi aksariyat hollarda mavjud vositalarning mavjud funktsiyalari asosida quriladi.
  2. Bizning ko'zlarimizda yana bir katta foyda, siz loyihangizning dastlabki kodi bilan sinov kodini kiritasiz. Ehtimol, bu biroz munozara uchun qilingan, ammo biz buni kelgusi postda muhokama qilamiz. Hozircha shunchaki shuni ma'lum qilamizki, sizning test kodingizni xuddi shu loyihada va ishlab chiquvchilaringiz foydalanadigan tilda kiritish katta foyda keltiradi. Bu jamoa ichida hamkorlik qilish uchun ko'proq rag'batlantiradi va har kimga dasturiy ta'minotni ishlab chiqishning ushbu jihatiga osonlik bilan hissa qo'shishga imkon beradi.
  3. Ba'zida android tajribasi iOS tajribasidan farq qilishi mumkin, chunki har bir platforma uchun testlarni yozib, siz ushbu vaziyatlarni hal qilish uchun sinov tizimingizni murakkablashtirmasligingiz kerak.
  4. Kamroq notekis Mahalliy vositalar shunchaki notekis. Bu ozroq harakatlanuvchi qismlarning soni va sinov kodi va asboblar o'rtasida kamroq qatlamli aloqa bilan bog'liq bo'lishi mumkin, ammo mahalliy vositalar bilan yozilgan testlar unchalik aniq emas.
  5. Appium kabi vositadan foydalangandan ko'ra kattaroq asboblar to'plamidan foydalanishingiz mumkin. Masalan, Androidda siz UiAutomator kutubxonasidan ham, Espresso kutubxonasidan ham foydalanishingiz mumkin.

Espresso:

Google-ning Android-ning Espresso-ni sinash vositasi o'ziga xos xususiyatlarga ega bo'lib, ularni eslatib o'tish kerak.

  1. Espresso juda tez, biz UI avtomatizatsiyasida bunchalik tez biror narsani ko'rmaganmiz. Bu Flash of UI avtomatizatsiyasi singari tezlikka yaqinlashadigan boshqa vosita yo'q.
  2. Siz o'zingizning test kodingizda biron bir narsaning ro'y berishini yoki tugashini kutishdan xavotirlanmaysiz, chunki Espresso buni siz uchun hal qiladi, ba'zi bir alohida holatlar bundan mustasno. Bu, asosan, UI avtomatlashtirish haqida eng mo'rt narsani tenglamadan chiqarib tashlaydi.
  3. Espresso "kulrang quti" sinov usulidan foydalanadi. Qora quti emas, unchalik oq emas. Espresso yordamida sinov qurilmasi apium singari qora quti asbobiga qaraganda dasturni ko'proq boshqaradi.
  4. Espresso sinov qurilmasiga simulyatorni ishga tushirmasdan yoki qurilmani ulamasdan turib, Android SDK-ni ishga tushirish uchun mo'ljallangan Robolectric kabi vositalardan foydalanishga imkon beradi. Buning ma'nosi shundaki, sizning testlaringiz tezroq boshlanadi va tezroq ishlaydi.

Espressoga o'xshash tizim mavjud bo'lib, uni Google tomonidan ham yaratgan bo'lib, iOS sinovlari uchun bu erda eslatib o'tishga arziydi: EarlGrey. Biz uni ishlatmadik, ammo agar Espresso-ning iOS-ga ba'zi foydali tomonlari bo'lsa, uni o'rganib chiqishga arziydi.

Native test vositalaridan foydalanishning bir qator kamchiliklari mavjud:

  1. Agar siz o'zaro faoliyat platforma ilovasini ishlab chiqayotgan bo'lsangiz, siz Appium kabi vositani ishlatganingiz bilan solishtirganda testlarning sonidan ikki baravar ko'p bo'lishingizga to'g'ri keladi.
  2. Agar siz o'zaro faoliyat platforma ilovasini ishlab chiqayotgan bo'lsangiz, ikkita tilni bilishingiz kerak bo'ladi.
  3. Ushbu yondashuvga ko'proq murakkablik jalb qilinishi mumkin. Bu Espresso kabi vosita testerga beradigan qo'shimcha quvvat va kirishning yon ta'siri. Masalan, Espresso IdlingResource-dan foydalanib, sinov ostida dasturda voqealar tugashini avtomatik ravishda kutadi. Biroq, ba'zi holatlarda, sinov qurilmasi IdlingResource-ni qo'lda bajarishi kerak.
  4. Espresso singari asbob yordamida sinovchi dasturni foydalanuvchi nuqtai nazaridan kira olmaydigan holatga qo'yishi mumkin. Shunga qaramay, bu qo'shimcha quvvatning boshqa tomoni.