Magyar Opera

Operások írták - Tesztelés OperaWatir-ral

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:

https://magyaropera.blog.hu/api/trackback/id/tr881590297

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

Csak pár apró hiba:
"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"
süti beállítások módosítása