14.1.19 Alkalmazás monitorozó mérőszerverA mérőszerver lehetőséget ad egy távoli számítógépen (továbbiakban tesztszerver) történő grafikus alkalmazás monitorozására. A grafikus alkalmazás automatizálásához az ingyenes Sikuli programot használja. A Sikulival készített tesztek feltölthetőek a PVSR webfelületén, majd a teszt szervereket jelölő eszközhöz kijelölhetőek, mint mérések. Tesztszerveren operációs rendszernek jelenleg Windows 8, 8.1, 7 és XP támogatott. Az eszköznek az alap attribútumaikon kívül az alábbi paramétereik vannak (zárójelben megadva az adott paraméter név kódját, lásd 7.5.6 Nem SNMP adatgyűjtők paraméterei): · Gép címe (APPMON EQ 1 IP): A tesztet futtató gép hostneve vagy IP címe, kötelező paraméter. · Felhasználó (APPMON EQ 2 USER): A felhasználó neve, kötelező paraméter. · Jelszó (APPMON EQ 3 PASSWORD): A felhasználó jelszava, kulcs alapú autentikációnál üresen kell hagyni. Az alkalmazás monitorozó két részből áll, a mérőszerverből és a tesztszerveren futó ügynök programból. Biztonsági okokból Windows szolgáltatás nem indíthat olyan alkalmazást, ami megjelenik a grafikus felületen, ezért szükséges egy felhasználó által indított ügynök program, a mi futtatja a teszteket (ez akár indulhat Startup programként is). A mérőszerver az ügynök programmal fájlokon keresztül kommunikál, nem nyit portot a gépen. A mérőszerver a fájlokat SFTP protokollon keresztül kezeli, kihasználva az SSH által nyújtott autentikációs és titkosított átviteli lehetőségeket. A mérőszerver feltölti, ellenőrzi, szükség esetén frissíti az adott tesztserverhez kijelölt teszt fájlokat, valamint vezérli az ügynök programot. Az ügynök programot és a Sikulit kézzel kell telepíteni a tesztserverre. Az adatgyűjtő két napló fájlt ír a PVSR logs könyvtárában. Az APPMON_MAIN kezdetű a teljes adatgyűjtőre vonatkozik, az APPMON_EQ.(eszköz ID) kezdetűbe az adott eszközhöz tartozó teszteredmények kerülnek. 14.1.19.1 Tesztek létrehozásaA teszteket a Sikuli szoftver automatizálási eszközzel kell létrehozni. A program kép kereséssel dolgozik, vagyis a tesztkészítés során megadott képekkel megegyező vagy nagyon hasonló képrészletet keres a képernyőn és ezután végrehajt egy adott műveletet, pl. kattintás, szövegbevitel stb. A könnyebb kezelhetőségért készült egy pvsrappmon nevű kiegészítő, mely bizonyos gyakran használt funkciókat old meg illetve a PVSR által támogatott mérési lehetőségeket valósítja meg. A teszteket Python nyelven kell írni, ennek a teljes körű dokumentációja itt található: https://docs.python.org/2/ PVSR specifikus függvények: · PVSRstartApp: elindítja a paraméterként megadott alkalmazást o Paraméterek: § appFile: futtatandó fájl neve § appParam: futtatási paraméterek, opcionális § appPath: az elindítandó program könyvtára, opcionális o Visszatérési érték: Sikuli App objektum · PVSRcloseApp: megpróbálja bezárni az aktuális alkalmazást, ha van paraméter azon meghívja a close függvényt , ha nincs akkor egy ALT + F4 billentyű paranccsot hajt végre o Paraméterek: § appObj: Sikuli App objektum, opcionális o Visszatérési érték: nincs · PVSRrun: megegyezik a beépített run paranccsal, azzal a különbséggel, hogy a futás és a kimenet belekerül a log file-ba o Paraméterek: § runcmd: futtatandó parancs o Visszatérési érték: a parancs kimenete · PVSRtaskkill: a taskkill parancs segítségével kilövi a processzt o Paraméterek: § imagename: a megszüntetendő parancs neve (pl cmd.exe) o Visszatérési érték: a taskkill parancs kimenete · PVSRabortTest: azonnal leállítja a teszt futását o Paraméterek: nincs o Visszatérési érték: nincs · PVSRreadParamFile: beolvas egy név=érték sorokból álló file-t. A beolvasás során a neveket kisbetűsíti a rendszer. A file tartalmazhat # karakterrel kezdődő sorokat o Paraméterek: § filepath: a beolvasandó file neve o Visszatérési érték: nincs · PVSRgetParam: visszaadja egy adott beolvasott paraméter értékét o Paraméterek: § paramName: a kért paraméter neve, a rendszer kisbetűsíti a kért paraméter nevet o Visszatérési érték: a beolvasott paraméter értéke vagy None, ha nem volt megadva a file-ban · PVSRgetParamRaw: ugyanaz, mint a PVSRgetParam, de nem kisbetűsíti a kért paraméter nevet · PVSRdumpParams: kiírja a log file-ba az összes paramétert és az értékét o Paraméterek: nincs o Visszatérési érték: nincs · PVSRshowDesktop: az összes megnyitott ablakot a tálcára helyezi, WIN + M billentyű paranccsal o Paraméterek: nincs o Visszatérési érték: nincs · PVSRwait: várakozás egy kép megjelenésére, a beépített wait függvény naplózással kibővített változata, ha siketelen alapesetben kivétel jön létre o Paraméterek: § picture: a keresni kívánt kép § timeout: keresés várakozási ideje másodpercben, opcionális [None] o Visszatérési érték: a legjobb találat vagy nulla ha nem volt találat · PVSRexists: várakozás egy kép megjelenésére, a beépített exists függvény naplózással kibővített változata, ha siketelen akkor is visszatér a függvény o Paraméterek: § picture: a keresni kívánt kép § timeout: keresés várakozási ideje másodpercben, opcionális [None] o Visszatérési érték: a legjobb találat vagy nulla ha nem volt találat · PVSRpaste: vágólapon keresztül bemásol tetszőleges szöveget o Paraméterek: § text: a beillesztendő szöveg o Visszatérési érték: nincs · PVSRtype: begépel az adott szöveg, ékezetes karaktereket nem kezel! o Paraméterek: § text: a begépelendő szöveg o Visszatérési érték: nincs · PVSRpasteWE: meghívja a beépített paste függvényt, majd küld egy ENTER billentyűt is o Paraméterek: § text: a beillesztendő szöveg o Visszatérési érték: nincs · PVSRtypeWE: meghívja a beépített type függvényt, majd küld egy ENTER billentyűt is o Paraméterek: § text: a begépelendő szöveg o Visszatérési érték: nincs · PVSRclick: bal egér gombbal kattint a képre (beépített click függvény helyett) o Paraméterek: § picture: a keresni kívánt kép § modifiers: lenyomva tartott billentyűk, pl. ALT, CTRL, SHIFT. Opcionális, [0]. o Visszatérési érték: nulla sikertelen a kattintás és egy ha sikeres · PVSRexistsClick: ha létezik a kép, akkor ráklikkel o Paraméterek: § picture: a keresni kívánt kép § timeout: mennyit várjon a képre o Visszatérési érték: nulla sikertelen a kattintás és egy ha sikeres · PVSRdoubleClick: bal egér gombbal dupla kattintás (beépített doubleClick függvény helyett) o Paraméterek: § picture: a keresni kívánt kép § modifiers: lenyomva tartott billentyűk, pl. ALT, CTRL, SHIFT. Opcionális, [0]. o Visszatérési érték: nulla sikertelen a kattintás és egy ha sikeres · PVSRrightClick: jobb egér gombbal kattint a képre (beépített rightClick függvény helyett) o Paraméterek: § picture: a keresni kívánt kép § modifiers: lenyomva tartott billentyűk, pl. ALT, CTRL, SHIFT. Opcionális, [0]. o Visszatérési érték: nulla sikertelen a kattintás és egy ha sikeres · PVSRhover: az egér kurzort mozgatja, de nem kattint (beépített hover függvény helyett) o Paraméterek: § picture: a keresni kívánt kép o Visszatérési érték: nulla sikertelen a mozgatás és egy ha sikeres · PVSRdragDrop: az egér kurzort az első kép szerint mozgatja, majd a bal egér gombot lenyomva tartva, a második képre mozog és felengedi a bal egér gombot. Terület kijelölésére hasznos (beépített dragDrop függvény helyett). o Paraméterek: § picture1: a kiindulásipont képe § picture2: a végpont képe o Visszatérési érték: nulla sikertelen a mozgatás és egy ha sikeres · PVSRclickList: végig megy a paraméterként megadott képeken és az első találatra kattint o Paraméterek: § args: képek listája o Visszatérési érték: ha nincs találat, akkor nulla ha van akkor a click függvény értéke · PVSRfindList: végig megy a paraméterként megadott képeken és az első találatnál visszatér o Paraméterek: § args: képek listája o Visszatérési érték: a megtalált kép paraméter Pattern objektumként · PVSRstartTiming: időmérés kezdete o Paraméterek: § key: az időmérés szöveges azonosítója o Visszatérési érték: nincs · PVSRendTiming: időmérés leállítása o Paraméterek: § key: az időmérés szöveges azonosítója o Visszatérési érték: a PVSRstartTiming óta eltelt idő vagy nulla, ha nem volt a megadott paraméterű időmérés elindítva · PVSRcheckPoint: egy ellenőrzőpont eredményének rögzítése o Paraméterek: § name: ellenőrzőpont neve § result: eredmény, nulla jelenti a sikertelent, egy a sikerest o Visszatérési érték: eredmény · PVSRexistsCheckPoint: egy kép keresése és az eredmény ellenőrző pontként. Sikertelen keresés esetén képernyőkép készül, „pvsrexistscheckpoint” kategóriával és a megjegyzésbe az ellenőrzőpont neve kerül. o Paraméterek: § name: ellenőrzőpont neve § picture: a keresni kívánt kép § timeout: keresés várakozási ideje, opcionális, [0] o Visszatérési érték: eredmény · PVSRcustomValue: Saját mérési érték megadása o Paraméterek: § key: érték azonosító szövege § value: érték, csak szám lehet o Visszatérési érték: nincs · PVSRsaveScreenShot: képernyőkép mentése dokumentációs célból. A PVSR elmenti a képet az adatbázisába és azokat a Teszt képek adatgyűjtő specifikus oldalon meg lehet tekinteni. Képernyő képet bizonyos hívások is készítenek hiba esetén, pl a PVSRclick hívás vagy a PVSRexists hívás. A képernyőkép készítést globálisan ki lehet kapcsolni/újraengedélyezni a setCreatePVSRsaveScreenShot hívással, míg a PVSRexists hiba esetén készítendő kép készítést a setPVSRexistsScreenshot hívással lehet állítani o Paraméterek: § postfix: kép kategória jelölése, opcionális, alapértelmezetten „appmon” § comment: tetszőleges szöveg, maximum 500 karakter hosszan o Visszatérési érték: nincs · setPVSRexistsScreenshot: állítani lehet, hogy legyen-e képernyőkép készítés a PVSRexists hiba esetében o Paraméterek: § a készítés ki/be kapcsolása, True vagy False érték o Visszatérési érték: nincs · setCreatePVSRsaveScreenShot: állítani lehet, hogy legyen-e képernyőkép készítés o Paraméterek: § a készítés ki/be kapcsolása, True vagy False érték o Visszatérési érték: nincs · PVSRsleep: a beépített sleep függvény naplózással kibővített változata o Paraméterek: § sleeptime: várakozási ideje másodpercben, opcionális, [1 másodperc] o Visszatérési érték: nincs · PVSRcheckProcess: adott nevű processzek száma. A tasklist parancsot használja. o Paraméterek: § imageName: processz név, pl.: chrome.exe o Visszatérési érték: processzek száma · PVSRgetFreeSpace: visszaadja a szabad helyet egy drive-on o Paraméterek: § filename: opcionális, alap értéke c: o Visszatérési érték: szabad hely · PVSRlogInfo: Info szintű napló üzenet kiírása o Paraméterek: § str: kiírandó szöveg o Visszatérési érték: nincs · PVSRlogError: Error szintű napló üzenet kiírása o Paraméterek: § str: kiírandó szöveg o Visszatérési érték: nincs · PVSRlogDebug: Debug szintű napló üzenet kiírása o Paraméterek: § str: kiírandó szöveg o Visszatérési érték: nincs · PVSRsetDebugLog: Debug szint engedélyezése naplózásan o Paraméterek: § enable: debug szintű log engedélyezése, ha értéke igaz, opcionális, alapértelmezetten engedélyez o Visszatérési érték: nincs · PVSRsetDebugComputerName: beállítja az, hogy a PVSRshowDebugMessage hívásnál melyik gépek esetén jelenjen meg popup hibaüzenet o Paraméterek: § DebugComputerName: a PVSRshowDebugMessage üzenet azon a gépen fog megjeleníteni üzenetet, amelyiknek a neve megegyezik az itt beállított névvel o Visszatérési érték: nincs · PVSRshowDebugMessage: megjelenít egy popup ablakot a megadott szöveggel, ha a gép neve megegyezik a PVSRsetDebugComputerName hívással beállított névvel. A hívás akkor ajánlott, ha kézzel akarjuk tesztelni egy fejlesztői gépen a scriptet o Paraméterek: § msg: a megjelenítendő üzenet o Visszatérési érték: nincs 14.1.19.2 Tesztek kezeléseA tesztek feltöltésére és kezelésre a PVSR webfelületén van lehetőség. Minden Appmon típusú eszköznél a jobb oldali lenyíló listában megjelenik az „Alkalmazás teszt script” menüpont. Itt globálisan lehet kezelni a teszteket, újat felvenni, meglévőt lecserélni, letölteni vagy törölni. Egy korlátozott adminisztrátor is az összes tesztet tudja használni vagy kezelni. Nincsen teszt szintű korlátozás. Minden tesztnek van egy verziószáma, ami automatikusan növekszik frissítés esetén, valamint ennek a dátuma is látható. A Sikuliban létrehozott tesztet, mint egy tömörített állományt kell feltölteni, ez könnyen létrehozható a File menü „Export excutable…” parancscal. 14.1.19.3 Lehetséges mérésekA tesztekben alapvetően ellenőrzőpontok sikerességére és eltelt időre definiálhatóak mérések. Mérések listája: · Checkpoint eredmény: Az adott nevű ellenőrzőpont sikeres volt vagy sem. · Checkpoint idő: a megadott nevű ellenőrzőpont és az előző (vagy a teszt eleje) között eltelt idő másodpercben. · Checkpointok sikeressége: két paraméterként megadott ellenőrzőpont, és a közöttük található pontok sikeressége százalékban. Két beépített ellenőrzőpont az AM_BEGIN és az AM_END, ezek a teszt elejét illetve a végét jelentik, akkor sikeresek, ha volt mérési adatot tartalmazó fájl a teszthez. · Checkpoint idő különbség: a két paraméterként megadott ellenőrzőpont között eltelt idő másodpercben. Két beépített ellenőrzőpont az AM_BEGIN és az AM_END, ezek a teszt elejét illetve a végét jelentik, akkor sikeresek, ha volt mérési adatot tartalmazó fájl a teszthez. · Teljes teszt idő: a teljes teszt lefutásának ideje az eredmény fájl alapján másodpercben. · Teszt eredmény: az aktuális teszt eredményben szereplő összes ellenőrzőpont sikeres volt vagy sem. · Művelet ideje: az adott nevű időmérés értéke · Egyedi érték: a megadott azonosító tetszőleges számérték lehet A mérések egy részét képes a PVSR a tesztek alapján automatikusan felajánlani a discovery folyamat során. A discovery minden eszköznél az összes tesztre lefut, a teszt fő Python fájlában keres bizonyos PVSR kezdetű függvényeket: · A PVSRendTiming hívások első paramétere alapján felveszi és elnevezi a „Művelet ideje” típusú méréseket. · A PVSRcheckPoint és a PVSRexistsCheckPoint hívások első paramétere alapján felveszi és elnevezi a „Checkpoint eredmény” és „Checkpoint idő” méréseket. · A PVSRcustomValue hívások első paramétere alapján felveszi és elnevezi az „Egyedi érték” típusú méréseket. · Megjeleníti a Teljes teszt idő mérést · Megjeleníti a Teszt eredmény mérést 14.1.19.4 Tesztszerver előkészítéseA következő elemek telepítése szükséges a tesztszerverre: · Cygwin: a Cygwin mindenképpen a C:\cygwin könytárba kell felinstallálni · Java JRE 1.6 32 bit · Sikuli + PVSR appmon agent (appmon.zip) A Cygwin telepítése után a SSH szolgáltatás konfigurálni kell, ezután lehetséges az SFTP használata. Fontos hogy a Java 1.6 32 bites változata elérhető legyen, mert egyébként nem működik a Sikuli. Ezen Java bin könyvtárának ez útvonalát a PATH környezeti változóba is bele kell tenni. Az appmon.zip állomány tartalmát a C:\cygwin\opt\pvsr\appmon könyvtárba kell kitömöríteni. A tesztek elindításához a start_pvsr_appmon.bat file-t kell futtatni a C:\cygwin\opt\pvsr\appmon könyvtárban. A teszt futtatása során a napló fájlok a C:\cygwin\opt\pvsr\appmon\logsk könyvtárba keletkeznek és azokat a rendszer két napig őrzi meg. 14.1.19.5 Teszt naplókEz az oldal a tesztek részletes napló állományait jeleníti meg, alapból maximum 30 napig. Ez a megőrzési elv a CONFIG_INI.pm file-ban a PVSR_APPMON_LOG_MAX_DATE paraméterrel állítható. Az oldalon a kezdő táblázat az eszköz és a teszt nevét mutatja a teszt időpontjával együtt. A részletek oldalon elől az egyes checkpoint-ok találhatók, a státuszukkal és azzal az idővel, ami ahhoz kellett, hogy az adott checkpoint-hoz jusson a teszt. A teszt file tartalmazza a fontosabb PVSR* hívásokat, a teszt által keresett képeket és azokat a képernyőképeket, amelyek még megtalálhatóak az adatbázisban. Az oldal a képernyőképeket olyan méretben mutatja, hogy azok kiférjenek az oldalra. A képekre rá is lehet klikkelni és ilyenkor az alkalmazás megnyitja azokat eredeti méretben egy külön böngésző ablakon. Fontos megjegyezni, hogy alapból az alkalmazás csak 5GB képet őriz meg, ez a CONFIG_INI.pm file-ban a PVSR_APPMON_PIC_MAX_SIZE_MB paraméterrel állítható át. 14.1.19.6 Teszt képekAz oldal az adatbázisban található képernyőképeket mutatja. Fontos megjegyezni, hogy alapból az alkalmazás csak 5GB képet őriz meg, ez a CONFIG_INI.pm file-ban a PVSR_APPMON_PIC_MAX_SIZE_MB paraméterrel állítható át. Az oldal az eszköz és a teszt nevét mutatj a képernyőképek alábbi paramétereivel: · Mikor készült a képernyőkép · A teszt file melyik sorában készült a kép · A PVSRsaveScreenShot funkció által kapott két paraméter A részletek oldalon a képre rá is lehet klikkelni és ilyenkor az alkalmazás megnyitja azokat eredeti méretben egy külön böngésző ablakon. |