Kuidas teha loomuliku Androidi reaalajas testimist (E2E), kasutades rakendusi Jest ja Appium

See õpetus on lihtne samm-sammuline juhend Appiumi ja Jesti seadistamiseks React Native Androidi jaoks. Otsisin samm-sammult juhendit, kuid mul oli raskusi selle leidmisega, seetõttu otsustasin kirjutada oma. Loodetavasti võib see teid aidata.

Märkus. See õpetus hõlmab ainult Androidi. Kui soovite rakendust AWS Device Farm käivitada, et testida oma rakendust päris seadmetes, peate kasutama Appium Pythoni. Nad ei toeta Appium JS-i. AWS-i ümber koondatud Appium Pythoni õpetuse leiate siit.

Appium on viis automatiseerida kasutaja sisestust otsast lõpuni (E2E) testimiseks.

Jest on Facebooki Javascripti testimisraamistik. See sisaldab peaaegu kõike, mida vajate testimiseks.

Seadistamine

Projekti React Native seadistamiseks järgige seda kirja, mis teile kõige paremini sobib.

A. Alustan just React Native projekti!

React Native projekti alustamiseks järgige ametlikku Facebooki juhendit. Valige kindlasti natiivkoodiga hoonete projektid.

B. Mul on juba vanem React Native projekt!

Installige Jest: yarn add --dev jest

Jesti ES6 + süntaksi lubamine (peamiselt importimiseks, asünkroonimiseks / ootamiseks):

lõnga lisamine --dev babel-preset-reagect-native

Lisage projekti juurele .babelrc-fail:

{
  "eelseaded": ["reaalajas"]
}

Kui olete teinud A või B, jätkake allpool ...

Paigaldage appium, appium-arst

lõnga lisamine --dev appium appium-arst

Lisage paketiga.json rakendusega seotud skriptid

Käitage appi-arsti

lõnga jooksma appium-arst

Peate parandama vead, mida prooviarst viskab. Kuid Androidi testimiseks võite ignoreerida kõike, mis iOS-iga seotud (xCode, Carthage).

Installige veebidraiver

lõnga lisamine --dev wd

Käivitage rakendusserver

lõnga jooksma oopium

Võtke pordi teadmiseks, teil on seda hiljem vaja (vaikesadam on 4723).

Põhitesti

Nüüd, kui oleme kõik seadistanud, kirjutame oma esimese testi. Salvestage see kausta: ./__tests__/appium.test.js. Ehitame selle faili hiljem välja.

See põhitesti lihtsalt kontrollib, kas vaadeibilityLabel = "testview" on olemas ja kas vaadeibilityLabel = "notthere" pole olemas.

Mõned asjad, mida tasub tähele panna:

  1. jasmine.DEFAULT_TIMEOUT_INTERVAL: see on seatud, kuna vastasel juhul tekivad asünkroonifunktsioonide aegumisega tõrked.
  2. Konfiguratsioonis olev rakenduse tee on teie projekti juuri silmas pidades. Pole testfaili suhtes.
  3. Oodake rakenduse laadimist, peate testisõitja unerežiimiga uni.sleep (...) magama.

Teil võib tekkida küsimus: “Miks juurdepääsetavuseabel?”. Noh, nii otsime me elemente, kui teeme katseid Appium ja React Native abil. See ühildub ka iOS-i testimisega Appiumis. Väidetavalt on tulevikus olemas testID-tugi, kuid praegu on see soovitatav viis.

Lisame juurdepääsetavuseLabel = "testvaate" meie rakenduse vaate juurele saidil ./index.android.js.

Tehke test

  1. Käivitage emulaator
  2. Käivitage reaalajas natiivse serveri server: reageerige loomuliku algusega
  3. lõngaproov
  4. Teie test peaks olema läbitud!

Nuppude klõpsamise test

Lisage järgmine kood kausta ./__tests__/appium.test.js.

Lisage nupp, mis suurendab ekraaniloendurit. Teie ./index.android.js peaks nüüd välja nägema selline:

Tehke test. Peaksite nägema, et rakendus klõpsab nupul ise ja loendur peaks kasvama. Teie testid peaksid kõik läbima.

Tekstisisestuse test

Lisage järgmine kood kausta ./__tests__/appium.test.js.

Lisage tekstisisestus, mis värskendab ekraanil kuvatavat tekstivaadet. Teie ./index.android.js peaks nüüd välja nägema selline:

Tehke test. Peaksite nägema, et rakendus sisestas mõnda teksti. Teie testid peaksid kõik läbima.

Palju õnne!

Ainult üks viimane näpunäide ...

Appium Desktop (inspektorirežiim)

Appium Desktopil on kasulik inspektorirežiim, mis:

... saate vaadata oma rakenduse elemente, hankida nende kohta põhiteavet ja nendega põhilisi toiminguid teha. See on kasulik Appiumi tundmaõppimiseks või rakenduse tundmaõppimiseks, et saaksite selle jaoks katseid kirjutada.

Siit saate alla laadida.

Seadistamine

  1. Käivitage Androidi emulaator
  2. Käivitage Appium Desktop server
  3. Klõpsake nuppu „Alusta inspektori seanssi“
  4. Automaatne server> soovitud võimalused
  5. 1. rida: platvormi nimi, tekst, Android
  6. 2. rida: seadmeNimi, tekst, Androidi emulaator
  7. 3. rida: rakendus, tekst, (absoluutne tee teie apk-ni)
  8. Käivitage inspektor

Täiskood

Selle õpetuse täielik kood asub siin:

Täiendav lugemine

  • Kõik veebidraiveri käsud (see on natuke pikk)
  • Aatriumikonfiguratsioon
  • Veel üks õpetus: https://github.com/garthenweb/react-native-e2etest