EarlGrey vs KIF - testimisraamistik

** Kohustustest loobumine **

Selles postituses räägitakse enamasti EarlGrey'st ja tehakse lühike võrdlus KIF-iga.

Mõni nädal tagasi olen kohtunud EarlGrey'ga (jah! Võib-olla olen hiljaks jäänud). EarlGrey on UI automatiseerimise testimisraamistik, mille on välja töötanud Google. Selle praegune versioon on 1.14.0 ja on GitHubis praegu väga aktiivne.

Earlgrey vs KIF-i populaarsus (26.06.2018)

Esmapilgul arvasin, et see võib olla KIF-i hea asendaja, kuna:

  • Sünkroonimine: Earlgrey sünkroonib võrgutaotluse, kasutajaliidese ja lõimed. Me ei pea enam ootamaForView ega enam ootama! Vihkamine ootab.
  • Nähtavuskontrollid: see kontrollib enne mis tahes toimingu tegemist, kas element on nähtav.
  • Kasutajasõbralik interaktsioon: libistades ja koputades kasutatakse rakendustasandi puutetundlikke sündmusi.
EarlGrey kasutajaliidese interaktsioonid simuleerivad seda, kuidas reaalne kasutaja teie rakenduse kasutajaliidesega suhtleb, ning aitab teil leida ja parandada samu vigu, millega kasutajad teie rakenduses kokku puutuvad.

EarlGrey installimine on lihtne ja seda saab hõlpsasti kakaapoodide abil teha. Kasutasime versiooni 1.12.1, kuna meil oli 1.14.0-ga teatud probleeme.

Testimine

Seda silmas pidades otsustasime KIF-i ja EarlGrey-d võrrelda pärisprojektis. Selleks kirjutasime uue raamistikuga mõned testid ümber. Meie testides kasutati: Xcode 9.3, Quick, Nimble ja Nimble-Snapshots.

Elemendi valimiseks EarlGrey abil saame helistada:

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

Kus MATCHER võib olla ükskõik milline GREYMatcher, nagu näiteks: juurdepääsetavuse ID, juurdepääsetavuse kaabel, nupp pealkiri ja TEGEMINE mis tahes GREY toimingut, nt. kraanid, pühib, kerib. Lisateabe saamiseks vaadake seda petulehte.

Eelised

Testide kirjutamine EarlGrey abil on lihtne, kuna see on lihtne, selleks ei pea peaaegu midagi ootama.

Seetõttu võib noorematel arendajatel olla lihtsam alustada testide kirjutamist EarlGrey'ga ja teie koodi kuskil ootamisele panemine võib olla ohtlik.

EarlGrey võib olla pisut sõnatu kui KIF, kuid mitte midagi sellist, millega Wrapper hakkama ei saa.

Probleemid

Esimene probleem, mis meil oli, oli juurdepääsetavuseLabeli kasutamisel, kuid mõned EarlGrey kõned ei leia meie elementi, kuid see oli hõlpsasti lahendatav, lisades sellele juurdepääsetavuse ID.

Teine probleem on see, et mõnikord leidis EarlGrey mitu elementi, isegi kui me teame, et neid on ainult üks element. See oli natuke keerulisem, kuid lahendasime esimese elemendi valimise sundimisega. Me teame, et ilmselt ei olnud see parim lahendus, kuid töötab praegu.

Jooksukatsed

Pärast kõigi testide loomist, kasutades KIF-i ja EarlGrey-d, otsustasime paar korda joosta ja kontrollida täitmise aega (sekundites).

Testi ülikonna täitmise aeg

Ülaltoodud tabel näitab sekundit, mis kulub EarlGrey ja KIF-i poolt kogu katseülesande täitmiseks. Võime märgata, et EarlGrey on 150% aeglasem, nii et otsustasime minna sügavamale ja kontrollida, miks.

Panime kirja iga katseklassi täitmisaja. Vasakul on meil iga klassi jaoks testide arv. Mõnikord on EarlGrey liiga aeglane, kuid mõnikord oli see kiirem kui KIF. Nii et me segasime. Mis toimub? Mis teeb testide tegemise liiga aeglaseks?

Võrdlus katseklasside kaupa

Niisiis otsustasime minna sügavamale. Ja kontrollige, milliseid toiminguid / sündmusi igas testis nimetatakse.

selged ja tekstisündmusedpühkige, koputage ja otsige sündmusi

Võime märgata, et selge tekst ja sisestustekst on EarlGreys kiiremad kui KIF-is, kuid pühkimine, koputamine ja otsingud võtavad liiga palju aega ja küsisime endalt, miks?

miks?

Vastus, mille me saime, on võetud EarlGrey funktsioonide lehelt:

Kraanide ja pühkimiste tegemiseks kasutatakse elemenditaseme sündmuste käitlejate asemel rakendustasemel puutetundlikke sündmusi. Enne iga kasutajaliidese interaktsiooni kinnitab EarlGrey, et elemendid, millega suhtletakse, on tegelikult nähtavad (vt Nähtavuskontrollid) ja mitte ainult vaatehierarhias. EarlGrey kasutajaliidese interaktsioonid simuleerivad seda, kuidas reaalne kasutaja teie rakenduse kasutajaliidesega suhtleb, ning aitab teil leida ja parandada samu vigu, millega kasutajad teie rakenduses kokku puutuvad.

samas KIF:

KIF üritab jäljendada kasutaja tegelikku sisendit. Automatiseerimisel kasutatakse võimaluse korral kraanisündmusi.

EarlGrey lisab veel ühe sündmuste kihi, mis käivitab käitlejaid ja palju muud. Seega on mõistlik võtta rohkem aega.

Proovisime kiirete animatsioonide lubamisega kiiremaks käivitada

GREYTestHelper.enableFastAnimation ()

Mis tegelikult muudavad selle kiiremaks, kuid mitte kiiremaks kui KIF.

EarlGrey x KIF x EarlGrey (kiire animatsioon)

Kuid küsisime endalt, kas EarlGrey simuleerib tõelist kasutajat, kas kiirete animatsioonide lubamine simuleerib ikkagi tõelist kasutajat?

Järeldus

Kas EarlGrey on halvem kui KIF? Vastus on EI! Te ei saa EarlGreyt visata lihtsalt sellepärast, et see on aeglasem. EarlGrey eesmärk pole olla kiireim saadaolev testraamistik.

Millist neist peaksin kasutama? See sõltub sellest, kas soovite kiiret katseülikonda? Või kasutage sünkroonimist, nähtavuse kontrollimist ja kasutajasõbralikku suhtlemist?

Kiirema ülikonna jaoks kasutage KIF-i, kui soovite lihtsat, võib-olla on EarlGrey parim kõne.

Ps: kui see postitus teile meeldib, siis jagage seda Twitteris, soovitage keskmisel või mõlemal =). See aitab mul jõuda rohkemate inimesteni. Tänud.