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.

  • ๐Ÿ”˜ Mitรค se tekee: Skannaa live-lรคhetyksen Android nรคyttรถ ja nรคyttรครค solmuhierarkian valitun elementin ominaisuussivun vieressรค.
  • โ˜‘๏ธ Missรค se asuu: Kantoraketti sijaitsee Android SDK-tyรถkalut-kansioon nimellรค uiautomatorviewer.bat ja kรคynnistรครค Java tyรถpรถytรคikkuna.
  • โœ… Tallennusvirtaus: Ota kehittรคjรคasetukset kรคyttรถรถn, liitรค puhelin USB:n kautta ja paina sitten Laitteen nรคyttรถkuvanotto ladataksesi nykyisen nรคytรถn.
  • ๐Ÿงช Ominaisuuskarttaping: tekstistรค tulee nimi, resurssin tunnuksesta tulee tunnus, luokasta tulee luokanNimi ja sisรคllรถn kuvauksesta tulee esteettรถmyystunnus.
  • ๐Ÿ› ๏ธ Vianmรครคritys: Viesti "Ei Android "ADB tunnisti laitteet" viittaa lรคhes aina kaapeliin, ajuriin tai virheenkorjausasetuksiin.
  • ๐Ÿ“Š Moderni vaihtoehto: Appium Tarkastajan kannet Android ja iOS:ssรค, ja se on edelleen saatavilla vanhan SDK-tyรถkalupaketin poistamisen jรคlkeen.

UIAutomatorViewer-tarkastaja sovellukselle Android sovellustestaus

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.

UIAutomatorViewer-ikkuna, jossa nรคkyy kaapattu laitteen nรคyttรถkuva, solmuhierarkiapuu ja solmun tietopaneeli

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.

Android SDK-tyรถkalukansio Windows Resurssienhallinta, joka sisรคltรครค uiautomatorviewer-erรคohjelman

โš ๏ธ 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.

  1. 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.
  2. Liitรค Android laite tietokoneeseen USB-kaapelilla.
  3. Valitse "Guru99โ€-sovellus sovellusluettelosta, kuten alla on esitetty.

Guru99 hakemusta valittiin Android laitteen sovellusluettelo

  1. 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.

Laitteen kuvakaappaustyรถkalurivin painike, jota kรคytetรครคn UIAutomatorViewer-kaappauksen pรคivittรคmiseen

  1. Kun pรคivitys on valmis, nรคyttรถkuva Guru99-sovellus avautuu vasemmassa ruudussa.

Captured Guru99 sovellusnรคyttรถ ladattu UIAutomatorViewerin vasempaan ruutuun

  1. 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.

  1. Valitse yllรค olevasta kuvasta 'Testi'-painike nรคhdรคksesi sen eri ominaisuudet (teksti, resurssin tunnusโ€ฆ).

Tietovisa-painike valittuna solmupuussa, jonka ominaisuudet luetellaan alemmassa tietopaneelissa

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.

Solmun tietorivi, joka nรคyttรครค nimen paikantimena kรคytetyn tekstiattribuutin arvon

resurssitunnus attribuuttia voidaan kรคyttรครค โ€idโ€-attribuuttina.

Solmun tietorivi, joka nรคyttรครค tunnuksen paikantimena kรคytetyn resurssin id-attribuutin arvon

luokka attribuuttia voidaan kรคyttรครค muodossa โ€classNameโ€.

Solmun tietorivi, joka nรคyttรครค className-paikantimena kรคytetyn luokkaattribuutin arvon

content-desc attribuuttia voidaan kรคyttรครค muodossa โ€AccessibilityIdโ€.

Solmun tietorivi, joka nรคyttรครค esteettรถmyystunnuksen paikantimena kรคytetyn content-desc-attribuutin arvon

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รค:

  1. Valitse solmu ylรคpaneelista ja lue sen luokka, teksti, resurssitunnus ja content-desc arvot alemmassa paneelissa.
  2. Kรคytรค mieluiten yhtรค vakaata attribuuttia. Jos resurssin tunnus on tรคytetty, kรคytรค sitรค ja lopeta โ€” XPath-lauseketta ei tarvita.
  3. Jos mikรครคn ei ole ainutlaatuista, yhdistรค kaksi attribuuttia yhteen predikaattiin.
  4. 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?

UIAutomatorViewer-valintaikkuna ilmoittaa, ettei Android adb havaitsi laitteita

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.

UKK

Vain osittain. Katseluohjelma lukee natiivin nรคkymรคhierarkian, joten WebView nรคkyy yleensรค yhtenรค lรคpinรคkymรคttรถmรคnรค solmuna. Tarkasta sen sisรคllรค oleva HTML selaimen kehitystyรถkaluilla tai kรคytรค tarkastajaa, joka voi vaihtaa verkkokontekstiin.

Ei. Tyรถkalu on sidottu Android Debug Bridge ja Android nรคkymรคhierarkia. iOS-nรคytรถillรค kรคytรค Appium Tarkastaja or Xcoden saavutettavuustarkastaja, joka luki sen sijaan XCUITest-elementtipuun.

Komento kirjoittaa saman hierarkian XML-tiedostoon laitteella ilman grafiikkaa. Se on hyรถdyllinen skripteissรค ja headless-koneissa, mutta menetรคt kuvakaappausnรคkymรคn, joka nopeuttaa oikean solmun lรถytรคmistรค.

Koneoppimiseen perustuvat paikannusmoottorit pisteyttรคvรคt useita attribuutteja yhdessรค โ€“ tekstin, luokan, sijainnin ja naapurisolmut โ€“ ja ratkaisevat elementin uudelleen, kun jokin niistรค muuttuu. Tรคmรค itsekorjaava toiminta vรคhentรครค uudelleennimetyn tunnuksen aiheuttamia virheitรค.

Kyllรค. Liitรค attribuutin arvot kommenttiin, niin Copilot yleensรค luonnostelee vastaavan sivu-objektikentรคn ja klikkausmetodin. Tarkista aina luotu paikannuslaite live-nรคyttรถรค vasten, koska ehdotus on arvaus, ei haku.

Ei. Katseluohjelma toimii laitteelle asennetun koontiversion kanssa, joten APK, jota et ole kรครคntรคnyt, voidaan silti tarkistaa. Vain kehittรคjรคn asettamat ominaisuudet, kuten resurssitunnus ja sisรคllรถn kuvaus, tรคytetรครคn.

Kyllรค. Emulaattori nรคyttรครค toimivan tรคsmรคlleen samalla tavalla kuin fyysinen puhelin, joten Laitteen nรคyttรถkuva -painike ottaa sen talteen samalla tavalla. Emulaattorit ovat kรคteviรค alkuvaiheen skriptaukseen, vaikka lopulliset suoritukset kuuluvat oikealle laitteistolle.

Se antaa jokaiselle ohjausobjektille vakaan, kielestรค riippumattoman kahvan, joka toimii sekรค esteettรถmyystunnuksena skriptissรค ettรค nรคytรถnlukuohjelman ilmoittamana otsikkona. Testien luotettavuus ja esteettรถmyys paranevat samalla yhden rivin muutoksella.

Tiivistรค tรคmรค viesti seuraavasti: