UIAutomatorViewer oktatóanyag: Inspector for Android Tesztelés

⚡ Okos összefoglaló

Az UIAutomatorViewer egy grafikus felügyelő, amely a következővel van csomagban: Android SDK, amely rögzíti az eszköz képernyőképét, megjeleníti a nézethierarchiát és elérhetővé teszi az attribútumokat Appium megbízhatóan meg kell találnia a gombokat, mezőket és címkéket.

  • 🔘 Mit csinál: Élő felvétel beolvasása Android képernyőn, és a kiválasztott elem tulajdonságlapja mellett megjeleníti a csomópont-hierarchiát.
  • ☑️ Ahol él: A hordozórakéta a Android SDK eszközök mappáját uiautomatorviewer.bat néven, és elindít egy Java asztali ablak.
  • Rögzítési folyamat: Kapcsold be a fejlesztői beállításokat, csatlakoztasd a készüléket USB-n keresztül, majd nyomd meg az Eszköz képernyőképe gombot az aktuális képernyő betöltéséhez.
  • 🧪 Attribútumtérképping: A szöveg lesz a név, az erőforrás-azonosító lesz az azonosító, az osztály lesz az osztálynév, a tartalom-leírás pedig az akadálymentesítési azonosító.
  • 🇧🇷 Hibaelhárítás: A „Nem” üzenet Android Az „eszközöket észlelte az adb” hibaüzenetek szinte mindig kábelre, illesztőprogramra vagy hibakeresési beállításra mutatnak.
  • 📊 Modern opció: Appium Ellenőri fedelek Android és iOS-en, és továbbra is elérhető marad a régi SDK eszközcsomag kivonása után.

UIAutomatorViewer felügyelő a következőhöz: Android alkalmazás tesztelése

Mi az az UIAutomatorViewer?

UIAutomator Viewer egy grafikus eszköz, amely egy felület felhasználói felületének komponenseit szkenneli és elemzi. Android alkalmazás. Bármely automatizálásához Android alkalmazás segítségével Appium, a felhasználónak azonosítania kell az AUT-ban (tesztelt alkalmazás) található objektumokat. Az UIAutomatorViewer segítségével megvizsgálhatja egy alkalmazás felhasználói felületét. Android alkalmazás az elem hierarchiájának megkereséséhez és különböző tulajdonságainak (azonosító, szöveg…) megtekintéséhez.

Az automatizálási szkriptek végrehajtása közben Appium az UIAutomatorViewer segítségével azonosítja az objektum különböző tulajdonságait, és a tulajdonságok alapján azonosítja a kívánt objektumot. Ezt az egyetlen ötletet – beolvassa az attribútumot az inspectorban, majd újra felhasználja lokátorként a szkriptben – mutatja be a lap további része.

Az alábbi képernyőkép az eszközt normál működési állapotában mutatja: a rögzített eszköz képernyője a bal oldalon, a csomópontfa a jobb felső sarokban, alatta pedig a kiválasztott csomópont tulajdonságlapja.

Az UIAutomatorViewer ablaka, amelyen látható a rögzített eszköz képernyője, a csomópont-hierarchia fája és a csomópont-részletező panel.

Az UIAutomatorViewer használatának előfeltételei

Az ellenőr egy valódi kézibeszélő vagy emulátor élő képernyőjét olvassa le, így egy kis beállításra van szükség, mielőtt az ablak bármit is mutatna.

  • A Java Fejlesztőkészlet: Az uiautomatorviewer egy Java Egy batch szkript által indított asztali alkalmazás, ezért egy JDK-nak telepítve kell lennie, és elérhetőnek kell lennie a rendszerútvonalon.
  • Az Android SDK-k: a néző az SDK-n belül érkezik eszközök mappába, így az SDK-t telepíteni kell, mielőtt az indítóprogram létezne a lemezen.
  • Platformeszközök és adb: a néző a készüléken keresztül beszél a készülékkel Android Hibakeresési híd, így aDB telepítve kell lennie, és látnia kell a kézibeszélőt.
  • Fejlesztői beállítások és USB hibakeresés: mindkettőt be kell kapcsolni az eszközbeállításokban, különben az ADB soha nem listázza az eszközt.
  • Adatátvitelre alkalmas USB-kábel és illesztőprogram: csak töltésre szolgáló kábel, vagy hiányzó gyártói illesztőprogram a Windows, egy üres eszközlistát hoz létre.
  • A tesztelt alkalmazás: Az alkalmazást telepíteni és megnyitni kell az eszközön, mert az ellenőr rögzíti a képernyőn aktuálisan látható tartalmat.

Ha ez a hat elem megvan, a letöltési lépés rövid.

Az UIAutomatorViewer letöltése és telepítése

Az UIAutomatorViewer a következő része: Android SDK-kezelő, és az SDK-kezelő telepítése után elérhető lesz. Töltse le és telepítse a Android SDK innen: a hivatalos Android Studio letöltés oldal.

Miután a Android Az SDK telepítve van, navigáljon erre az elérési útra:

c:\users\<username>\AppData\Local\Android\sdk\tools

Látni fogsz egy ilyen nevű kötegfájlt:

uiautomatorviewer.bat

Double Kattintson rá az UIAutomatorViewer grafikus felhasználói felületének elindításához. A mappalista az alábbiakhoz hasonlóan néz ki, a kötegelt fájl a többi SDK-eszköz mellett található.

Android SDK eszközök mappa a Windows Az uiautomatorviewer kötegelt indítót tartalmazó Explorer

⚠️ Verzió megjegyzés: Androidsaját UI Automator korábbi dokumentációja továbbra is leírja az eszköz indítását a következő helyről: /eszközök/, de az elavult önálló Android SDK eszközök csomagot az SDK Manager már nem kínálja a jelenlegi verzióban Android Studio kiadások. A régóta telepített fájlok és a régebbi SDK-archívumok továbbra is tartalmazzák az indítófájlt; egy friss telepítésen a fájl általában hiányzik, és Appium Az Inspector a praktikus helyettesítő. A fenti eredeti lépéseket megtartottuk, mivel ezek minden olyan gépen helyesek maradnak, amelyen még megtalálható az Eszközök mappa.

Hogyan használjuk az UIAutomatorViewer-t objektumok keresésére az alkalmazásban

A felvételi sorrend mindig ugyanaz: készítsd elő az eszközt, helyezd a kamera elé a számodra fontos képernyőt, majd készítsd el a pillanatképet.

  1. engedélyezése fejlesztői beállítások az eszközödön. Olvasd el Androidútmutató az eszközön belüli fejlesztői beállítások konfigurálásához hogy megtudja, hogyan engedélyezheti a fejlesztői beállításokat a Android eszközök.
  2. csatlakoztassa a Android eszközt USB-kábellel a számítógéphez.
  3. Válassza ki a "Guru99” alkalmazást az alkalmazások listájából, az alábbiak szerint.

Guru99 pályázatot választottak ki a Android eszközalkalmazások listája

  1. Kattintson az Eszköz képernyőképe gombra az UIAutomatorViewer frissítéséhez és a betöltéséhez Guru99 alkalmazás grafikus felhasználói felülete az eszközbe. A gomb az alább kiemelt eszköztáron található.

Eszköz képernyőkép eszköztár gomb, amely az UIAutomatorViewer rögzítésének frissítésére szolgál

  1. A frissítés befejezése után egy képernyőkép jelenik meg a Guru99 alkalmazás nyílik meg a bal oldali panelen.

elfogott Guru99 alkalmazás képernyő betöltve az UIAutomatorViewer bal oldali ablaktáblájába

  1. Amint a fenti képen látható, az ablak jobb oldalán 2 panel található.

A felső panel a csomópont-hierarchiát tartalmazza – a felhasználói felület összetevőinek elrendezését és tárolását. Az egyes csomópontokra kattintva az alsó panelen megtekinthetők az adott felhasználói felület elem tulajdonságai.

  1. Válaszd ki a fenti képen a „Kvíz” gombot a különböző tulajdonságainak (szöveg, erőforrás-azonosító…) megtekintéséhez.

Kvíz gomb kiválasztva a csomópontfában, tulajdonságai az alsó részletező panelen láthatók.

Hogyan használjuk ezeket a tulajdonságokat az automatizálás elemeinek azonosításához?

Nos, a tulajdonságokat nem használhatod közvetlenül – minden tulajdonságnak más neve van az automatizálási API-ban. Nézzük meg, hogyan használhatod ezeket a tulajdonságértékeket. A következő attribútumok használhatók a 'Kvíz' gomb azonosítására a Guru99 alkalmazás.

Attribútum az UIAutomatorViewerben Helymeghatározó neve a szkriptben Tipikus felhasználás
szöveg név Látható címke egy gombon vagy egy statikus mezőn
erőforrás-azonosító id A legstabilabb választás, ha a fejlesztő beállít egyet
osztály osztály név Azonos típusú widgetek csoportjának kiválasztása
tartalom-leírás akadálymentesítési azonosító Többplatformos helymeghatározó, amely a képernyőolvasókat is segíti

Minden térképping közvetlenül látható a csomópont részleteinek paneljén. A szöveg Az attribútum használható „név”-ként, ahogy az alábbi tulajdonságsor is mutatja.

Csomópont-részlet sor, amely a névkeresőként használt szöveges attribútum értékét mutatja

Az erőforrás-azonosító Az attribútum „id”-ként használható.

Csomópont-részlet sor, amely az azonosító-lokátorként használt resource-id attribútum értékét mutatja.

Az osztály Az attribútum használható „osztálynévként”.

Csomópont részletező sor, amely az osztályNév lokátorként használt osztály attribútum értékét mutatja

Az tartalom-leírás Az attribútum használható „AccessibilityId”-ként.

Csomópont-részlet sor, amely a hozzáférhetőségi azonosító helymeghatározójaként használt content-desc attribútum értékét mutatja.

A fenti attribútumok mellett XPath útvonalakat is írhatunk objektumazonosításra. Ezeket az attribútumneveket adjuk át a kívánt képességek és a helymeghatározó stratégiákat a szkript futása után.

XPath lokátorok létrehozása UIAutomatorViewer attribútumok alapján

Az XPath a tartalék megoldás, ha egyetlen attribútum sem egyedi önmagában. A csomópont részletei panelen minden olyan értéket megtalálsz, amire a kifejezésnek szüksége van, így egy XPath valójában csak az attribútum, amit már beolvastál, predikátum formájában leírva.

A panelen ebben a sorrendben haladjon:

  1. Jelöld ki a csomópontot a felső panelen, és olvasd le a osztály, szöveg, erőforrás-azonosító és a tartalom-leírás értékek az alsó panelen.
  2. Egyetlen stabil attribútumot részesíts előnyben. Ha a resource-id ki van töltve, használd azt és állítsd le – nincs szükség XPath-ra.
  3. Ha semmi sem egyedi, akkor két attribútumot kombináljunk egyetlen predikátumban.
  4. Ha a címke futásidőben megváltozik, akkor az egyenlőségvizsgálatot részleges egyezésre kell átállítani.

Az alábbi minták pontosan úgy használják az attribútumneveket, ahogyan az UIAutomatorViewer jelenti azokat.

<!-- 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']

Néhány szabály megakadályozza, hogy ezek a kifejezések elvékonyodjanak. Az egész fát bejáró abszolút útvonalak abban a pillanatban megszakadnak, amikor a fejlesztő egy elrendezést még egy konténerbe csomagol, ezért minden kifejezést dupla perjellel kell kezdeni, és ehelyett egy attribútumra kell egyezni. Az indexalapú predikátumok ugyanígy viselkednek – addig maradnak fenn, amíg a képernyő nem kap egy sort. És egy olyan kifejezés, amely egyedi egy telefonképernyőn, több csomóponttal is egyezhet egy táblagép-elrendezésen, ezért a lokátor előléptetése előtt vizsgálja meg újra ugyanazt a képernyőt mindkét formátumtényezőn. Ugyanez a fegyelem vonatkozik a következőkre is: XPath be Selenium, ahol a fa egy DOM, nem pedig egy nézethierarchia.

Hibák, amelyekkel az UIAutomatorViewer használata során találkozhatunk

A legtöbb hiba egyetlen csomópont meghúzása előtt következik be, és szinte mindegyik a munkaállomás és a kézibeszélő közötti kapcsolatra vezethető vissza.

  • Látom a hibát — „Nem Android „Az adb észlelte az eszközöket” – ahogy az az alábbi képernyőképen is látható. Hogyan oldhatom meg ezt?

Az UIAutomatorViewer párbeszédpanel jelentése szerint nem Android az ADB eszközöket észlelt

Megoldás: Győződjön meg arról, hogy az eszköz csatlakoztatva van a számítógéphez.

Az alábbi táblázat kiterjeszti ezt a választ a tesztelők által leggyakrabban eltalált többi üzenetre.

Tünet Valószínű oka Rögzít
Nem Android az ADB eszközöket észlelt Az eszköz nincs csatlakoztatva, az USB-hibakeresés ki van kapcsolva, vagy csak töltésre szolgáló kábel van rajta Csatlakoztasd újra adatkábellel, engedélyezd az USB-hibakeresést, majd ellenőrizd, hogy a készülék megjelenik-e az ADB-eszközök listájában.
Az eszköz jogosulatlanként van feltüntetve Az RSA ujjlenyomat-kérést soha nem fogadta el a készülék Oldd fel a képernyőt, csatlakoztasd újra, és koppints az USB-hibakeresés engedélyezése elemre.
Hiányzik az uiautomatorviewer.bat fájl Az elavult SDK eszközcsomag nincs telepítve Használjon egy meglévő SDK-telepítést, amely még tartalmazza, vagy váltson a következőre: Appium Ellenőr
A hierarchia üres, vagy a rögzítés sikertelen A képernyő megváltozott a memóriakép mentésekor, vagy az alkalmazás blokkolja a képernyőkép rögzítését. Tartsa mozdulatlanul a képernyőt, és készítsen új pillanatfelvételt; biztonságos képernyőképeket nem lehet rögzíteni
A WebView tartalom egyetlen csomópontként jelenik meg A néző csak a natív nézeteket olvassa Webtartalom vizsgálata böngészőfejlesztő eszközökkel vagy egy webes kontextust támogató ellenőrzővel

UIAutomatorViewer vs. Appium Ellenőr vs. Elrendezésellenőr

Három ellenőrt alkalmaznak általában Android képernyők, és kissé eltérő problémákat oldanak meg.

Kritérium UIAutomator Viewer Appium Ellenőr Android Studio Elrendezésellenőr
Hajókkal Az örökség Android SDK eszközcsomag Egy önálló asztali alkalmazás Android Studio
Ellenőrzött peronok Android csak Android és iOS Android csak
Szükség van egy működő szerverre Nem, közvetlenül az ADB-vel kommunikál. Igen, csatlakozik egy Appium szerver munkamenet Nem, egy hibakereshető folyamathoz kapcsolódik
Helymeghatározó kódot generál Nem, az értékeket kézzel másolják Igen, javasol helymeghatározókat és rögzíti a műveleteket Nem, ez egy hibakereső nézet
A legalkalmasabb Egy régebbi beállítás gyors attribútumkeresése Lokalizálók létrehozása és validálása egy csomaghoz Elrendezési és renderelési problémák diagnosztizálása

Egy olyan lakosztályhoz, amely már átfut Appium, az Inspector a természetes utódja: ugyanazokat az attribútumokat olvassa, ugyanazt az UiAutomator2 illesztőprogramot futtatja alatta, és iOS ellen is működik. Appium Felügyelői projekt aktívan kiadják, így ez a biztonságosabb választás új munkákhoz, míg a Layout Inspector akkor is hasznos marad, amikor a kérdés az, hogy miért jelenik meg furcsán egy nézet, nem pedig az, hogy hogyan lehetne megoldani. Ha továbbra is egy verem mellett döntesz, a szélesebb körű összehasonlítást az útmutatónkban találod a következőkről: mobilalkalmazás-tesztelő eszközök jó következő lépés, és minta mobil tesztesetek mutasd meg, hogy ezek a lokátorok végül mibe táplálódnak be.

GYIK

Csak részben. A megjelenítő olvassa a natív nézethierarchiát, így egy WebView általában egyetlen átlátszatlan csomópontként jelenik meg. Vizsgálja meg a benne lévő HTML-t böngészőfejlesztő eszközökkel, vagy használjon egy olyan ellenőrzőt, amely képes webes kontextusba váltani.

Nem. A szerszám a következőhöz van kötve: Android Hibakereső híd és a Android nézethierarchia. iOS képernyők esetén használja Appium Ellenőr or Xcodeakadálymentesítési felügyelője, amely ehelyett az XCUITest elemfát olvassa be.

A parancs ugyanazt a hierarchiát írja ki egy XML fájlba az eszközön, grafika nélkül. Hasznos szkriptekben és headless gépeken, de elveszíti a képernyőképet tartalmazó átfedést, amely felgyorsítja a megfelelő csomópont megtalálását.

A gépi tanuláson alapuló helymeghatározó motorok több attribútumot – szöveget, osztályt, pozíciót és szomszédos csomópontokat – együttesen értékelnek, és újra feloldják az elemet, ha ezek közül valamelyik megváltozik. Ez az önjavító viselkedés csökkenti az átnevezett azonosítók okozta hibákat.

Igen. Illeszd be az attribútumértékeket egy megjegyzésbe, és a Copilot általában elkészíti a megfelelő page-object mező és kattintási metódus vázlatát. Mindig ellenőrizd a generált lokátort az élő képernyővel szemben, mert a javaslat egy találgatás, nem pedig keresés.

Nem. A megjelenítő a készülékre telepített builddel működik, így egy nem általad fordított APK is megvizsgálható. Csak a fejlesztő által ténylegesen beállított attribútumok, például a resource-id és a content-desc kerülnek feltöltésre.

Igen. Egy emulátor pontosan úgy működik, mint egy fizikai készülék, így az Eszköz képernyőképe gomb ugyanúgy rögzíti azt. Az emulátorok kényelmesek a korai szkripteléshez, bár a végső futtatásoknak valódi hardveren kell lenniük.

Minden vezérlőelemhez egy stabil, nyelvfüggetlen azonosítót ad, amely egyben a szkriptben az akadálymentesítési azonosító, és a képernyőolvasó által felolvasott címke is. Ugyanezen egysoros módosítással javul a tesztek megbízhatósága és az akadálymentesség.

Foglald össze ezt a bejegyzést a következőképpen: