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.
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 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ó.
⚠️ 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.
- 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.
- csatlakoztassa a Android eszközt USB-kábellel a számítógéphez.
- Válassza ki a "Guru99” alkalmazást az alkalmazások listájából, az alábbiak szerint.
- 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ó.
- 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.
- 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.
- 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.
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.
Az erőforrás-azonosító Az attribútum „id”-ként használható.
Az osztály Az attribútum használható „osztálynévként”.
Az tartalom-leírás Az attribútum használható „AccessibilityId”-ként.
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:
- 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.
- 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.
- Ha semmi sem egyedi, akkor két attribútumot kombináljunk egyetlen predikátumban.
- 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?
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.







