Gotta Test Em Em: Kuidas testida OutSystems mobiilirakendusi

Mõni aeg tagasi kirjutasin artikli, kus arutasin mobiilirakenduste testimise pöördelist rolli rakenduse kvaliteedi juhtimisel ning mõju kasutajate omaksvõtule ja kasutajate rahulolule. Läksin üle mobiilirakenduste testimise keerukusest, mis hõlmas tohutut valikut erinevaid mobiilseadmeid, opsüsteemi versioone ja võrgutingimusi. Täna tahan teid juhendada, et testida mobiilirakendusi OutSystems ja AWS Device Farm abil.

Nagu kõigi muude mobiilsidetehnoloogiate puhul, on OutSystemsi mobiilirakenduste testimisel muutujate arv tohutu, isegi pinnatasemel. Sellegipoolest peaksite alati kaaluma sügavamale vaatamist. Lõppude lõpuks palub rikkega rakendus lihtsalt desinstallida kohapeal.

Katsetada on vaid nii palju, et ei peaks kartma asja, mis hävitab ideaalselt ehitatud stsenaariumi: tõelise seadme. Pärisseadmetes testimine on logistiliselt Pandora kast, mis kummitab kõigi mobiiliarendajate unistusi. Minu meeskond ja mina oleme kaotanud selle üle piisavalt palju und. Pidime leidma lahenduse, katsetamisviisi, ilma et oleksime maetud mobiiltelefonide mäe alla.

Seal on palju lahendusi, näiteks Visual Studio App Center, Perfecto või Saucelabs. Kuid Amazonase seadmefarm on osutunud meie õudusunenägude vastumürgiks. Seadmefarm on AWS-i testimisraamistik, mis võimaldab arendajatel AWS-i pilves tõelisi Androidi ja iOS-i seadmeid testid üles laadida ja neid testida. Seadmefarmis saate teha automatiseeritud teste ja omada konfiguratsiooniga konkreetsetes seadmetes kaugjuurdepääsu seansse, mis tähendab, et enne ühenduse loomist seadet, saame selle oleku konfigureerida.

AWS pakub ka SDK-d, mida saab kasutada kõigi AWS-teenustega suhtlemiseks. Nii saame seadmefarmi (või mõne muu teenuse) ühendada oma sisemiste armatuurlaudadega.

Samuti on AWS käivitanud privaatseadmete otsese juurdepääsu seadmetele. Selle uue funktsiooni abil saavad arendajad kasutada privaatses testikomplektis üksikuid seadmeid, nagu oleksid nad USB-ühenduse kaudu otse kohaliku masinaga ühendatud.

Seadmefarm toetab ka laias valikus testimise automatiseerimisraamistikke, näiteks Appium, Calabash, XCTest ja paljud teised, kus saate ise oma teste kirjutada.

Jah, see on üsna muljetavaldav tööriist, eriti kui näete, et see töötab.

Käte määrimine: Amazoni seadmefarm ja OutSystems

Niisiis, nüüd juhendan teid AWS-i seadmefarmi abil OutSystems'i rakenduste testimiseks. Selle nägemiseks peame loomulikult kõigepealt testid looma! Kasutame lihtsat rakendust OutSystems ja testime sisselogimislehte Android-seadmes. Testide seadistamise tehniliste üksikasjade jaoks vaadake neid testimisproove GitHubis; võite järgida ka muid testimisõpetusi.

1. Masina seadistamine

Installige teile kõige sobivam automaatikatesti raamistik. Selle artikli jaoks kleepume Appiumiga. Nagu Appium, toetavad mõned raamistikud rohkem kui ühte programmeerimiskeelt. Nii et veenduge, et olete installinud kõik. Valisime oma programmeerimiskeeleks Python.

2. Testi seadistamine

Alustage oma testimisprojekti loomisega. Enne kõigi testide saatmist seadmefarmi soovitan tungivalt kõigepealt läbi viia täpsed testid kohalikus testimiskeskkonnas. Lihtsam on probleemi algpõhjus otsida kohapeal. See on ka odavam. Nii et lisage oma peamises testfailis oma testile järgmised soovitud võimalused.

kívánt_kapslid ['platformName'] = 'Android'
soovitud_kapid ['deviceName'] = 'aPhone'
soovitud_kapid ['appPackage'] = ''
soovitud_kapid ['appActivity'] = ".MainActivity"

3. Testi planeerimine ja etappide koostamine

Tavaliselt ei loo te kõige jaoks testi. Ideaalis eraldaksite kõik rakenduse osad, mida soovite testida. Seega peate enne testi kodeerimist alustama plaani. Istuge, puhake ja proovige oma rakendust, otsides peamisi funktsioone, mida soovite testida.

4. Testi loomine

Nüüd, kui teil on plaan, olete valmis alustama oma testide seadistamist. Alustame testfaili loomisega testide kausta ja testijuhtumi kodeerimisega. Testi kodeerimisel lisage eesliide oma meetodile sõnaga „test”; see aitab testiraamistikul kindlaks teha, millist meetodit meie test sisaldab.

Rakendame interaktsiooni teste, nii et kõik on järjestikune. Esiteks alustame testi. Järgmisena ootame sündmuse / üksuse kuvamist ekraanil. Kui kuvatakse ootuspärane, klõpsame sellel ja ootame uuesti, kuni järgmine ekraan ekraanile ilmub. Saate idee: alustage testi, oodake, klõpsake, oodake. Mõnikord peame võib-olla kasutama unetingimusi lihtsalt selleks, et olla kindel konkreetse sündmuse juhtumises või ekraanil kuvatud konkreetses üksuses; vastasel korral ei pruugi me seda märgata.

impordi os
importima ükshaaval
rakendusest appium import veebidriver
saidist selenium.webdriver.common.by importimine
saidist selenium.webdriver.support.ui importige WebDriverWait
saidilt selenium.webdriver.support oodatavate tingimuste importimine kui EC
klass TestClass (ükshaaval.TestCase):
  
  def setUp (ise):
   self.driver = webdriver.Remote ('http://127.0.0.1:4723/wd/hub', {})
  def test_case (ise):
   ...
  def tearDown (ise):
   self.driver.quit ()
       
  kui __name__ == '__main__':
   unittest.main ()

Kuidas ma tean, et ekraanil on midagi? Kuidas seda klõpsata? Olgu, see on keeruline osa. Kas mäletate mõnda aega tagasi artiklit, mille kirjutasin OutSystems MABS-iga loodusrakenduste loomise kohta? Kui jah, siis teate juba, et OutSystems'i rakendused on hübriidsed. See tähendab, et mõned muudatused, mida me oma OutSystemsi rakenduste loomisel teeme, kaardistatakse HTML-iga. Nii et kui määrate andmeatribuudi alati sildiga, aitab see teie testitaval juhul rakenduse elemente tuvastada ja XPATH-i abil on seda elementi lihtsam leida.

Esimese stsenaariumi korral, nagu näha järgmistest näidetest, proovime pilti leida. Lisasime pildi tähistava väärtusega atribuudi (antud juhul on see „SuccessImg”) ja otsisime seda XPATH-iga (// img [@ data-test-id = ”SuccessImg”)). Loendiga tegeledes peame olema eriti ettevaatlikud. Loendis konkreetse elemendi, näiteks kolmanda elemendi leidmiseks peame veenduma, et meil oleks väärtuse indeks. Siin peame otsima atribuuti “data-test-id” väärtusega “MyAttrId-2”.

Ma tean, ma tean; on olemas mõned konkreetsed stsenaariumid, kus me ei saa Chrome'i veebibrauseris testida meie mobiilse rakenduse OutSystems konkreetset funktsiooni. Enamik neist juhtudest juhtub seetõttu, et on otsene sõltuvus mõnest loomulikust pistikprogrammist, mis tuleb rakendusse installida. Selle konkreetse stsenaariumi jaoks peame ühendama oma mobiilseadme oma arvutiga, avama Chrome ja tippima URL-i chrome: // inspect / # devices. See avab lehe, kus kuvatakse kõik seadmed, mis on teie arvutiga ühendatud.

Nüüd kontrollige oma seadet ja hakake oma HTML-i uurima. Otsige nuppe, ankruid või linke, mida peate oma rakenduses navigeerimiseks. Hea võimalus oma rakenduse nuppude tuvastamiseks on HTML-i välja kasutamine, kuid kui mingil põhjusel sellel konkreetsel nupul pole ID-d, võite selle asemel kasutada XPATH-i.

Ärge unustage: iOS-i seadmeid saab kontrollida ainult Mac-arvutites Safari abil ja lubades seadmel veebiinspektori. Androidi saavad kontrollida nii personaalarvutid kui ka Macid, kasutades Chrome'i ja lubades seadmel arendaja tööriistad.

5. Testi komplekteerimine

Oleme oma testi loonud ja nüüd oleme valmis selle edastama Amazoni seadmefarmi. Kuidas saaksime seda teha? See on lihtne: käsu käitamisel saame luua ZIP-faili, mis sisaldab meie testpaketti. See testkomplekt on oluline, kuna see sisaldab testi ja raamatukogusid, mida AWS-i seadmefarm täidab. Testide esitamiseks:

1. Looge AWS-i konsoolis projekt, kus te testid ja uue käituse teete. Käitamine tähistab konkreetset rakendust koos kindla testide komplektiga kindla seadmekomplektiga. Eeltööd on tehtud.

2. Pärast seda peaksite üles laadima oma rakenduste paketi ja testid. Kui teil seda pole, on AWS teid katnud kahe sisseehitatud testiga. Selles näites kasutame meie oma.

3. Nüüd algab lõbus: valige testitavad seadmed ja määrake seadme olek (WiFi, NFC, GPS, Bluetooth). Praegu on AWS-i seadmefarmis 178 Androidi ja 162 iOS-i seadet. Androidi jaoks on 139 erinevat seadet (Motorola, Samsung, Wiko jne), mis töötavad 23 erineva Androidi versiooniga. IOS-i jaoks on 26 erinevat seadet (iPad 2, iPhone 8, iPod Touch 6th Gen jne), mis töötavad 26 erineva iOS-i versiooniga.

4. Mine aega! Vaadake tulemusi üle, käivitage ja vaadake tulemusi! Iga käitamise korral saadakse aruanne koos seadme logide, testimislogide, ekraanipiltide, videote ja muuga.

Tõmba otsad kokku

Seadmefarmist on nii palju abi. Nüüd saame pidevalt pakkuda uusi usaldusväärseid funktsioone, täiustusi ja veaparandusi. Meie arendajad töötavad nüüd välja uusi funktsioone ja katsetavad neid kohe.

See tööriist aitas meid ka meie tugijuhtudel. Nagu arvata võis, on kõik erinevad seadmed ja erinevad OS-i versioonid võimatud. Selle tööriista abil ei pea me selle tõttu ööund magama; igal aastal lisab AWS Device Farm oma teenusesse uusi seadmeid. Niisiis, iga kord, kui saame tugiteenuse juhtumite kohta, mis ei tööta Lava Irise, Ulefone või Mlais seadme puhul ootuspäraselt, saame taotleda kaugjuurdepääsu seadmefarmile ning pääseda seadme rakendusele juurde ja testida seda reaalajas .

Ma kutsun teid proovima seda ja nüüd on teie asi! See ei ole nii lihtne kui madal kood, kuid pole ka nii keeruline, kui võib tunduda. Teie pingutuste tulu on seda väärt. Ja ärge unustage, et kasutasime koos Appiumiga AWS-i seadmefarmi, kuid võite kasutada ka muid seadmefarme. Samuti, nagu ma varem mainisin, on teil kõik siin, siin ja siin lahti seletatud. Andke meile teada, kuidas see lahendus teie jaoks töötas!