Selenium IDE tanácsok – Bevezetés, rögzítés, várakozás
A Selenium Ide annyiszor mentette meg a tesztelési életemet, hogy úgy döntöttem:
- Mélyen beleások ebbe a tesztelők számára nélkülözhetetlen eszközbe, hogy jobban megértsem mi is ez, mit is csinál a Selenium IDE és hogyan lehetne belőle több hasznot húzni.
- Hogy terjesszem a hírét ennek a (számtalanszor) alulbecsült kiegészítőnek, megvédjem a becsületét és segítsek másoknak is mélyre ásni, megtanulni és ihletet meríteni belőle.
Jobb módja ennek mi más is lehetne mint a cikkírás? Szóval elkezdtem írogatni egy aprócska blog poszt sorozatot a Selenium IDE kapcsán, kifejtve benne néhány hasznos tanácsot, leírom majd hogy én miért és hogyan használom. A cikkek célja a tanulás!
Ez az első rész a sorozat bevezetője. Kifejti, hogy mi is a Selenium IDE és néhány alapvető részt taglal. Kezhetjük is.
Mi is a Selenium IDE?
A SeleniumHQ szerint a Selenium IDE egy Firefox add-on amely a böngésző interakciók egyszerű felvételére és lejátszására képes. Ebből a meghatározásból fókuszáljunk rá néhány fogalomra:
- IDE(Integrated Development Environment): Vagyis beépített fejlesztői környezet, melynek jelentése, hogy az applikáció segít neked szoftvereket fejleszteni a segédprogramokon keresztül.
- Firefox:Igen, a Selenium IDE csak Firefox böngészőn érhető el, tehát nem fog segíteni neked a más böngészőkön való tesztelésnél, de nagyszerűen használható eszköz az általános böngésző funkcionalitás tesztelésének automatizálására.
- Add-on:Böngésző kiegészítés, vagyis egy utólagosan telepíthető plusz, amely lehetővé teszi a böngésző felhasználóinak hogy megnöveljék az alapértelmezett böngésző funkcionalitását. A böngésző interakciók felvétele és lejátszása az, amivel a Selenium IDE kiegészíti az alap Firefox funkcionalitását.
- Felvétel-lejátszás:Jobban jellemezné, ha azt írnánk felvétel és/vagy lejátszás. Lehetőségünk van rögzíteni, de a lényeg igazából a lejátszáson van, mert ez az ami igazán megmutatja neked az automatizálási lehetőségeket, az interakciók lejátszása.
- Böngésző interakciók: Ez az a pont, amelyet a Selenium IDE nagyszerűen csinál. Ezzel a kiegészítő alkalmazással képes leszel felvenni, készíteni, futtatni különböző böngészőbeli tevékenységeket, szimulálva egy igazi felhasználó kattintását, gépelését, kiemelését, várakozását, stb.
Tehát egyszerű szavakkal összefoglalva: A Selenium IDE egy kis kiegészítője a Firefox böngészőnek, amely lehetővé teszi, hogy szimuláljuk a weboldalon történő valós felhasználói tevékenységet. Egyebek mellett képesek leszünk arra, hogy automatikus funkcionális teszteket végezzünk vele.
Mikor jó választás az automatizált tesztelésre a Selenium IDE?
A Selenium IDE-ben tárolhatjuk és rendszerezhetjük a teszteseteinket, tesztkészleteinket, így lehetőségünk nyílik arra, hogy automata tesztkészleteink és a futtatásaik egy eszközben legyenek. Selenium IDE egy erősen korlátozott (jobban mint gondolnád), könnyen használható eszköz egyszerű tesztesetekre, de a komplexebbekre (ahol például több elágazás van) már kevésbé az. Továbbá, ahogy már említettem csak Firefox alatt használható, tehát akinek olyan eszközre van szüksége, amelyben komplex teszteseteket tud írni, vagy több böngészőben dolgozna, jobb választás a Selenium Webdriver, vagy Watir. Van még pár fizetős eszköz, amely megfelelhet a igényeidnek.
Én személy szerint arra használom az egyszerű automatizálást, hogy ismételje meg az unalmas, mégis egyszerű feladatokat minden iterációnál, de nem célom ezen automaták tárolása és karbantartása. Ezt végezve a tesztek gyorsan, de mégis optimális módon fejlődnek és ez nagyon költséghatékony tud lenni. Továbbá a Selenium IDE egy fantasztikusan “segítőkész” eszköz a nem automatizálható teszteknél is, mert hatékonyan, gyorsan és robotszerűen hajt végre olyan lépéseket, melyek után az alkalmazás tesztelhetővé válik és olyan állapotba segíti a szoftvert, amelyet manuálisan unalmas eléri. Ha automatizálod az utat, mellyel eléred ezt a pontot, akkor nem leszel fáradt és ideges, illetve képes leszel továbbra is a tesztelési tudásod legjavát adni.
Egyszerű kezdésként rögzítsünk…
A legegyszerűbb módja, hogy tesztesetet készítsünk a Selenium IDE-vel, hogy manuálisan rögzítjük azt a Record gomb megnyomásával. Sajnos sok dolog settenkedik a felvétel alatt (a háttérben futó események, várakozik, mint egy ember és hasonlók). Például rögzítsünk egy egyszerű keresést; a keresőmotorba írjuk be hogy “Software Testing” és ellenőrizzük, hogy megjelenik-e a listában a link a Wikipédia oldalához. Itt van a kód, amelyet a rögzítés után látok a Selenium IDE-ben:
Ez a teszt reprodukálja a fent említett feladatot. A felvételi mód elég bölcs ahhoz, hogy a kattintásomat a keresés gombon egy “clickAndWait” (kattint és vár) parancsra transzformálja. A “Reference” fülön a parancs ezt mutatja…
clickAndWait(locator)
Generated from click(locator)
Arguments:
locator - an element locator
Clicks on a link, button, checkbox or radio button.
If the click action causes a new page to load (like a link usually does), call waitForPageToLoad.
Tehát gyakorlatilag az előző példa egyenértékű a következővel:
Ahol a 30000 egy tetszőleges számú ezredmásodperc, amelyet akkor hív meg ha már lefutott, de az oldal még nem töltődött be. A “clickAndWait” parancsot az IDE alapértelmezettként használja, melynek értékét (alapértelmezetten 30000 ez is) az Option menüpontban állíthatjuk. A “click”+“waitForPageToLoad” parancskombinációnál kézzel állíthatjuk az értéket, ezért akár kisebb, vagy nagyobb számot is beírhatunk.
Hasonló dolgot tudok elérni a “pause” parancs használatával.
Ennek futásánál azt láthatod, hogy a teszt végrehajtása MINDIG 30 másodpercet fog várni (30000 ezredmásodperc), függetlenül attól, hogy a lap az 1, vagy a 29-dik másodperceben töltődött be. A korábbi verziók ezért hatékonyabban működnek ennél. A lényeg az, hogy ha valamit a gombra kattintás után kell megtennünk, akkor biztosítanunk kell, hogy az oldal megfelelően be legyen töltődve mielőtt továbblépünk a következő műveletünkre.
Mert ha van egy ilyen tesztesetünk, az nagy valószínűséggel meg fog hiúsulni. Mivel azt mondtuk a Selenium IDE-nek, hogy ellenőrizzen a kattintás után, csakhogy éppen a kattintásunk indítja el az oldal betöltését, amin ellenőrizni szeretnénk valamit. Tehát ellenőrizni azelőtt valamit, mielőtt megvárnánk annak betöltődését egyenértékű lesz azzal, hogy a Selenium IDE nem találja az adott elemet, vagyis a következőt fogja visszaadni.
[error] false
Ezt a hibaüzenetet a “Log” fülön olvashatjuk miközben az IDE megpróbálja végrehajtani a “verifyElementPresent” parancsunkat. Vagyis mikor a parancs futott, nem találta a Wikipédia linket az oldalon, mivel az még nem volt teljesen betöltve.
Utolsó tanulságok
A tesztesetek felvételével könnyen ki tudjuk alakítani a tesztjeink “csontvázát”. Miután ez megvan, debuggoljuk őket (az ellenőrző pontok beállítása és a lépésről-lépésre való futtatás segítségünkre lesznek ebben) és tegyük őket olyan robusztussá, hogy problémamentesen reprodukálhatóak legyenek még akkor is, ha az irodai internet éppen belassul.
Köszönet az olvasásért és találkozunk a következő Selenium IDE cikkben.
Forrás:
http://www.softwaretestingclub.com/profiles/blogs/selenium-ide-hints-intro-recording-waiting
Szerző:Maurio Edo
A szerző
-
Minőségbiztosítási tesztelőként dolgozom 2008 óta. Egy szoftvertesztelő fanatikus vagyok, aki imádja a tesztelés minden apró részletét. Szeretem megtalálni a hibákat (a legösszetettebb hibákat a legjobban) és imádom a teszteszközöket használni, hogy még több ismeretem legyen, így még jobb tesztelő legyek.
Weboldal: http://testingfuncional .wordpress.com/