Kuinka tehdä E2E-testaus alkuperäisen Androidin reagoimiseksi Jestin ja Appiumin avulla

Tämä opetusohjelma on yksinkertainen vaiheittaiset ohjeet Appiumin ja Jestin määrittämiseen React Native Android -sovellukselle. Etsin vaiheittaisia ​​ohjeita, mutta minulla oli vaikeuksia löytää niitä, joten päätin kirjoittaa oman. Toivottavasti tämä voi auttaa sinua.

Huomaa: Tämä opetusohjelma kattaa vain Androidin. Jos haluat suorittaa Appiumin AWS Device Farmissä testataksesi sovellustasi oikeilla laitteilla, sinun on käytettävä Appium Pythonia. He eivät tue Appium JS: tä. Appium Python -opetus, joka on keskittynyt AWS: n ympärille, löytyy täältä.

Appium on tapa automatisoida käyttäjän käsisyöttö End-to-End (E2E) -testaukseen.

Jest on Facebookin Javascript-testausjärjestelmä. Se sisältää melkein kaiken mitä tarvitset testaamiseen.

Perustaa

Asenna React Native -projekti seuraamalla sinua parhaiten koskevaa kirjainta.

A. Olen vasta käynnistämässä React Native -projektia!

Seuraa virallista Facebook-opasta aloittaaksesi React Native -projektin. Muista valita rakennusprojektit alkuperäiskoodilla.

B. Minulla on jo vanhempi React Native -projekti!

Asenna Jest: lanka add --dev jest

Ota ES6 + -sintaksi käyttöön Jestissä (lähinnä tuontia varten, async / odota):

lanka lisäys --dev babel-preset-react-native

Lisää .babelrc-tiedosto projektisi juureen:

{
  "esiasetukset": ["reagoi natiivi"]
}

Kun olet tehnyt joko A tai B, jatka alla ...

Asenna appium, appium-lääkäri

lanka lisäys --dev appium appium-doctor

Lisää appiumiin liittyvät skriptit pakettiin.json

Suorita appium-lääkäri

lanka suorittaa appium-lääkäri

Sinun on korjattava virheet, jotka appium-lääkäri heittää. Androidin testaamiseksi voit kuitenkin jättää huomioimatta kaikki iOS: iin liittyvät (xCode, Carthage).

Asenna webdriver

lanka lisää --dev wd

Käynnistä appium-palvelin

lanka juosta appium

Ota muistiin portti, tarvitset sitä myöhemmin (oletusportti on 4723).

Perustesti

Nyt kun olemme kaikki valmiina, kirjoitetaan ensimmäinen testi. Tallenna se: ./__tests__/appium.test.js. Rakennamme tätä tiedostoa myöhemmin.

Tämä perustesti vain tarkistaa, että esteettömyysluokka = "testinäkymä" -näkymää on olemassa ja että esteettömyysluokkaa = "notthere" -näkymää ei ole.

Joitakin huomioitavia asioita:

  1. jasmine.DEFAULT_TIMEOUT_INTERVAL: Tämä on asetettu, koska muuten joudut virheisiin async-toimintojen aikakatkaisun kanssa.
  2. Konfiguraation sovelluspolku on suhteessa projektiisi. Ei suhteessa testitiedostoon.
  3. Sinun on nukuttava testijuoksija driver.sleep (...): lla, kun odotat sovelluksen latautumista.

Saatat ihmetellä: “Miksi saavutettavuusLabel?”. No, niin me etsimme elementtejä testattaessa Appiumin ja React Native -sovellusten kanssa. Tämä on yhteensopiva myös Appiumin iOS-testauksen kanssa. Arvataan, että tulevaisuudessa on testID-tuki, mutta toistaiseksi tämä on suositeltava tapa.

Lisäämme saavutettavuusLabel = "testinäkymä" sovelluksemme näkymän juureen hakemistossa ./index.android.js.

Suorita testi

  1. Käynnistä emulaattori
  2. Käynnistä React Native dev -palvelin: reagoi oma-aloitus
  3. lankatesti
  4. Testisi pitäisi olla läpäisevä!

Napsautustesti

Lisää seuraava koodi hakemistoon ./__tests__/appium.test.js.

Lisätään painike, joka suurentaa näyttölaskuria. ./Index.android.js pitäisi näyttää tältä nyt:

Suorita testi. Sinun pitäisi nähdä sovellus napsauttamalla painiketta itsessään, ja laskurin pitäisi kasvaa. Testien tulisi kaikkien läpäistä.

Tekstinsyöttötesti

Lisää seuraava koodi hakemistoon ./__tests__/appium.test.js.

Lisäämme tekstinsyöttö, joka päivittää ruudun tekstinäkymän. ./Index.android.js pitäisi näyttää tältä nyt:

Suorita testi. Sinun pitäisi nähdä sovelluksen kirjoittavan tekstiä syötteeseen. Testien tulisi kaikkien läpäistä.

Onnittelut!

Vain yksi viimeinen vinkki ...

Appium-työpöytä (tarkastajatila)

Appium Desktopissa on hyödyllinen tarkastajatila, joka:

… Voit tarkastella sovelluksesi elementtejä, saada perustietoja niistä ja suorittaa perustoiminnot niiden kanssa. Tämä on hyödyllinen tapa oppia Appiumia tai tapa oppia sovelluksestasi, jotta voit kirjoittaa testejä sille.

Voit ladata sen täältä.

Perustaa

  1. Käynnistä Android-emulaattori
  2. Käynnistä Appium Desktop -palvelin
  3. Napsauta ”Aloita tarkastajaistunto”
  4. Automaattinen palvelin> Halutut ominaisuudet
  5. 1. rivi: alustaNimi, teksti, Android
  6. 2. rivi: laitteen nimi, teksti, Android-emulaattori
  7. 3. rivi: sovellus, teksti, (ehdoton polku apk-pisteisiisi)
  8. Käynnistä tarkastaja

Täysi koodi

Tämän oppaan täydellinen koodi löytyy täältä:

Lisälukema

  • Kaikki Web-ohjaimen komennot (Se on vähän pitkä)
  • Appium-asetukset
  • Toinen opetusohjelma: https://github.com/garthenweb/react-native-e2etest