Qa platform blog - 4 ingyenes módja annak, hogy automatizálják a qt-alkalmazások gui-tesztelését az ablakok alatt
4 ingyenes módja a QT alkalmazások GUI tesztelésének automatizálására Windows alatt
A felhasználói felületek automatizálásának témája egyre fontosabbá válik, mint valaha. Sok vállalat olyan termékeket fejleszt, amelyek változatlanul nem változnak verzióról verzióra. Minden egyes iteráció során több új funkciót is hozzáadunk, számos korábban felfedezett hibát kijavítottunk. De a következő kiadás felszabadításakor fontos problémával szembesülnek - olyan alkalmazásfunkciók, amelyek mindig is stabilak, nem működnek.
Jelenleg a felhasználói interfészek automatizálásának témája egyre fontosabb, mint valaha. Sok vállalat olyan termékeket fejleszt, amelyek változatlanul nem változnak verzióról verzióra. Minden egyes iteráció során több új funkciót is hozzáadunk, számos korábban felfedezett hibát kijavítottunk. De a következő kiadás felszabadításakor fontos problémával szembesülnek - olyan alkalmazásfunkciók, amelyek mindig is stabilak, nem működnek. Mivel minden egyes iterációnál teljes kézi teszt elvégzése nagyon időigényes feladat, az ilyen vállalatok számára a legjobb megoldás a felhasználói felület tesztelésének automatizálása.
Ebben a cikkben olyan ingyenes eszközöket keresünk, amelyek automatizálják a QT könyvtárak által kifejlesztett Windows alkalmazások tesztelését. Az alábbiakban felsoroljuk azokat a lehetséges eszközöket, amelyek javíthatják a termék minőségét.
I. A QTestLib keretrendszer
Először nézzük meg a QTestLib keretrendszerét, amely a QT egység teszteléséért felelős. Sajnos a felhasználói felület teszteléséhez sokkal kevesebb szolgáltatást nyújt, mint az egységnyi tesztek írásához. Az QTestLib GUI tesztelésének egyetlen funkciója az egér és a billentyűzet szimulálása.
Az automatizálás tesztelése szempontjából ez a lehetőség messze a legoptimálisabb. Használatakor létezik egy egység teszt (a programozók által kifejlesztett) és GUI tesztek (tesztelők által kifejlesztett) keveréke. Ezenkívül fontos, hogy ne csak az ablak egyik vagy másik koordinátájára kattintsunk, hanem szerezzük be az ellenőrzések tulajdonságait és hajtsa végre a vezérlés által végrehajtott mintákat. Ezért nem fogunk élni vele, de lépjünk tovább a funkcionális eszközökre. Azok, akik többet szeretnének tudni a QTestLib keretrendszerről, többet tudhatnak meg a QTestLib bemutató 3. és 4. fejezetéről.
II. UI automatizálás
Az UI-automatizálás olyan technológia, amely a Microsoft Active Accessibility (MSAA) mechanizmust használja az interfészvezérlők eléréséhez. Régebben megjelent a Windows Presentation Foundation kiadásával együtt. Számos fizetett megoldás (például Ranorex) az UI Automation használatával érheti el a vezérlőket.
Minden elemet AutomationElement objektumként ábrázolnak, amelyben az alapazonosító meghatározása megtörtént. Egyes vezérlők végrehajthatják az úgynevezett mintákat. Például az ExpandCollapsePattern mintát egy menüelem összeomlásához és kibontásához használják. A támogatott minták eléréséhez használja a GetSupportedPatterns metódust. Egy adott tulajdonságértékkel rendelkező vezérlés kereséséhez használja a PropertyCondition osztályt.
A tesztek írása során az ellenőrzések azonosítóit, azok tulajdonságait és lehetséges mintáit kényelmesen megtekintheti az UISpy segédprogram használatával.
Szóval, hogyan kell használni az UI automatizálást a QT-alkalmazásokban? Ki kell építeni egy olyan alkalmazást, amely támogatja a hozzáférést - hozzáadja a QT_dirplugin elérhetõ plugint. A művelettel kapcsolatos részletek itt olvashatók. Ezután használhatja az UI Automation szolgáltatást.
A jobb megértés érdekében vegyünk egy példát egy egyszerű tesztre, amely elindít egy alkalmazást, kibontja a "Fájl" menüt, és rákattint az "Exit" gombra:
Ezenkívül érdemes megjegyezni, hogy ha a Visual Studio Professional, a Premium vagy az Ultimate fejlesztést használ, akkor olyan eszközt kapsz, mint a kódolt UI teszt. Ez magában foglalja a tesztfelvevőt, amely rögzíti a felhasználó műveleteit, és automatikusan létrehozza a teszteket az UI Automation használatával. De mivel a Visual Studio fenti verziói sok pénzt érnek el, akkor részletesen a cikk keretén belül nem vesszük figyelembe a kódolt UI tesztet.
III. A fehér keret
A fehér keret az UI automatizálás kiterjesztése, amely megkönnyíti a kezelőszervek és tulajdonságaik elérését. Megtalálhatja itt. Az UI-automatizáláshoz felsorolt összes funkció a fehérhez kapcsolódik.
A használat előnyeinek megértése érdekében az eredeti példát újratervezzük ezzel a keretrendszerrel.
Amint azt a példaből láthatjuk, sokkal könnyebben olvashatóvá válik az ellenőrzések elérése és a velük kapcsolatos műveletek végrehajtása, és a tesztek módosítása könnyebb.
IV. PowerShell kiterjesztések
A tesztautomatizálás a Windows beépített eszközeivel: powershell, valamint az UI Automation PowerShell Extensions segítségével érhető el. Itt található a bővítmények. Ez az eszköz lehetővé teszi, hogy a tesztelés rugalmasabb és független legyen a végrehajtási környezetre vonatkozóan. Például a konfigurációs tesztelés során csak a szkripteket kell virtuális gépekre másolni, ahol azok végrehajtásra kerülnek. Nincs további szoftver (kivéve az UIAutomation.dll-t).
Hogyan néz ki egy egyszerű QT automatizálási szkript a Powershell alkalmazáshoz:
Minden projekt egyedülálló, és nincs "legjobb" módja a felhasználói felület tesztelésének automatizálására. A kiválasztás során olyan paraméterekből kell kiindulni, mint a projekt költségvetése, a tesztelői csapat készségei, már használt eszközök. Továbbá nem szabad azonnal lemondania a fizetett automatizálási eszközökről - talán a vásárlásból származó megtérülés meghaladja az eredeti várakozásokat.