Ez a bejegyzés a "Test automation with OperaWatir" című cikk fordítása. Az eredeti cikk 2009. március 6-án jelent meg a Core blogon.
Annak érdekében, hogy még a termék kiadása előtt megbizonyodhassunk az Opera motorjának megfelelő működéséről, különböző konfigurációkon több, mint 100 ezer automatikus tesztet futtatunk le minden egyes összeállítás elkészültekor.
A futtatott tesztek között találunk (automatikus) vizuális, JavaScript, teljesítmény-, stabilitás-, memória- és öntesztet, sok egyéb mellett. Hiányzott viszont az olyan műveletek vizsgálata, amik valamiféle felhasználói aktivitást igényelnek, például űrlapok kitöltése, hivatkozásokra kattintás vagy az összetett webes alkalmazások használata.
Így volt ez - egészen mostanáig.
Jelenleg a Scope protokollon keresztüli vezérlés támogatásán dolgozunk. Ez az a protokoll, amit a Dragonfly nevű fejlesztőeszközünkben is használunk. Egy egyszerű szkript segítségével például arra utasíthatjuk a böngészőt, hogy automatikusan használja a Google keresőt, jelentkezzen be a Hotmailbe és küldjön el egy üzenetet, vásároljon könyveket az Amazonon, vagy keressen repülőjegyeket az Expedián.
Íme egy példa, hogy hogyan nézhet ki egy ilyen szkript:
require "operawatir" browser = OperaWatir::Opera.new browser.goto("http://www.google.com") browser.text_field(:name, "q").value = "Wikipedia" browser.button(:name, "btnG").click browser.link(:text, "Wikipedia").click puts "PASS" if browser.text.include? "Wikipedia"
A fenti kód a Watir
API-t használja, ami egy eredetileg az Internet Explorerhez fejlesztett, Ruby nyelven írt tesztalkalmazás. Mostanra már Operára, és több más böngészőre is portolták.
Alább egy videó is látható, amit a szkript az asztali böngészőnk egy változatán fut. Jelentősen le kellett lassítanunk, hogy lássuk, mi történik, hiszen a valóságban az egész művelet csupán néhány tizedmásodpercig tart.
Ilyen és ehhez hasonló szkripteken keresztül automatikusan letesztelhetjük azokat a dolgokat, amiket felhasználók milliói tesznek nap mint nap. Ha valamit elrontottunk, és a teszt megbukik, a program azonnal jelez, hogy a hibát kijavíthassuk.
A Scope protokollt használva teljesen mindegy, hogy hogy egy helyi vagy távoli Opera példányról van-e szó, úgy alkottuk meg, hogy minden eszközön működjön. Itt van az előző szkript, amint éppen egy mobiltelefonon fut:
Nem sokkal azt követően, hogy elkezdtünk dolgozni ezen az eszközön, rájöttünk, hogy ez nem csak nekünk lehet hasznos a renderelő motornál, hanem a webfejlesztőknek is a saját alkalmazásaik esetében. Az új eszközeink még pre-alfa állapotban vannak, de ahogy fejlődnek a következő hónapok során, mindenki számára elérhetővé tesszük majd.
Több különböző böngésző létezik, és szeretnénk az összes népszerűbbet támogatni. A fenti szkript a Watir API-t használta. Az alábbi pedig a Webdriver-t, ami a Selenium következő verziójában kap majd helyet:public class OperaDriverExample { public static void main(String[] args) { WebDriver driver = new OperaDriver(); driver.get("http://www.google.com"); WebElement element = driver.findElement(By.name("q")); element.sendKeys("Wikipedia"); element.submit(); WebElement wikipediaLink = driver.findElement(By.linkText("Wikipedia")); wikipediaLink.click(); System.out.println("Page title is: " + driver.getTitle()); } }
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
Mesmoryser 2009.12.12. 19:34:44
"amiket felhasználók millió tesznek" milliói
"mindegy, hogy hogy egy"
"teljesítmény, stabilitás-, ... tesztet" (teljesítmény után is kötőjel)
"Hotmail-be" -> "Hotmailbe"
"Amazon-on" -> "Amazonon"
"Expedia-n" -> "Expedián"