EarlGrey vs KIF - Sinov doirasi

** Rad etish **

Ushbu post asosan EarlGrey haqida gapiradi va KIF bilan qisqacha taqqoslaydi.

Bir necha hafta oldin men EarlGrey bilan uchrashdim (ha! Balki kechikdim). EarlGrey - Google tomonidan ishlab chiqilgan UI avtomatlashtirilgan sinov asosidir, uning hozirgi versiyasi 1.14.0 bo'lib, hozirda GitHub-da juda faol.

Earlgrey vs KIF mashhurligi (06/26/2018)

Birinchi qarashda men KIFni yaxshi o'rnini bosishi mumkin deb o'yladim, chunki:

  • Sinxronizatsiya: Earlgrey tarmoq so'rovini, UI va oqimlarni sinxronlashtiradi. Kutish yoki boshqa kutish shart emas! Nafrat kutmoqda.
  • Ko'rinishni tekshirish: biron bir harakatni amalga oshirishdan oldin element ko'rinadiganligini tekshiradi.
  • Foydalanuvchi kabi o'zaro aloqa: O'tkazish va tegizish ilovalar darajasida teginish hodisalari yordamida amalga oshiriladi.
EarlGrey UI bilan o'zaro aloqasi haqiqiy foydalanuvchi sizning ilovangizning UI interfeysi bilan qanday ishlashini taqlid qiladi va sizga ilovangizda duch keladigan xatolarni topishga yordam beradi.

EarlGrey-ni o'rnatish juda oddiy va uni kokoapodlar bo'lsa ham osongina bajarish mumkin. 1.12.1 versiyasini ishlatdik, chunki 1.14.0 bilan bog'liq muammolarga duch keldik.

Sinov

Shuni hisobga olib, biz KIF va EarlGrey ni haqiqiy loyihada taqqoslashga qaror qildik. Buning uchun biz yangi freym yordamida bir nechta testlarni qayta yozdik. Bizning sinovlarimiz ishlatilgan: Xcode 9.3, Quick, Nimble va Nimble-Snapshots.

Elementni EarlGrey yordamida tanlash uchun biz quyidagilarga qo'ng'iroq qilishimiz mumkin:

EarlGrey.select (elementWithMatcher: MATCHER) .performatsiya (ACTION)

MATCHER har qanday GREYMatcher bo'lishi mumkin: accessIDID, accessibility yorlig'i, buttonTitle va ACTION har qanday GREYAction masalan. kranlar, surish, aylantirish. Qo'shimcha ma'lumot uchun ushbu hiyla varaqasiga qarang.

Afzalliklari

EarlGrey-dan foydalanib testlarni yozish juda oson, chunki bu juda oson, deyarli hech narsa kutishga hojat yo'q.

Shu sababli, yosh dasturchilar uchun EarlGrey yordamida testlarni yozishni boshlash oson kechishi mumkin va kodingizga biron bir joyni qo'yish xavfli bo'lishi mumkin.

EarlGrey, KIF-ga qaraganda bir oz ko'proq bo'lishi mumkin, ammo o'rashga qodir bo'lmagan narsa.

Muammolar

AccessibilityLabel-dan foydalanganda birinchi muammo yuzaga keldi, EarlGrey-dagi ba'zi qo'ng'iroqlar bizning elementimizni topa olmadi, lekin unga accessIDID qo'shib osonlikcha hal qilindi.

Yana bir muammo shundaki, ba'zida EarlGrey bir nechta elementlarni topdi, garchi biz faqat bitta element borligini bilsak. Bu biroz hiyla-nayrang edi, lekin biz uni birinchi elementni tanlashga majbur qildik. Biz bilamizki, ehtimol eng yaxshi echim emas edi, lekin hozirda ishlaydi.

Ishlaydigan sinovlar

KIF va EarlGrey yordamida barcha testlar yaratilgandan so'ng, biz bir necha marta ishga tushirishga va bajarilish vaqtini (sekundlarda) tekshirishga qaror qildik.

Sinov kostyumini bajarish vaqti

Yuqoridagi jadvalda EarlGrey va KIF barcha sinov kostyumini ishga tushirish vaqtini bir necha soniya bilan ko'rsatadi. Biz EarlGrey-ning 150% sekinroq ekanligini payqashimiz mumkin, shuning uchun biz chuqurroq borishga va nima uchun ekanligini tekshirishga qaror qildik.

Biz har bir sinov darsining bajarilish vaqtini yozdik. Chapda biz har bir sinf uchun testlar soniga egamiz. Ba'zan EarlGrey juda sekin, lekin ba'zida KIF-ga qaraganda tezroq edi. Shunday qilib, biz adashib qoldik. Nimalar bo'lyapti? Nima sinovlarni juda sekinlashtirmoqda?

Test sinfi bo'yicha taqqoslash

Shuning uchun biz chuqurroq borishga qaror qildik. Va har bir testda qanday harakatlar / hodisalar chaqirilishini tekshiring.

aniq va matnli tadbirlarsurish, teging va voqealarni qidirish

Biz aniq matn va kirish matni EarlGrey-da KIF-ga qaraganda tezroq ekanligini sezamiz, lekin surish, urish va qidirish ko'p vaqt talab etadi va biz o'zimizdan nima uchun?

nima uchun?

Javobni EarlGrey xususiyatlari sahifasidan olamiz:

Bosish va surish elementlar darajasidagi hodisalarni boshqarish vositalaridan foydalanish o'rniga, ilovalar darajasidagi teginish hodisalari yordamida amalga oshiriladi. Har qanday UI o'zaro ta'siridan oldin, EarlGrey o'zaro ta'sir o'tkazadigan elementlar aslida ko'rinadigan ierarxiyada emas, balki aslida ko'rinadigan (ko'rinishni tekshirishni ko'ring) deb ta'kidlaydi. EarlGrey UI bilan o'zaro aloqasi haqiqiy foydalanuvchi sizning ilovangizning UI interfeysi bilan qanday ishlashini taqlid qiladi va sizga ilovangizda duch keladigan xatolarni topishga yordam beradi.

KIF:

KIF foydalanuvchining haqiqiy kiritishiga taqlid qilishga urinadi. Avtomatlashtirish imkon qadar kran hodisalari yordamida amalga oshiriladi.

EarlGrey, ishlov beruvchilarni va boshqalarni harakatga keltiradigan boshqa tadbirlarni qo'shadi. Demak, mantiqan ko'proq vaqt talab etiladi.

Tez animatsiyalarni yoqish orqali biz uni tezroq bajarishga harakat qildik

GREYTestHelper.enableFastAnimation ()

Bu haqiqatan ham uni KIFdan tezroq emas, balki tezroq bajarishga imkon beradi.

EarlGrey x KIF x EarlGrey (Tez animatsiya)

Ammo biz o'zimizdan savol berdik: EarlGrey haqiqiy foydalanuvchini taqlid qiladimi, tez animatsiyalarni yoqib, haqiqiy foydalanuvchini taqlid qiladimi?

Xulosa

EarlGrey KIF dan yomonmi? Javob YO'Q! Siz EarlGrey-ni sekinlashtirganingiz sababli tashlay olmaysiz. EarlGrey-ning maqsadi eng tezkor sinov tizimiga aylanish emas.

Xo'sh, qaysi birini ishlatishim kerak? Bu sizga tez sinov kostyumini xohlaysizmi? Yoki sinxronizatsiya, ko'rishni tekshirish va foydalanuvchi kabi o'zaro ta'sirlardan foydalanasizmi?

Agar siz kostyumni tezroq olishni istasangiz, sodda kiyimni xohlasangiz, KIF-dan foydalaning, bu eng yaxshi qo'ng'iroqdir.

Ps: Agar sizga ushbu xabar yoqsa, uni Twitter-da ulashing, o'rtada yoki ikkalasini ham tavsiya qiling =). Bu haqiqatan ham menga ko'proq odamlarni jalb qilishda yordam beradi. Katta rahmat.