UIAutomatorViewer Opplæring: Inspektør for Android Testing
⚡ Smart oppsummering
UIAutomatorViewer er en grafisk inspektør som følger med Android SDK som tar et skjermbilde av enheten, gjengir visningshierarkiet og eksponerer attributtene Appium må finne knapper, felt og etiketter pålitelig.
Hva er UIAutomatorViewer?
UIAutomatorViewer er et grafisk brukergrensesnittverktøy for å skanne og analysere brukergrensesnittkomponentene til en Android applikasjon. For å automatisere enhver Android applikasjon ved bruk av Appium, må en bruker identifisere objektene i AUT (Application Under Test). Med UIAutomatorViewer kan du inspisere brukergrensesnittet til en Android applikasjon for å finne ut hierarkiet og se forskjellige egenskaper (id, tekst…) til elementet.
Mens du kjører automatiseringsskript, Appium bruker UIAutomatorViewer til å identifisere forskjellige egenskaper ved objektet og bruker egenskapene til å identifisere det nødvendige objektet. Den ene ideen – les attributtet i inspektøren, og bruk det deretter på nytt som en locator i skriptet – er det resten av denne siden går gjennom.
Skjermbildet nedenfor viser verktøyet i normal driftstilstand: skjermbildet for den innhentede enheten til venstre, nodetreet øverst til høyre og egenskapsarket for den valgte noden under det.
Forutsetninger for bruk av UIAutomatorViewer
Inspektøren leser live-skjermen til et ekte håndsett eller en emulator, så litt oppsett må være på plass før vinduet viser noe i det hele tatt.
- A Java Utviklingssett: uiautomatorviewer er en Java skrivebordsapplikasjon startet av et batch-skript, så en JDK må være installert og tilgjengelig på systembanen.
- Ocuco Android SDK: seeren leveres i SDK-en verktøy mappen, så SDK-en må installeres før oppstartsprogrammet finnes på disken.
- Plattformverktøy og adb: seeren snakker til enheten gjennom Android Feilsøkingsbro, så ADB må være installert og kunne se håndsettet.
- Utvikleralternativer og USB-feilsøking: begge må være slått på i enhetsinnstillingene, ellers lister adb aldri enheten.
- En datakompatibel USB-kabel og driver: en ladekabel, eller en manglende produsentdriver på Windows, produserer en tom enhetsliste.
- Applikasjonen som testes: Appen må installeres og åpnes på enheten, fordi inspektøren fanger opp det som er på skjermen.
Med disse seks elementene på plass, er nedlastingstrinnet kort.
Slik laster du ned og installerer UIAutomatorViewer
UIAutomatorViewer er en del av Android SDK-behandleren vil være tilgjengelig når du har installert SDK-behandleren. Last ned og installer Android SDK fra den offisielle Android Studio laste siden.
Når Android SDK er installert, naviger til denne banen:
c:\users\<username>\AppData\Local\Android\sdk\tools
Du vil legge merke til en batchfil med dette navnet:
uiautomatorviewer.bat
Double Klikk på den for å starte UIAutomatorViewer GUI. Mappelisten ser ut som den nedenfor, med batchfilen plassert ved siden av de andre SDK-verktøyene.
⚠️ Versjonsmerknad: Androids egen UI Automator-dokumentasjon beskriver fortsatt hvordan man starter verktøyet fra /verktøy/, men den foreldede frittstående Android SDK-verktøy Pakken tilbys ikke lenger av SDK Manager i gjeldende Android Studio utgivelser. Installasjoner som har eksisteret lenge og eldre SDK-arkiver inneholder fortsatt oppstartsprogrammet; på en ny installasjon er filen vanligvis fraværende, og Appium Inspektør er den praktiske erstatningen. De originale trinnene ovenfor beholdes fordi de forblir korrekte for alle maskiner som fortsatt har verktøymappen.
Slik bruker du UIAutomatorViewer til å finne objekter i applikasjonen din
Opptakssekvensen er alltid den samme: klargjør enheten, plasser skjermen du bryr deg om foran kameraet, og ta deretter øyeblikksbildet.
- aktiver utviklermuligheter på enheten din. Les Androidveiledning for å konfigurere utvikleralternativer på enheten for å se hvordan du aktiverer utvikleralternativer på Android enheter.
- koble Android enheten til PC-en via en USB-kabel.
- Velg "Guru99”-appen fra applikasjonslisten, som vist nedenfor.
- Klikk på Skjermbilde av enheten knappen for å oppdatere UIAutomatorViewer og for å laste inn Guru99-applikasjonens grafiske brukergrensesnitt i verktøyet. Knappen er plassert i verktøylinjen, uthevet nedenfor.
- Etter at oppdateringen er fullført, vises et skjermbilde av Guru99-applikasjonen åpnes i venstre rute.
- Som du ser i bildet ovenfor, er det 2 paneler på høyre side av vinduet.
Det øvre panelet inneholder nodehierarkiet – måten brukergrensesnittkomponentene er ordnet og inneholdt på. Ved å klikke på hver node får du egenskapene til det brukergrensesnittelementet i det nedre panelet.
- Velg «Quiz»-knappen i bildet ovenfor for å se de forskjellige egenskapene (tekst, ressurs-ID…).
Slik bruker du disse egenskapene til å identifisere elementer for automatisering
Vel, du kan ikke bruke egenskapene direkte – hver egenskap har et annet navn i automatiserings-API-et. La oss se hvordan vi bruker disse egenskapsverdiene. Følgende attributter kan brukes til å identifisere «Quiz»-knappen i Guru99 applikasjoner.
| Attributt i UIAutomatorViewer | Lokatornavn i skriptet | Typisk bruk |
|---|---|---|
| tekst | navn | Synlig etikett på en knapp eller et statisk felt |
| ressurs-id | id | Det mest stabile valget når utvikleren setter et |
| klasse | klassenavn | Velge en gruppe med widgeter av samme type |
| innhold-desc | tilgjengelighets-ID | Plattformsøker som også hjelper skjermlesere |
Hvert kartping er synlig direkte i nodedetaljpanelet. tekst Attributtet kan brukes som «navn», som egenskapsraden nedenfor viser.
Ocuco ressurs-id Attributtet kan brukes som «id».
Ocuco klasse Attributtet kan brukes som «klassenavn».
Ocuco innhold-desc Attributtet kan brukes som «Tilgjengelighets-ID».
Sammen med attributtene ovenfor kan vi skrive XPaths for objektidentifikasjon. Disse attributtnavnene er også det du sender gjennom. ønskede evner og lokaliseringsstrategier når skriptet kjører.
Slik bygger du XPath-lokaliseringsverktøy fra UIAutomatorViewer-attributter
XPath er reservefunksjonen når ingen enkeltattributter er unike i seg selv. Nodedetaljpanelet gir deg alle verdiene uttrykket trenger, så en XPath er egentlig bare attributtet du allerede har lest, skrevet i predikatform.
Arbeid deg gjennom panelet i denne rekkefølgen:
- Velg noden i det øvre panelet og les dens klasse, tekst, ressurs-id og innhold-desc verdier i det nedre panelet.
- Foretrekk et enkelt stabilt attributt. Hvis ressurs-ID er utfylt, bruk det og stopp – XPath er ikke nødvendig.
- Hvis ingenting er unikt, kombiner to attributter i ett predikat.
- Hvis etiketten endres under kjøretid, bytt likhetstesten for et delvis samsvar.
Mønstrene nedenfor bruker attributtnavnene nøyaktig slik UIAutomatorViewer rapporterer dem.
<!-- 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']
Noen få regler hindrer disse uttrykkene i å bli sprø. Absolutte stier som går gjennom hele treet, brytes i det øyeblikket en utvikler pakker inn et oppsett i én container til, så start hvert uttrykk med dobbel skråstrek og match på et attributt i stedet. Indeksbaserte predikater oppfører seg på samme måte – de overlever til skjermen får en rad. Og et uttrykk som er unikt på en telefonskjerm kan matche flere noder på et nettbrettoppsett, så inspiser den samme skjermen på begge formfaktorene før du forfremmer lokatoren til en suite. Den samme disiplinen gjelder for XPath inn Selenium, der treet er en DOM snarere enn et visningshierarki.
Feil man kan støte på når man bruker UIAutomatorViewer
De fleste feil skjer før en enkelt node er tegnet, og nesten alle av dem kommer tilbake til forbindelsen mellom arbeidsstasjonen og håndsettet.
- Jeg ser feilen – «Nei Android «enheter ble oppdaget av adb» – som vist på skjermbildet nedenfor. Hvordan kan jeg løse dette?
Løsning: Sørg for at enheten din er koblet til PC-en.
Tabellen nedenfor utvider svaret til de andre meldingene testerne oftest møter.
| Symptom | Sannsynlig årsak | Fix |
|---|---|---|
| Nei Android enheter ble oppdaget av adb | Enhet ikke tilkoblet, USB-feilsøking av eller en kun-ladekabel | Koble til igjen med en datakabel, aktiver USB-feilsøking, og bekreft deretter at håndsettet vises i ADB-enhetslisten |
| Enhet oppført som uautorisert | RSA-fingeravtrykksforespørselen ble aldri akseptert på håndsettet | Lås opp skjermen, koble til igjen og trykk på Tillat USB-feilsøking |
| uiautomatorviewer.bat mangler | Den foreldede SDK-verktøypakken er ikke installert | Bruk en eksisterende SDK-installasjon som fortsatt inneholder den, eller bytt til Appium Inspektør |
| Hierarkiet er tomt, eller innsamlingen mislykkes | Skjermen endret seg under dumpingen, eller appen blokkerer skjermopptak | Hold skjermen stille og ta et nytt skjermbilde; sikre skjermbilder kan ikke tas |
| WebView-innhold vises som én enkelt node | Seeren leser bare native visninger | Inspiser nettinnhold med verktøy for nettleserutviklere eller en inspektør som støtter nettkontekst |
UIAutomatorViewer vs. Appium Inspektør vs. Layoutinspektør
Tre inspektører brukes ofte mot Android skjermer, og de løser litt forskjellige problemer.
| Criterion | UIAutomatorViewer | Appium Inspektør | Android Studio Layoutinspektør |
|---|---|---|---|
| Sendes med | Arven Android SDK-verktøypakke | Et frittstående skrivebordsprogram | Android Studio |
| Plattformer inspisert | Android bare | Android og iOS | Android bare |
| Trenger en fungerende server | Nei, den snakker direkte med adb | Ja, den kobles til en Appium serverøkt | Nei, den er knyttet til en feilsøkbar prosess |
| Genererer lokasjonskode | Nei, verdiene kopieres for hånd | Ja, den foreslår lokatorer og kan registrere handlinger | Nei, det er en feilsøkingsvisning |
| Passer best til | Et raskt attributtsøk på et eldre oppsett | Bygge og validere lokatorer for en suite | Diagnostisering av layout- og gjengivelsesproblemer |
For en suite som allerede går gjennom Appium, er Inspector den naturlige etterfølgeren: den leser de samme attributtene, kjører den samme UiAutomator2-driveren under, og fungerer også mot iOS. Appium Inspektørprosjekt frigis aktivt, så det er det tryggere valget for nytt arbeid, mens Layout Inspector forblir nyttig når spørsmålet er hvorfor en visning gjengis merkelig, snarere enn hvordan man skal håndtere det. Hvis du fortsatt velger en stakk, er den bredere sammenligningen i vår guide til testverktøy for mobilapper er et godt neste steg, og eksempler på mobile testtilfeller vis hva disse lokaliseringspunktene til slutt fører til.







