UIAutomatorViewer-opetusohjelma: Inspector for Android Testaus
โก รlykรคs yhteenveto
UIAutomatorViewer on graafinen tarkastaja, joka sisรคltyy Android SDK, joka tallentaa laitteen kuvakaappauksen, renderรถi nรคkymรคhierarkian ja paljastaa attribuutit Appium tรคytyy paikantaa painikkeet, kentรคt ja otsikot luotettavasti.
Mikรค on UIAutomatorViewer?
UIAutomatorViewer on graafinen kรคyttรถliittymรคtyรถkalu, jolla voidaan skannata ja analysoida kรคyttรถliittymรคn komponentteja. Android sovelluksen. Voit automatisoida minkรค tahansa Android sovellus kรคyttรคen Appium, kรคyttรคjรคn on tunnistettava testattavan sovelluksen (AUT) objektit. UIAutomatorViewerilla voit tarkastella testattavan sovelluksen kรคyttรถliittymรครค. Android sovellus elementin hierarkian selvittรคmiseksi ja eri ominaisuuksien (id, tekstiโฆ) tarkastelemiseksi.
Kun suoritat automaatiokoodeja, Appium kรคyttรครค UIAutomatorVieweria objektin eri ominaisuuksien tunnistamiseen ja kรคyttรครค ominaisuuksia tarvittavan objektin tunnistamiseen. Tรคtรค yhtรค ideaa โ lukea attribuutti tarkastajassa ja kรคyttรครค sitรค sitten uudelleen paikantimena komentosarjassa โ kรคydรครคn lรคpi loppuosa tรคstรค sivusta.
Alla olevassa kuvakaappauksessa tyรถkalu nรคkyy normaalissa toimintatilassa: kaapattu laitteen nรคyttรถ vasemmalla, solmupuu oikeassa ylรคkulmassa ja valitun solmun ominaisuussivu sen alla.
UIAutomatorViewerin kรคytรถn edellytykset
Tarkastaja lukee oikean laitteen tai emulaattorin reaaliaikaista nรคyttรถรค, joten pieni mรครคrรค asetuksia on tehtรคvรค ennen kuin ikkunassa nรคkyy yhtรครคn mitรครคn.
- A Java Kehityspaketti: uiautomatorviewer on Java tyรถpรถytรคsovellus kรคynnistetรครคn komentosarjalla, joten JDK:n on oltava asennettuna ja saavutettavissa jรคrjestelmรคpolussa.
- Android SDK: katseluohjelma toimitetaan SDK:n sisรคllรค tyรถkalut kansio, joten SDK on asennettava ennen kuin kรคynnistysohjelma on levyllรค.
- Alustatyรถkalut ja adb: katsoja puhuu laitteelle sen kautta Android Debug Bridge, joten ADB on oltava asennettuna ja sen on nรคhtรคvรค luuri.
- Kehittรคjรคasetukset ja USB-virheenkorjaus: Molempien on oltava pรครคllรค laiteasetuksissa, muuten ADB ei koskaan listaa laitetta.
- Tiedonsiirtokykyinen USB-kaapeli ja ajuri: vain latausta varten tarkoitettu kaapeli tai puuttuva valmistajan ajuri Windows, tuottaa tyhjรคn laiteluettelon.
- Testattava sovellus: Sovelluksen on oltava asennettuna ja auki laitteella, koska tarkastaja tallentaa kaiken, mitรค nรคytรถllรค on kulloinkin.
Kun nรคmรค kuusi kohtaa ovat paikoillaan, latausvaihe on lyhyt.
UIAutomatorViewerin lataaminen ja asentaminen
UIAutomatorViewer on osa Android SDK-hallinta ja se on kรคytettรคvissรค, kun olet asentanut SDK-hallinnan. Lataa ja asenna Android SDK-tiedosto virallinen Android Studio ladata sivu.
Kun Android SDK on asennettu, siirry tรคhรคn polkuun:
c:\users\<username>\AppData\Local\Android\sdk\tools
Huomaat erรคtiedoston, jolla on tรคmรค nimi:
uiautomatorviewer.bat
Double napsauta sitรค kรคynnistรครคksesi UIAutomatorViewer-kรคyttรถliittymรคn. Kansioluettelo nรคyttรครค alla olevan kaltaiselta, ja erรคajotiedosto sijaitsee muiden SDK-tyรถkalujen rinnalla.
โ ๏ธ Versiohuomautus: Androidoma UI Automatorin vanha dokumentaatio kuvaa edelleen tyรถkalun kรคynnistรคmisen osoitteesta /tyรถkalut/, mutta vanhentunut erillinen Android SDK-tyรถkalut SDK Manager ei enรครค tarjoa pakettia nykyisessรค Android Studio julkaisut. Pitkรคaikaiset asennukset ja vanhemmat SDK-arkistot sisรคltรคvรคt edelleen kรคynnistysohjelman; uudessa asennuksessa tiedosto yleensรค puuttuu, ja Appium Inspector on kรคytรคnnรถllinen korvaaja. Yllรค olevat alkuperรคiset vaiheet sรคilytetรครคn, koska ne pysyvรคt oikein kaikissa koneissa, joissa on edelleen tyรถkalukansio.
Kuinka kรคyttรครค UIAutomatorVieweria objektien lรถytรคmiseen sovelluksestasi
Kuvausjรคrjestys on aina sama: valmistele laite, aseta haluamasi nรคyttรถ kameran eteen ja ota sitten tilannekuva.
- Enable kehittรคjรคvaihtoehtoja laitteellasi. Lue Androidopas laitteen kehittรคjรคasetusten mรครคrittรคmiseen nรคhdรคksesi, miten kehittรคjรคasetukset otetaan kรคyttรถรถn Android laitteita.
- Liitรค Android laite tietokoneeseen USB-kaapelilla.
- Valitse "Guru99โ-sovellus sovellusluettelosta, kuten alla on esitetty.
- Valitse Laitteen kuvakaappaus -painiketta UIAutomatorViewerin pรคivittรคmiseksi ja tiedoston lataamiseksi. Guru99 sovelluksen graafinen kรคyttรถliittymรค tyรถkaluun. Painike sijaitsee alla korostetussa tyรถkalupalkissa.
- Kun pรคivitys on valmis, nรคyttรถkuva Guru99-sovellus avautuu vasemmassa ruudussa.
- Kuten yllรค olevassa kuvassa nรคkyy, ikkunan oikealla puolella on 2 paneelia.
Ylรคpaneeli sisรคltรครค solmuhierarkian โ tavan, jolla kรคyttรถliittymรคkomponentit on jรคrjestetty ja sisรคllytetty. Kunkin solmun napsauttaminen nรคyttรครค kyseisen kรคyttรถliittymรคelementin ominaisuudet alapaneelissa.
- Valitse yllรค olevasta kuvasta 'Testi'-painike nรคhdรคksesi sen eri ominaisuudet (teksti, resurssin tunnusโฆ).
Nรคiden ominaisuuksien kรคyttรคminen automaation elementtien tunnistamiseen
Et voi kรคyttรครค ominaisuuksia suoraan โ jokaisella ominaisuudella on eri nimi automaatio-API:ssa. Katsotaanpa, miten nรคmรค ominaisuusarvot saadaan toimimaan. Seuraavia attribuutteja voidaan kรคyttรครค 'Quiz'-painikkeen tunnistamiseen Guru99 sovellusta.
| UIAutomatorViewer-ominaisuuden ominaisuus | Paikannin nimi komentosarjassa | Tyypillinen kรคyttรถ |
|---|---|---|
| teksti | nimi | Nรคkyvรค otsikko painikkeessa tai staattisessa kentรคssรค |
| resurssitunnus | id | Vakain valinta, kun kehittรคjรค asettaa sellaisen |
| luokka | luokan nimi | Saman tyyppisten widgetien ryhmรคn valitseminen |
| content-desc | esteettรถmyystunnus | Eri alustojen paikannin, joka auttaa myรถs nรคytรถnlukijoita |
Jokainen karttaping nรคkyy suoraan solmun tietopaneelissa. teksti attribuuttia voidaan kรคyttรครค โnimenรคโ, kuten alla oleva ominaisuusrivi osoittaa.
resurssitunnus attribuuttia voidaan kรคyttรครค โidโ-attribuuttina.
luokka attribuuttia voidaan kรคyttรครค muodossa โclassNameโ.
content-desc attribuuttia voidaan kรคyttรครค muodossa โAccessibilityIdโ.
Yllรค mainittujen attribuuttien lisรคksi voimme kirjoittaa XPath-lausekkeita objektien tunnistamista varten. Nรคiden attribuuttien nimet ovat myรถs se, minkรค lรคpi vรคlitรคt halutut ominaisuudet ja paikannusstrategioita, kun skripti on kรคynnissรค.
XPath-paikantimien rakentaminen UIAutomatorViewer-attribuuteista
XPath on varamenetelmรค, kun mikรครคn yksittรคinen attribuutti ei ole yksinรครคn ainutlaatuinen. Solmun tietopaneeli nรคyttรครค kaikki lausekkeen tarvitsemat arvot, joten XPath on oikeastaan โโvain jo lukemasi attribuutti predikaattimuodossa.
Kรคy paneeli lรคpi tรคssรค jรคrjestyksessรค:
- Valitse solmu ylรคpaneelista ja lue sen luokka, teksti, resurssitunnus ja content-desc arvot alemmassa paneelissa.
- Kรคytรค mieluiten yhtรค vakaata attribuuttia. Jos resurssin tunnus on tรคytetty, kรคytรค sitรค ja lopeta โ XPath-lauseketta ei tarvita.
- Jos mikรครคn ei ole ainutlaatuista, yhdistรค kaksi attribuuttia yhteen predikaattiin.
- Jos otsikko muuttuu suorituksen aikana, vaihda yhtรคlรคisyystesti osittaiseen osumaan.
Alla olevat mallit kรคyttรคvรคt attribuuttien nimiรค tรคsmรคlleen sellaisina kuin UIAutomatorViewer ne raportoi.
<!-- match on the visible label --> //*[@text='Quiz'] <!-- match on the resource-id reported by the viewer --> //*[@resource-id='com.example.app:id/quiz_button'] <!-- match on the widget class --> //android.widget.Button[@text='Quiz'] <!-- partial match when the label is dynamic --> //*[contains(@text,'Qui')] <!-- two attributes combined for a unique match --> //*[@class='android.widget.Button' and @content-desc='Quiz']
Muutamat sรครคnnรถt estรคvรคt nรคitรค lausekkeita haurastumasta. Koko puun lรคpi kulkevat absoluuttiset polut katkeavat heti, kun kehittรคjรค kรครคrii asettelun yhteen uuteen sรคiliรถรถn, joten aloita jokainen lauseke kaksoisvinoviivalla ja etsi vastaavuus attribuutin perusteella. Indeksipohjaiset predikaatit toimivat samalla tavalla โ ne sรคilyvรคt, kunnes nรคyttรถรถn tulee rivi. Ja puhelimen nรคytรถllรค ainutlaatuinen lauseke voi vastata useita solmuja tablettiasettelussa, joten tarkista sama nรคyttรถ uudelleen molemmilla kokotekijรถillรค ennen paikantimen siirtรคmistรค sarjaan. Sama kurinalaisuus koskee XPath sisรครคn Selenium, jossa puu on DOM pikemminkin kuin nรคkymรคhierarkia.
UIAutomatorViewerin kรคytรถssรค mahdollisesti ilmenevรคt virheet
Useimmat viat tapahtuvat ennen kuin yksikรครคn solmu on piirretty, ja lรคhes kaikki niistรค palautuvat tyรถaseman ja luurin vรคliseen yhteyteen.
- Nรคen virheen โ โEi Android adb havaitsi laitteetโ โ kuten alla olevassa kuvakaappauksessa nรคkyy. Miten voin ratkaista tรคmรคn?
Ratkaisu: Varmista, ettรค laitteesi on kytketty tietokoneeseen.
Alla oleva taulukko laajentaa vastauksen koskemaan muita useimmin testaajien kohtaamia viestejรค.
| Oire | Todennรคkรถinen syy | Korjata |
|---|---|---|
| Ei Android adb havaitsi laitteita | Laite ei ole kytkettynรค, USB-virheenkorjaus pois pรครคltรค tai kรคytรถssรค on vain latausta varten tarkoitettu kaapeli. | Yhdistรค uudelleen datakaapelilla, ota kรคyttรถรถn USB-virheenkorjaus ja varmista, ettรค laite nรคkyy ADB-laiteluettelossa. |
| Laite merkitty luvattomaksi | RSA-sormenjรคlkikehottetta ei koskaan hyvรคksytty puhelimessa | Lukitse nรคyttรถ, avaa se uudelleen ja napauta Salli USB-virheenkorjaus. |
| uiautomatorviewer.bat puuttuu | Vanhentunutta SDK-tyรถkalupakettia ei ole asennettu | Kรคytรค olemassa olevaa SDK-asennusta, joka sisรคltรครค sen edelleen, tai vaihda Appium Tarkastaja |
| Hierarkia on tyhjรค tai tallennus epรคonnistuu | Nรคyttรถ muuttui vedoksen aikana tai sovellus estรครค nรคyttรถkuvan kaappauksen | Pidรค nรคyttรถ paikallaan ja ota kuva uudelleen; suojattuja nรคyttรถkuvia ei voida tallentaa. |
| WebView-sisรคltรถ nรคkyy yhtenรค solmuna | Katseluohjelma lukee vain natiivinรคkymรคt | Tarkasta verkkosisรคltรถรค selainkehitystyรถkaluilla tai verkkokontekstia tukevalla tarkastajalla |
UIAutomatorViewer vs. Appium Tarkastaja vs. asettelun tarkastaja
Kolmea tarkastajaa kรคytetรครคn yleisesti vastaan Android nรคytรถt, ja ne ratkaisevat hieman erilaisia โโongelmia.
| Kriteeri | UIAutomatorViewer | Appium Tarkastaja | Android Studio Asettelun tarkastaja |
|---|---|---|---|
| Laivat | Perintรถ Android SDK-tyรถkalupaketti | Erillinen tyรถpรถytรคsovellus | Android Studio |
| Tarkastetut laiturit | Android vain | Android ja iOS | Android vain |
| Tarvitsee toimivan palvelimen | Ei, se kommunikoi suoraan ADB:n kanssa | Kyllรค, se yhdistyy johonkin Appium palvelinistunto | Ei, se liittyy debuggable-prosessiin |
| Luo paikannuskoodin | Ei, arvot kopioidaan kรคsin | Kyllรค, se ehdottaa paikantimia ja voi tallentaa toimintoja | Ei, se on virheenkorjausnรคkymรค |
| Soveltuu parhaiten | Nopea ominaisuushaku vanhemmassa asetuksessa | Paikanninten rakentaminen ja validointi sarjalle | Asettelu- ja renderรถintiongelmien diagnosointi |
Sviitille, joka jo kulkee lรคpi Appium, Inspector on luonnollinen seuraaja: se lukee samat attribuutit, suorittaa samaa UiAutomator2-ajuria alla ja toimii myรถs iOS:รครค vastaan. Appium Tarkastajaprojekti julkaistaan โโaktiivisesti, joten se on turvallisempi valinta uusille tรถille, kun taas Layout Inspector on hyรถdyllinen, kun kysymys on siitรค, miksi nรคkymรค renderรถityy oudosti, eikรค siitรค, miten se ratkaistaan. Jos valitset edelleen pinoa, laajempi vertailu oppaassamme mobiilisovellusten testaustyรถkalut on hyvรค seuraava askel, ja esimerkkimobiilitestitapaukset nรคytรค, mihin nรคmรค paikantimet lopulta vaikuttavat.







