Hlavní menu

Nástroje

SlovnikTerminologie / TestySelenium

View (print) - Edit page | Recent changes - Page history

Updated 23 May 2014, 11:02 by Jan Rada

SlovnikTerminologie.TestySelenium History

Hide minor edits - Show changes to markup

23 May 2014, 11:02 by Jan Rada -
Changed lines 95-96 from:

Díky definici závislostí mezi testy jsou v případě selhání některého z testů všechny závislé testy přeskočeny ("skipped") - tzn. nejsou vykonány. To znatelně usnadňuje identifikaci problémového testu. Pokud některý z testů i při opakovaném spuštění selže a jsou dodrženy "Podmínky úspěšného spuštění testů" (viz výše), je nezbytné odhalenou chybu vložit do Redmine nebo ji případně ihned opravit. Pokud k selhání testu dochází z důvodu změny aplikace, je nezbytné test opravit tak, aby odpovídal aktuální podobě aplikace. Testy je vhodné dále rozšiřovat - zejména pokud je do aplikace přidána nová funkcionalita nebo je odhalena chyba, která není stávajícími testy zachycena. Testy musí být vždy vytvořeny tak, aby byly opakovatelné - tzn. pokud v rámci testu dochází k vytvoření záznamu v DB, měl by být tento záznam po vykonání testu odstraněn.

to:

Díky definici závislostí mezi testy jsou v případě selhání některého z testů všechny závislé testy přeskočeny ("skipped") - tzn. nejsou vykonány. To znatelně usnadňuje identifikaci problémového testu. Pokud některý z testů i při opakovaném spuštění selže a jsou dodrženy "Podmínky úspěšného spuštění testů" (viz výše), je nezbytné odhalenou chybu vložit do Flyspray nebo ji případně ihned opravit. Pokud k selhání testu dochází z důvodu změny aplikace, je nezbytné test opravit tak, aby odpovídal aktuální podobě aplikace. Testy je vhodné dále rozšiřovat - zejména pokud je do aplikace přidána nová funkcionalita nebo je odhalena chyba, která není stávajícími testy zachycena. Testy musí být vždy vytvořeny tak, aby byly opakovatelné - tzn. pokud v rámci testu dochází k vytvoření záznamu v DB, měl by být tento záznam po vykonání testu odstraněn.

23 May 2014, 10:54 by Jan Rada -
Changed line 79 from:

Testy je možné spouštět prostřednictvím nástroje Maven. Spuštění se provádí příkazem:

to:

Testy je také možné spouštět prostřednictvím nástroje Maven. Spuštění se provádí příkazem:

Changed lines 95-96 from:

Díky definici závislostí mezi testy jsou v případě selhání některého z testů všechny závislé testy přeskočeny ("skipped") - tzn. nejsou vykonány. To znatelně usnadňuje identifikaci problémového testu. Pokud některý z testů i při opakovaném spuštění selže a jsou dodrženy "Podmínku úspěšného spuštění testů" (viz výše), je nezbytné odhalenou chybu vložit do Redmine nebo ji případně ihned opravit. Pokud k selhání testu dochází z důvodu změny aplikace, je nezbytné test opravit tak, aby odpovídal aktuální podobě aplikace. Testy je vhodné dále rozšiřovat - zejména pokud je do aplikace přidána nová funkcionalita nebo je odhalena chyba, která není stávajícími testy zachycena. Testy musí být vždy vytvořeny tak, aby byly opakovatelné - tzn. pokud v rámci testu dochází k vytvoření záznamu v DB, měl by být tento záznam po vykonání testu odstraněn.

to:

Díky definici závislostí mezi testy jsou v případě selhání některého z testů všechny závislé testy přeskočeny ("skipped") - tzn. nejsou vykonány. To znatelně usnadňuje identifikaci problémového testu. Pokud některý z testů i při opakovaném spuštění selže a jsou dodrženy "Podmínky úspěšného spuštění testů" (viz výše), je nezbytné odhalenou chybu vložit do Redmine nebo ji případně ihned opravit. Pokud k selhání testu dochází z důvodu změny aplikace, je nezbytné test opravit tak, aby odpovídal aktuální podobě aplikace. Testy je vhodné dále rozšiřovat - zejména pokud je do aplikace přidána nová funkcionalita nebo je odhalena chyba, která není stávajícími testy zachycena. Testy musí být vždy vytvořeny tak, aby byly opakovatelné - tzn. pokud v rámci testu dochází k vytvoření záznamu v DB, měl by být tento záznam po vykonání testu odstraněn.

Added lines 107-109:
  • http://www.tutorialspoint.com/testng/index.htm
  • http://testng.org/doc/selenium.html
22 May 2014, 22:13 by Jan Rada -
Changed lines 95-96 from:

Díky definici závislostí mezi testy jsou v případě selhání některého z testů všechny závislé testy přeskočeny ("skipped") - tzn. nejsou vykonány. To znatelně usnadňuje identifikaci problémového testu. Pokud některý z testů i při opakovaném spuštění selže a jsou dodrženy "Podmínku úspěšného spuštění testů" (viz výše), je nezbytné odhalenou chybu vložit do Redmine nebo ji případně ihned opravit. Pokud k selhání testu dochází z důvodu změny aplikace, je nezbytné test opravit tak, aby odpovídal aktuální podobě aplikace. Testy je vhodné dále rozšiřovat - zejména pokud je do aplikace přidána nová funkcionalita. Testy musí být vždy vytvořeny tak, aby byly opakovatelné. Pokud v rámci testu dochází k vytvoření záznamu v DB, měl by být tento záznam po vykonání testu odstraněn.

to:

Díky definici závislostí mezi testy jsou v případě selhání některého z testů všechny závislé testy přeskočeny ("skipped") - tzn. nejsou vykonány. To znatelně usnadňuje identifikaci problémového testu. Pokud některý z testů i při opakovaném spuštění selže a jsou dodrženy "Podmínku úspěšného spuštění testů" (viz výše), je nezbytné odhalenou chybu vložit do Redmine nebo ji případně ihned opravit. Pokud k selhání testu dochází z důvodu změny aplikace, je nezbytné test opravit tak, aby odpovídal aktuální podobě aplikace. Testy je vhodné dále rozšiřovat - zejména pokud je do aplikace přidána nová funkcionalita nebo je odhalena chyba, která není stávajícími testy zachycena. Testy musí být vždy vytvořeny tak, aby byly opakovatelné - tzn. pokud v rámci testu dochází k vytvoření záznamu v DB, měl by být tento záznam po vykonání testu odstraněn.

22 May 2014, 22:11 by Jan Rada -
22 May 2014, 22:11 by Jan Rada -
Changed line 94 from:

Údržba testů

to:

Údržba testů

Added lines 97-98:

22 May 2014, 22:10 by Jan Rada -
Changed lines 58-60 from:

Selenium testy SPOTu

to:

Selenium testy SPOTu

22 May 2014, 22:09 by Jan Rada -
Deleted lines 99-101:
  • http://vavru.cz/testovani-aplikaci/selenium-mocna-zbran-na-akceptacni-testy/
  • http://seleniumhq.org
Deleted line 100:
Changed lines 102-104 from:
  • http://mojo.codehaus.org/selenium-maven-plugin/usage.html
  • http://www.vineetmanohar.com/2007/06/maven-selenium/ (kapitola 3.8)
to:
22 May 2014, 22:06 by Jan Rada -
Changed lines 93-124 from:

Díky definici závislostí mezi testy jsou v případě selhání některého z testů všechny závislé testy přeskočeny ("skipped") - tzn. nejsou vykonány. To znatelně usnadňuje identifikaci problémového testu. Pokud některý z testů i při opakovaném spuštění selže a jsou dodrženy "Podmínku úspěšného spuštění testů" (viz výše), je nezbytné odhalenou chybu vložit do Redmine nebo ji případně ihned opravit. Pokud k selhání testu dochází z důvodu změny aplikace, je nezbytné test opravit tak, aby odpovídal aktuální podobě aplikace.

Spouštění testů přes Maven (selenium-maven-plugin + maven-surefire-plugin + maven-jetty-plugin)

Knihovny potřebné pro spuštění Selenium testů jsou do aplikace SPOT staženy pomocí Mavenu a konfigurovány v pom.xml. Spuštění testů se provádí příkazem:

  • $ mvn integration-test

Při tomto příkazu se nejprve automaticky sestaví webová aplikace. Dále se sestavená webová aplikace spustí s využitím kontejneru Jetty (maven-jetty-plugin). Následně je provedeno spuštění Selenium serveru (integrován v selenium-maven-plugin) a na závěr dojde k samotnému vykonání testů.

Použitý Selenium server integrovaný v selenium-maven-pluginu je obvykle starší verze (než aktuální verze Selenium serveru), což může způsobovat problémy při pokusu o vykonání testů v novějších verzích internetových prohlížečů. V případě problémů s vykonáním testů je proto vhodné zkusit změnit internetový prohlížeč, ve kterém mají být testy vykonány (viz Poznámky ke spouštění Selenium testů), nebo nainstalovat starší verzi některého prohlížeče.

Generování logu s průběhem testů zajišťuje maven-surefire-plugin. Průběh testování je zaznamenáván do xml soubrů v adresáři ${basedir}/target/surefire-reports. Tato data lze exportovat do přehledné webové stránky, která bude umístěna v ${basedir}/target/site.

  • $ mvn surefire-report:report
  • $ mvn site - je vygenerována stránka s technickými údaji aplikace

V pom.xml je možné určit, jaké testy (sady testů) mají být při zadání příkazu $ mvn integration-test spouštěny a jaké ignorovány (include/exclude).

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém mají být testy vykonány.

(Spuštění samotného Selenium serveru bez provedení testů: $ mvn selenium:start-server. Kompletní sada testů je vždy provedena i při zadání: $ mvn deploy.)

Spuštění Selenium testů přes Eclipse IDE (STS)

Selenium testy je možné spustit také přímo přes Eclipse IDE (STS). Postup:

  1. nutné ručně spustit aplikaci (například přes Run Jetty)
  2. nutné ručně spustit Selenium server (java -jar selenium-server-standalone-2.32.0.jar), který je možné stáhnout ze stránky http://code.google.com/p/selenium/downloads/list
  3. v Eclipse vybrat požadovaný test (sadu testů) a spustit přes Run As -> JUnit Test

Stejně jako v případě spouštění testů přes Maven je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá a v systému se nacházel zvolený internetový prohlížeč.

to:

Díky definici závislostí mezi testy jsou v případě selhání některého z testů všechny závislé testy přeskočeny ("skipped") - tzn. nejsou vykonány. To znatelně usnadňuje identifikaci problémového testu. Pokud některý z testů i při opakovaném spuštění selže a jsou dodrženy "Podmínku úspěšného spuštění testů" (viz výše), je nezbytné odhalenou chybu vložit do Redmine nebo ji případně ihned opravit. Pokud k selhání testu dochází z důvodu změny aplikace, je nezbytné test opravit tak, aby odpovídal aktuální podobě aplikace. Testy je vhodné dále rozšiřovat - zejména pokud je do aplikace přidána nová funkcionalita. Testy musí být vždy vytvořeny tak, aby byly opakovatelné. Pokud v rámci testu dochází k vytvoření záznamu v DB, měl by být tento záznam po vykonání testu odstraněn.

Odkazy:

  • JemnyUvodDoTestoveni
  • TestyJUnit
  • TestovaciScenare
  • http://vavru.cz/testovani-aplikaci/selenium-mocna-zbran-na-akceptacni-testy/
  • http://seleniumhq.org
  • http://docs.seleniumhq.org/
  • http://docs.seleniumhq.org/download/maven.jsp
  • http://mojo.codehaus.org/selenium-maven-plugin/usage.html
  • http://www.vineetmanohar.com/2007/06/maven-selenium/ (kapitola 3.8)
Deleted lines 110-149:

Poznámky ke spouštění Selenium testů:

  • Spuštěná webová aplikace musí být přístupná přes URI http://localhost:8080/spot/ (case sensitive), jinak nebudou Selenium testy úspěšně vykonány. Je proto vhodné, aby byl lokální projekt pojmenován jako "spot".
  • Během provádění testů vyžadujících přihlášeného uživatele, jsou pro přihlášení používány speciálně vytvořené uživatelské účty (testuser a testadmin), které jsou již v dumpu databáze a nemusí se proto vytvářet
  • Změna internetového prohlížeče pro vykonání testů se provádí ve třídě SeleniumTestCase.java, kde je požadovaný prohlížeč zvolen prostřednictvím odpovídajícího klíčového slova. V případě nestandardní cesty k instalaci vybraného prohlížeče je možno přesně specifikovat i cestu (viz zakomentované varianty).
  • Pokud při spuštění Selenium testů není nalezen zvolený internetový prohlížeč, je použitý ten prohlížeč, který Selenium považuje pro daný systém jako defaultní (pro Windows - Internet Explorer, jinak - Firefox).
  • Testování je poměrně náročné a chyba při vykonání testu může být způsobena například jen pomalou odezvou serveru - nemusí tedy vždy znamenat chybu v aplikaci

Pravidla pro vytváření a editaci Selenium testů:

  • Testy se vytvářejí nebo editují s využitím pluginu Selenium IDE pro Firefox. Zdrojové soubory s testy jsou ukládány ve výchozím formátu (tzn. html) do složky ${basedir}/src/test/resources/selenium_src/. Finální podoba testu je vždy vyexportována do Java kódu a vložena do odpovídající třídy v ${basedir}/src/test/java/cz/zcu/kiv/spot/selenium/. V případě přímé editace Java kódu testu je nezbytné provést tyto změny i v odpovídajícím zdrojovém html souboru pro Selenium IDE!
  • Třída SeleniumSuitTest.java představuje sadu testů (jednotlivé testy jsou do sady přiřazeny s využitím anotace). Testy uvedené v sadě je možné spouštět naráz.
  • V abstraktní třídě SeleniumTestCase.java je definováno spouštění testů (možnost volby internetového prihlížeče).

Problémy a nedostatky současných (1.6.2013) Selenium testů:

  • spuštění testů přes Maven na OS Windows s aktuálními verzemi standardních internetových prohlížečů (Firefox, Opera, Internet Explorer) je nefunkční (z důvodu nekompatibility použitých knihoven a aktuálních verzí prohlížečů) a je nutné používat spouštění testů přímo z Eclipse IDE (STS) - osvědčilo se použití Selenium serveru verze 2.32.0 a prohlížeče Firefox verze 21.0, problém se spouštěním testů přes Maven by mohl být v budoucnu vyřešen přechodem na testy Selenium 2.0 a použitím novějších verzí knihoven
  • testy jsou často zaměřeny jen na optimistické scénáře (např. uživatel zadal veškeré vstupy do formuláře správně)
  • testy zdaleka nepokrývají celou aplikaci, ale jen základní funkce
  • testy mají mezi sebou závislosti, takže v případě jejich jednotlivého spuštění nebo spuštění v jiném pořadí než je uvedeno v SeleniumSuitTest.java, může dojít k selhání (např. test vložení již existujícího slova neproběhne v pořádku, pokud před jeho provedením nebyl vykonán test vložení slova)
  • Test AddAbbrForWordTest.java není opakovatelný, jelikož po předchozím spuštění celé sady testů v databázi zůstane testovací zkratka a výpis, který je v testu porovnáván, má proto při opakovaném spuštění jinou podobu (pozn. ponechání zkratky v databázi i při smazání odpovídajícího slova je správné chování aplikace - zkratka totiž může být přiřazena i k jinému slovu a neměla by proto být se slovem mazána); před opakovaným spuštěním testů je proto vhodné z databáze testovací zkratku manuálně odstranit (přes pgAdmin)
  • testy by bylo vhodné z důvodu snadnější orientace rozdělit do více balíků a sad testů

Odkazy:

  • JemnyUvodDoTestoveni
  • TestyJUnit
  • TestovaciScenare
  • http://vavru.cz/testovani-aplikaci/selenium-mocna-zbran-na-akceptacni-testy/
  • http://seleniumhq.org
  • http://docs.seleniumhq.org/docs/05_selenium_rc.jsp
  • http://docs.seleniumhq.org/download/maven.jsp
  • http://mojo.codehaus.org/selenium-maven-plugin/usage.html
  • http://mojo.codehaus.org/selenium-maven-plugin/examples/using-with-surefire.html
  • http://www.vineetmanohar.com/2007/06/maven-selenium/ (kapitola 3.8)
  • http://www.bitmotif.com/selenium/selenium-remote-control-for-java-a-tutorial/
  • http://www.bitmotif.com/selenium/selenium-remote-control-for-java-a-tutorial-part-2/

22 May 2014, 21:52 by Jan Rada -
Changed lines 93-95 from:
to:

Díky definici závislostí mezi testy jsou v případě selhání některého z testů všechny závislé testy přeskočeny ("skipped") - tzn. nejsou vykonány. To znatelně usnadňuje identifikaci problémového testu. Pokud některý z testů i při opakovaném spuštění selže a jsou dodrženy "Podmínku úspěšného spuštění testů" (viz výše), je nezbytné odhalenou chybu vložit do Redmine nebo ji případně ihned opravit. Pokud k selhání testu dochází z důvodu změny aplikace, je nezbytné test opravit tak, aby odpovídal aktuální podobě aplikace.

22 May 2014, 21:43 by Jan Rada -
Changed lines 63-64 from:

Vytvořené testy lze spouštět přímo z vývojového prostředí Eclipse (popř. STS). Spuštění se provádí pomocí doplňku "TestNG for Eclipse", který je dostupný v "Eclipse Marketplace".

to:

Vytvořené testy lze pohodlně spouštět přímo z vývojového prostředí Eclipse (popř. STS). Spuštění se provádí pomocí doplňku "TestNG for Eclipse", který je dostupný v "Eclipse Marketplace".

Changed lines 67-68 from:

Spuštění testů: pravé tlačítko myši na třídě TestCase nebo XML souboru TestSuite, "Run As" -> "TestNG Test" (popř. "TestNG Suite")

to:

Spuštění testů: pravé tlačítko myši na konkrétní třídě TestCase nebo na XML souboru TestSuite, "Run As" -> "TestNG Test" (popř. "TestNG Suite")

Changed line 73 from:
  • V databázi musí být nahrány záznamy potřebné pro testování (uživatelé, slova,...) - tyto záznamy je možné do DB nahrát pomocí skriptu SeleniumTestingData?/testing_data.sql
to:
  • V databázi musí být záznamy potřebné pro testování (uživatelé, slova,...) - tyto záznamy je možné do DB nahrát pomocí skriptu sql/SeleniumTestingData/testing_data.sql
Changed lines 77-78 from:
to:

Testy je možné spouštět prostřednictvím nástroje Maven. Spuštění se provádí příkazem:

  • $ mvn verify

Při tomto příkazu se nejprve automaticky sestaví webová aplikace. Dále se sestavená webová aplikace spustí s využitím kontejneru Jetty (maven-jetty-plugin) a na závěr dojde k samotnému vykonání testů.

Spuštění testů a generování logu s průběhem testů zajišťuje maven-failsafe-plugin. Průběh testování je zaznamenáván do xml soubrů v adresáři ${basedir}/target/failsafe-reports.

V pom.xml je možné určit, jaké testy (sady testů) mají být při zadání příkazu mvn verify spouštěny a jaké ignorovány (include/exclude).

Podmínky úspěšného spuštění testů:

  • Musí být spuštěna databáze, kterou aplikace používá
  • V databázi musí být záznamy potřebné pro testování (uživatelé, slova,...) - tyto záznamy je možné do DB nahrát pomocí skriptu sql/SeleniumTestingData/testing_data.sql
  • Na PC musí být nainstalován internetový prohlížeč Firefox (případně musí být vhodným způsobem upraveno vytváření instance WebDriveru ve třídě AbstractAnonymUserTest.java)
22 May 2014, 21:27 by Jan Rada -
Changed lines 63-65 from:
to:

Vytvořené testy lze spouštět přímo z vývojového prostředí Eclipse (popř. STS). Spuštění se provádí pomocí doplňku "TestNG for Eclipse", který je dostupný v "Eclipse Marketplace".

Instalace doplňku do Eclipse: "Help" -> "Eclipse Marketplace...", vyhledat doplněk podle názvu, "Install"

Spuštění testů: pravé tlačítko myši na třídě TestCase nebo XML souboru TestSuite, "Run As" -> "TestNG Test" (popř. "TestNG Suite")

Podmínky úspěšného spuštění testů:

  • Před spuštěním testů musí být manuálně spuštěna testovaná webová aplikace (například přes plugin "Eclipse Jetty 3.7.0" využívající kontejner Jetty)
  • Předem spuštěná testovaná aplikace musí být přístupná přes URI http://localhost:8080/spot/ (je vhodné mít projekt pojmenován "spot") nebo musí být adresa upravena ve třídě AbstractAnonymUserTest.java
  • Musí být spuštěna databáze, kterou aplikace používá
  • V databázi musí být nahrány záznamy potřebné pro testování (uživatelé, slova,...) - tyto záznamy je možné do DB nahrát pomocí skriptu SeleniumTestingData?/testing_data.sql
  • Na PC musí být nainstalován internetový prohlížeč Firefox (případně musí být vhodným způsobem upraveno vytváření instance WebDriveru ve třídě AbstractAnonymUserTest.java)

Spuštění testů - Maven

Údržba testů

22 May 2014, 20:46 by Jan Rada -
Changed lines 59-62 from:
to:

Aktuální (květen 2014) Selenium testy SPOTu jsou vytvořeny s využitím testovacího frameworku TestNG a to zejména kvůli definici závislostí mezi jednotlivými testy.

Spuštění testů - Eclipse IDE (STS)

22 May 2014, 20:36 by Jan Rada -
Changed lines 53-54 from:

Spuštění testů je díky frameworku JUnit velmi jednoduché. Provádí se například přímo v použitém vývojovém prostředí (viz obrázek 3.4) nebo lze testy spouštět nástroji Maven či Ant.

to:

Spuštění testů je díky frameworku JUnit velmi jednoduché. Provádí se například přímo v použitém vývojovém prostředí nebo lze testy spouštět nástroji Maven či Ant.

Changed lines 56-57 from:

Integrace s testovacím frameworkem TestNG má stejné přínosy jako integrace s JUnit. Nabízí ale navíc definice závislostí mezi testy. To je výhodné zejména při testování webových aplikací většího rozsahu. Pomocí závislostí lze eliminovat duplicitní kód testů a usnadnit lokalizaci chyb na základě výsledků testů.

to:

Integrace s testovacím frameworkem TestNG má stejné přínosy jako integrace s JUnit a použití je rovněž velmi podobné. Mimo jiné ale TestNG navíc nabízí možnost definice závislostí mezi testy. To je výhodné zejména při testování webových aplikací většího rozsahu. Pomocí závislostí lze eliminovat duplicitní kód testů a usnadnit lokalizaci chyb na základě výsledků testů.

22 May 2014, 19:39 by Jan Rada -
22 May 2014, 19:37 by Jan Rada -
Changed lines 5-6 from:

Selenium

to:

Selenium

Changed lines 58-63 from:

Selenium testy SPOTu

to:

Selenium testy SPOTu

22 May 2014, 19:36 by Jan Rada -
Changed lines 5-6 from:

Selenium

to:

Selenium

Changed line 10 from:

Selenium IDE

to:

Selenium IDE

Changed line 29 from:

Selenium RC

to:

Selenium RC

Changed line 39 from:

Selenium WebDriver

to:

Selenium WebDriver

Changed line 47 from:

Selenium Grid

to:

Selenium Grid

Changed line 50 from:

Selenium 2 + JUnit

to:

Selenium 2 + JUnit

Changed lines 55-57 from:

Selenium 2 + TestNG

to:

Selenium 2 + TestNG

Integrace s testovacím frameworkem TestNG má stejné přínosy jako integrace s JUnit. Nabízí ale navíc definice závislostí mezi testy. To je výhodné zejména při testování webových aplikací většího rozsahu. Pomocí závislostí lze eliminovat duplicitní kód testů a usnadnit lokalizaci chyb na základě výsledků testů.

22 May 2014, 19:34 by Jan Rada -
Deleted lines 0-1:

Selenium

Added lines 5-6:

Selenium

Added lines 50-57:

Selenium 2 + JUnit

K použití Selenium testů v praxi je velmi výhodná integrace s dalšími testovacími frameworky. Na platformě Java je vhodným frameworkem například JUnit. Podoba výsledných testů se od klasických JUnit testů příliš neliší. V testových metodách se využívají standardní assert metody z knihovny JUnit, ale ve zbytku těla testu jsou používány metody a objekty Selenium knihovny doplněné o libovolný Java kód. V testech je rovněž možné využívat funkcionalitu poskytovanou dalšími knihovnami.

Spuštění testů je díky frameworku JUnit velmi jednoduché. Provádí se například přímo v použitém vývojovém prostředí (viz obrázek 3.4) nebo lze testy spouštět nástroji Maven či Ant.

Selenium 2 + TestNG

Added lines 60-62:
22 May 2014, 19:28 by Jan Rada -
Changed lines 50-51 from:

Selenium testy SPOTu?

to:

Selenium testy SPOTu

22 May 2014, 19:27 by Jan Rada -
Added lines 1-2:

Selenium

Deleted lines 6-7:

Selenium

Added lines 50-51:

Selenium testy SPOTu?

22 May 2014, 19:25 by Jan Rada -
Changed lines 11-12 from:

Selenium IDE je jedním z nástrojů sady Selenium. Je distribuováno ve formě doplňku do internetového prohlížeče Firefox. Nástroj je cílen zejména na skupinu uživatelů bez programátorských znalostí a zkušeností, kterým i tak dovoluje vytvářet poměrně komplexní testy. Jeho předností je grafické uživatelské rozhraní umožňující vytvářet testy prostřednictvím záznamu uživatelem prováděných akcí. Takto zaznamenané posloupnosti akcí lze dále editovat nebo rovnou beze změn spouštět. (Pro potřeby testování je nezbytné doplnit přinejmenším kroky provádějící ověřovací příkazy - assert/verify.)

to:

Selenium IDE je jedním z nástrojů sady Selenium. Je distribuováno ve formě doplňku do internetového prohlížeče Firefox. Nástroj je cílen zejména na skupinu uživatelů bez programátorských znalostí a zkušeností, kterým i tak dovoluje vytvářet poměrně komplexní testy. Jeho předností je grafické uživatelské rozhraní umožňující vytvářet testy prostřednictvím záznamu uživatelem prováděných akcí. Takto zaznamenané posloupnosti akcí lze dále editovat nebo rovnou beze změn spouštět. (Pro potřeby testování je nezbytné doplnit přinejmenším kroky provádějící ověřovací příkazy - assert/verify.)

Changed line 19 from:

Selenium IDE se do prohlížeče Firefox nainstaluje přes odkaz umístěný přímo na stránkách produktu. Instalaci doplňku je nutné potvrdit. Nainstalovaný doplněk je poté spustitelný skrze nabídku "Firefox" -> "Vývoj webu".

to:

Selenium IDE se do prohlížeče Firefox nainstaluje přes odkaz umístěný přímo na stránkách produktu. Instalaci doplňku je nutné potvrdit. Nainstalovaný doplněk je poté spustitelný skrze nabídku "Firefox" -> "Vývoj webu".

Changed lines 21-22 from:

Pro Selenium IDE existuje velké množství dalších rozšíření (např. File Logging (Selenium IDE) umožňující zápis výsledků testů do logovacího souboru).

to:

Pro Selenium IDE existuje velké množství dalších rozšíření (např. File Logging (Selenium IDE) umožňující zápis výsledků testů do logovacího souboru).

22 May 2014, 19:24 by Jan Rada -
Changed lines 40-41 from:

Selenium WebDriver je plnohodnotnou náhradou za starší Selenium RC. Nástroj je díky jednotnému rozhraní WebDriver?, podporovaného internetovými prohlížeči, možné používat bez spuštění jakékoli aplikace serveru (viz obrázek). Využití pokročilejších funkcí (například spuštění testů na jiném stroji), ale běžící instanci serveru nadále vyžaduje. Použití Selenium WebDriver je na úrovni zdrojového kódu velmi podobné Selenium RC. Přináší ale rozšíření některých možností a celkově je uživatelsky přívětivější.

to:

Selenium WebDriver je plnohodnotnou náhradou za starší Selenium RC. Nástroj je díky jednotnému rozhraní WebDriver, podporovaného internetovými prohlížeči, možné používat bez spuštění jakékoli aplikace serveru (viz obrázek). Využití pokročilejších funkcí (například spuštění testů na jiném stroji), ale běžící instanci serveru nadále vyžaduje. Použití Selenium WebDriver je na úrovni zdrojového kódu velmi podobné Selenium RC. Přináší ale rozšíření některých možností a celkově je uživatelsky přívětivější.

Added lines 47-49:

Selenium Grid

Selenium Grid je posledním zástupcem z množiny Selenium nástrojů. Používá se k paralelnímu běhu testů. Umožňuje také současné testování na několika různých platformách. Díky distribuci testů mezi více strojů se zkracuje doba potřebná k jejich vykonání.

22 May 2014, 19:22 by Jan Rada -
Changed lines 39-41 from:

Selenium WebDriver

Selenium WebDriver je plnohodnotnou náhradou za starší Selenium RC. Nástroj je díky jednotnému rozhraní WebDriver?, podporovaného internetovými prohlížeči, možné používat bez spuštění jakékoli aplikace serveru (viz obrázek). Využití pokročilejších funkcí (například spuštění testů na jiném stroji), ale běžící instanci serveru nadále vyžaduje. Použití Selenium WebDriver je na úrovni zdrojového kódu velmi podobné Selenium RC. Přináší ale rozšíření některých možností a celkově je uživatelsky přívětivější.

to:

Selenium WebDriver

Selenium WebDriver je plnohodnotnou náhradou za starší Selenium RC. Nástroj je díky jednotnému rozhraní WebDriver?, podporovaného internetovými prohlížeči, možné používat bez spuštění jakékoli aplikace serveru (viz obrázek). Využití pokročilejších funkcí (například spuštění testů na jiném stroji), ale běžící instanci serveru nadále vyžaduje. Použití Selenium WebDriver je na úrovni zdrojového kódu velmi podobné Selenium RC. Přináší ale rozšíření některých možností a celkově je uživatelsky přívětivější.

Changed lines 43-46 from:

Selenium WebDriver - zjednodušené schéma

Poznámka: V některých zdrojích je jako ekvivalentní označení pro Selenium WebDriver uváděno Selenium 2. Přesněji je ale Selenium 2 souhrnný název balíku, který zahrnuje starší Selenium RC (Selenium 1) i novější Selenium WebDriver?.

to:

Selenium WebDriver - zjednodušené schéma

Poznámka: V některých zdrojích je jako ekvivalentní označení pro Selenium WebDriver uváděno Selenium 2. Přesněji je ale Selenium 2 souhrnný název balíku, který zahrnuje starší Selenium RC (Selenium 1) i novější Selenium WebDriver.

22 May 2014, 19:20 by Jan Rada -
Changed lines 1-7 from:

Automatizované testování webové aplikace pomocí Selenium

Produkt Selenium slouží k tvorbě a spouštění automatizovaných integračních testů. Selenium testy provádějí automatické "proklikávání" aplikace. Spuštění testů je možné provést několika způsoby - viz dále.

Spouštění a vytváření testů přes Selenium IDE

Selenium IDE je doplněk do prohlížeče Firefox, který umožňuje zaznamenávat interakci uživatele s webovou aplikací. Takto zaznamenané posloupnosti událostí lze dále editovat a výsledný záznam slouží k automatickému testování bez nutnosti zásahu testera. Test může být spuštěn přímo v Selenium IDE nebo vyexportován do zvoleného programovacího jazyka (např. Java) a spuštěn některým ze způsobů níže.

to:

Následující text a některé obrázky jsou výtahem z mé diplomové práce ("Nástroje pro podporu testování", Jan Rada, 2014).


Selenium

Selenium je sada nástrojů určených primárně k automatizovanému testování webových aplikací. (Dovoluje však i jiné způsoby užití – například k automatizaci rutinních úkonů prováděných prostřednictvím webového rozhraní nějakého systému.) Pomocí Selenium lze dokonale simulovat chování uživatele, jeho interakci s webovou aplikací ("proklikávání") a testovat tak její funkcionalitu.

Selenium IDE

Selenium IDE je jedním z nástrojů sady Selenium. Je distribuováno ve formě doplňku do internetového prohlížeče Firefox. Nástroj je cílen zejména na skupinu uživatelů bez programátorských znalostí a zkušeností, kterým i tak dovoluje vytvářet poměrně komplexní testy. Jeho předností je grafické uživatelské rozhraní umožňující vytvářet testy prostřednictvím záznamu uživatelem prováděných akcí. Takto zaznamenané posloupnosti akcí lze dále editovat nebo rovnou beze změn spouštět. (Pro potřeby testování je nezbytné doplnit přinejmenším kroky provádějící ověřovací příkazy - assert/verify.)

Selenium IDE velmi dobře poslouží i zkušenějším uživatelům (programátorům) při seznamování s produktem Selenium. Tito uživatelé ale budou postupně narážet na různá omezení. Omezením je například absence řídících struktur použitelných v testech. Limitující může být také spuštění testů výhradně v internetovém prohlížeči Firefox. Pokročilejší způsoby použití Selenium testů jsou popsány níže.

Changed line 19 from:

Selenium IDE se do prohlížeče Firefox nainstaluje prostřednictvím odkazu umístěného přímo na stránkách produktu. Instalaci doplňku je nutné potvrdit. Nainstalovaný doplněk je poté spustitelný přes nabídku "Firefox" -> "Vývoj webu".

to:

Selenium IDE se do prohlížeče Firefox nainstaluje přes odkaz umístěný přímo na stránkách produktu. Instalaci doplňku je nutné potvrdit. Nainstalovaný doplněk je poté spustitelný skrze nabídku "Firefox" -> "Vývoj webu".

Deleted line 24:
  • možnost exportu zaznamenaných posloupností úkonů do různých formátů - např. Java => vyexportovaný kód testů pak stačí nakopírovat do projektu webové aplikace (využití knihovny selenium-java-client-driver)
Changed lines 26-46 from:
to:
  • možnost exportu vytvořených testů do podoby zdrojového kódu (využití viz níže)
  • omezené možnosti testování (absence řídících struktur, pouze internetový prohlížeč Firefox)

Selenium RC

Nástroj Selenium RC (někdy též označován jako Selenium 1) je oproti Selenium IDE určen pokročilejším uživatelům a jeho použití vyžaduje alespoň elementární programátorské znalosti. Základem je tzv. Remote Control Server. Jedná se o program napsaný v programovacím jazyku Java, který musí být spuštěn před vykonáváním testů. RC Server zajišťuje vytvoření okna prohlížeče, interpretuje a spouští Selenium příkazy (tzv. „Selenese“) a figuruje jako prostředník mezi internetovým prohlížečem a testovanou aplikací. Druhou část Selenium RC tvoří RC Client, což je knihovna poskytující rozhraní mezi použitým programovacím jazykem (ve kterém jsou s použitím knihovny testy napsány) a RC Serverem. Zjednodušené schéma je na obrázku.

Selenium RC - zjednodušené schéma

Hlavní výhodou pro zkušené programátory je možnost psát scénáře testů přímo v oblíbeném programovacím jazyce (což je obvykle rychlejší než záznam a editace kroků v Selenium IDE). Díky tomu lze testy obohatit o libovolnou logiku realizovanou standardními konstrukcemi daného programovacího jazyka včetně řídících struktur nebo o použití dalších knihoven.

Selenium RC je na oficiálních stránkách označeno jako „deprecated“ (zastaralé) a ačkoli je do jisté míry stále podporováno, tak není příliš vhodné jej používat. Důvodem je zejména horší kompatibilita s novějšími verzemi internetových prohlížečů a nestabilní chování testů.

Selenium WebDriver

Selenium WebDriver je plnohodnotnou náhradou za starší Selenium RC. Nástroj je díky jednotnému rozhraní WebDriver?, podporovaného internetovými prohlížeči, možné používat bez spuštění jakékoli aplikace serveru (viz obrázek). Využití pokročilejších funkcí (například spuštění testů na jiném stroji), ale běžící instanci serveru nadále vyžaduje. Použití Selenium WebDriver je na úrovni zdrojového kódu velmi podobné Selenium RC. Přináší ale rozšíření některých možností a celkově je uživatelsky přívětivější.

Selenium WebDriver - zjednodušené schéma

Poznámka: V některých zdrojích je jako ekvivalentní označení pro Selenium WebDriver uváděno Selenium 2. Přesněji je ale Selenium 2 souhrnný název balíku, který zahrnuje starší Selenium RC (Selenium 1) i novější Selenium WebDriver?.

02 June 2013, 22:23 by JR -
Changed lines 27-28 from:

Použitý Selenium server integrovaný v selenium-maven-pluginu je obvykle starší verze (než aktuální verze Selenium serveru), což může způsobovat problémy při pokusu o vykonání testů v novějších verzích internetových prohlížečů. V případě problémů s vykonáním testů je proto vhodné zkusit změnit internetový prohlížeč, ve kterém mají být testy vykonány (viz Poznámky ke spouštění Selenium testů), nebo nainstalovat starší verzi některého prohlížeče.

to:

Použitý Selenium server integrovaný v selenium-maven-pluginu je obvykle starší verze (než aktuální verze Selenium serveru), což může způsobovat problémy při pokusu o vykonání testů v novějších verzích internetových prohlížečů. V případě problémů s vykonáním testů je proto vhodné zkusit změnit internetový prohlížeč, ve kterém mají být testy vykonány (viz Poznámky ke spouštění Selenium testů), nebo nainstalovat starší verzi některého prohlížeče.

02 June 2013, 22:23 by JR -
Changed lines 27-28 from:

Použitý Selenium server integrovaný v selenium-maven-pluginu je obvykle starší verze (než aktuální verze Selenium serveru), což může způsobovat problémy při pokusu o vykonání testů v novějších verzích internetových prohlížečů. V případě problémů s vykonáním testů je proto vhodné zkusit změnit internetový prohlížeč, ve kterém mají být testy vykonány (viz Poznámky ke spouštění Selenium testů), nebo nainstalovat starší verzi některého prohlížeče.

to:

Použitý Selenium server integrovaný v selenium-maven-pluginu je obvykle starší verze (než aktuální verze Selenium serveru), což může způsobovat problémy při pokusu o vykonání testů v novějších verzích internetových prohlížečů. V případě problémů s vykonáním testů je proto vhodné zkusit změnit internetový prohlížeč, ve kterém mají být testy vykonány (viz Poznámky ke spouštění Selenium testů), nebo nainstalovat starší verzi některého prohlížeče.

Changed lines 68-69 from:
  • testy mají mezi sebou závislosti, takže v případě jejich jednotlivého spuštění nebo spuštění v jiném pořadí než je uvedeno v SeleniumSuitTest.java, může dojít k selhání (např. test vložení slova neproběhne v pořádku, pokud po jeho předchozím spuštění nebyl vykonán i test smazání slova a slovo tudíž zůstalo v databázi)
to:
  • testy mají mezi sebou závislosti, takže v případě jejich jednotlivého spuštění nebo spuštění v jiném pořadí než je uvedeno v SeleniumSuitTest.java, může dojít k selhání (např. test vložení již existujícího slova neproběhne v pořádku, pokud před jeho provedením nebyl vykonán test vložení slova)
  • Test AddAbbrForWordTest.java není opakovatelný, jelikož po předchozím spuštění celé sady testů v databázi zůstane testovací zkratka a výpis, který je v testu porovnáván, má proto při opakovaném spuštění jinou podobu (pozn. ponechání zkratky v databázi i při smazání odpovídajícího slova je správné chování aplikace - zkratka totiž může být přiřazena i k jinému slovu a neměla by proto být se slovem mazána); před opakovaným spuštěním testů je proto vhodné z databáze testovací zkratku manuálně odstranit (přes pgAdmin)
02 June 2013, 17:02 by JR -
Changed lines 68-70 from:
to:
  • testy mají mezi sebou závislosti, takže v případě jejich jednotlivého spuštění nebo spuštění v jiném pořadí než je uvedeno v SeleniumSuitTest.java, může dojít k selhání (např. test vložení slova neproběhne v pořádku, pokud po jeho předchozím spuštění nebyl vykonán i test smazání slova a slovo tudíž zůstalo v databázi)
  • testy by bylo vhodné z důvodu snadnější orientace rozdělit do více balíků a sad testů
02 June 2013, 16:13 by JR -
Changed lines 62-63 from:
  • V abstraktní třídě SeleniumTestCase.java je definováno spouštění testů (volba internetového prihlížeče).
to:
  • V abstraktní třídě SeleniumTestCase.java je definováno spouštění testů (možnost volby internetového prihlížeče).
02 June 2013, 16:08 by JR -
Changed lines 38-39 from:

(Spuštění samotného Selenium serveru bez provedení testů: $ mvn selenium:start-server. Kompletní sada testů je vždy provedena i při zadání: $ mvn deploy .)

to:

(Spuštění samotného Selenium serveru bez provedení testů: $ mvn selenium:start-server. Kompletní sada testů je vždy provedena i při zadání: $ mvn deploy.)

02 June 2013, 16:07 by JR -
Changed lines 32-33 from:
  • $ mvn site je vygenerována stránka s technickými údaji aplikace
to:
  • $ mvn site - je vygenerována stránka s technickými údaji aplikace
02 June 2013, 16:06 by JR -
Changed lines 34-35 from:

V pom.xml je možné určit, jaké testy (sady testů) mají být při zadání příkazu $ mvn integration-test spouštěny a jaké ignorovány (include/exclude).

to:

V pom.xml je možné určit, jaké testy (sady testů) mají být při zadání příkazu $ mvn integration-test spouštěny a jaké ignorovány (include/exclude).

Changed line 60 from:
  • Testy se vytvářejí nebo editují s využitím pluginu Selenium IDE pro Firefox. Zdrojové soubory s testy jsou ukládány ve výchozím formátu (tzn. html) do složky src/test/resources/selenium_src/. Finální podoba testu je vždy vyexportována do Java kódu a vložena do odpovídající třídy v src/test/java/cz/zcu/kiv/spot/selenium/. V případě přímé editace Java kódu testu je nezbytné provést tyto změny i v odpovídajícím zdrojovém html souboru pro Selenium IDE!
to:
  • Testy se vytvářejí nebo editují s využitím pluginu Selenium IDE pro Firefox. Zdrojové soubory s testy jsou ukládány ve výchozím formátu (tzn. html) do složky ${basedir}/src/test/resources/selenium_src/. Finální podoba testu je vždy vyexportována do Java kódu a vložena do odpovídající třídy v ${basedir}/src/test/java/cz/zcu/kiv/spot/selenium/. V případě přímé editace Java kódu testu je nezbytné provést tyto změny i v odpovídajícím zdrojovém html souboru pro Selenium IDE!
02 June 2013, 16:03 by JR -
Changed lines 25-26 from:

Při tomto příkazu se nejprve automaticky sestaví webová aplikace. Dále se sestavená webová aplikace spustí s využitím kontejneru Jetty ( maven-jetty-plugin). Následně je provedeno spuštění Selenium serveru (integrován v selenium-maven-plugin) a na závěr dojde k samotnému vykonání testů.

to:

Při tomto příkazu se nejprve automaticky sestaví webová aplikace. Dále se sestavená webová aplikace spustí s využitím kontejneru Jetty (maven-jetty-plugin). Následně je provedeno spuštění Selenium serveru (integrován v selenium-maven-plugin) a na závěr dojde k samotnému vykonání testů.

02 June 2013, 16:01 by JR -
Changed lines 6-7 from:

Selenium IDE je doplněk do prohlížeče Firefox, který umožňuje zaznamenávat interakci uživatele s webovou aplikací. Takto zaznamenané posloupnosti událostí lze dále editovat a výsledný záznam slouží k automatickému testování bez nutnosti zásahu testera. Test může být spuštěn přímo v Selenium IDE nebo vyexportován do zvoleného programovacího jazyka (Java, Python, Perl, Ruby, Php, C#).

to:

Selenium IDE je doplněk do prohlížeče Firefox, který umožňuje zaznamenávat interakci uživatele s webovou aplikací. Takto zaznamenané posloupnosti událostí lze dále editovat a výsledný záznam slouží k automatickému testování bez nutnosti zásahu testera. Test může být spuštěn přímo v Selenium IDE nebo vyexportován do zvoleného programovacího jazyka (např. Java) a spuštěn některým ze způsobů níže.

02 June 2013, 15:59 by JR -
Changed lines 3-4 from:

Produkt Selenium slouží k tvorbě a spouštění automatizovaných integračních testů. Selenium testy provádějí automatické "proklikávání" aplikace. Ke spuštění testů je možné využít několika způsobů - viz dále.

to:

Produkt Selenium slouží k tvorbě a spouštění automatizovaných integračních testů. Selenium testy provádějí automatické "proklikávání" aplikace. Spuštění testů je možné provést několika způsoby - viz dále.

02 June 2013, 15:47 by JR -
Changed line 65 from:
  • spuštění testů přes Maven na OS Windows s aktuálními verzemi standardních internetových prohlížečů (Firefox, Opera, Internet Explorer) je nefunkční a je nutné používat spouštění testů přímo z Eclipse IDE (STS) - osvědčilo se použití Selenium serveru verze 2.32.0 a prohlížeče Firefox verze 21.0, problém se spouštěním testů přes Maven by mohl být v budoucnu vyřešen přechodem na testy Selenium 2.0 a použitím novějších verzí knihoven
to:
  • spuštění testů přes Maven na OS Windows s aktuálními verzemi standardních internetových prohlížečů (Firefox, Opera, Internet Explorer) je nefunkční (z důvodu nekompatibility použitých knihoven a aktuálních verzí prohlížečů) a je nutné používat spouštění testů přímo z Eclipse IDE (STS) - osvědčilo se použití Selenium serveru verze 2.32.0 a prohlížeče Firefox verze 21.0, problém se spouštěním testů přes Maven by mohl být v budoucnu vyřešen přechodem na testy Selenium 2.0 a použitím novějších verzí knihoven
02 June 2013, 15:38 by JR -
Added lines 50-51:

02 June 2013, 15:37 by JR -
Changed line 62 from:

Problémy a nedostatky současných (1.6.2013) Selenium testů

to:

Problémy a nedostatky současných (1.6.2013) Selenium testů:

Added lines 72-73:
  • http://vavru.cz/testovani-aplikaci/selenium-mocna-zbran-na-akceptacni-testy/
Deleted line 74:
  • http://docs.seleniumhq.org/download/maven.jsp
Added lines 76-78:
  • http://docs.seleniumhq.org/download/maven.jsp
  • http://mojo.codehaus.org/selenium-maven-plugin/usage.html
Changed lines 80-84 from:
  • http://mojo.codehaus.org/selenium-maven-plugin/usage.html
  • http://www.vineetmanohar.com/2007/06/maven-selenium/ kap. 3.8
  • http://vavru.cz/testovani-aplikaci/selenium-mocna-zbran-na-akceptacni-testy/
to:
  • http://www.vineetmanohar.com/2007/06/maven-selenium/ (kapitola 3.8)
02 June 2013, 15:32 by JR -
02 June 2013, 15:31 by JR -
Changed lines 3-4 from:

Produkt Selenium slouží k tvorbě a spouštění automatizovaných integračních testů. Selenium testy provádějí automatické "proklikávání" aplikace.

to:

Produkt Selenium slouží k tvorbě a spouštění automatizovaných integračních testů. Selenium testy provádějí automatické "proklikávání" aplikace. Ke spuštění testů je možné využít několika způsobů - viz dále.

Changed lines 6-7 from:

Selenium IDE je doplněk do prohlížeče Firefox, který umožňuje zaznamenávat interakci uživatele s webovou aplikací. Takto nahrané posloupnosti událostí lze dále editovat a výsledný záznam slouží k automatickému testování bez nutnosti zásahu testera. Test může být spuštěn přímo v Selenium IDE nebo vyexportován do zvoleného programovacího jazyka (Java, Python, Perl, Ruby, Php, C#).

to:

Selenium IDE je doplněk do prohlížeče Firefox, který umožňuje zaznamenávat interakci uživatele s webovou aplikací. Takto zaznamenané posloupnosti událostí lze dále editovat a výsledný záznam slouží k automatickému testování bez nutnosti zásahu testera. Test může být spuštěn přímo v Selenium IDE nebo vyexportován do zvoleného programovacího jazyka (Java, Python, Perl, Ruby, Php, C#).

Changed lines 44-45 from:
  1. v Eclipse vybrat požadovaný test/testy a spustit přes Run As -> JUnit Test
to:
  1. v Eclipse vybrat požadovaný test (sadu testů) a spustit přes Run As -> JUnit Test
Changed line 53 from:
  • Změna internetového prohlížeče pro vykonání testů se provádí ve třídě SeleniumTestCase.java (z balíku cz.zcu.kiv.spot.selenium), kde je požadovaný prohlížeč zvolen prostřednictvím odpovídajícího klíčového slova. V případě nestandardní cesty k instalaci vybraného prohlížeče je možno přesně specifikovat i cestu (viz zakomentované varianty).
to:
  • Změna internetového prohlížeče pro vykonání testů se provádí ve třídě SeleniumTestCase.java, kde je požadovaný prohlížeč zvolen prostřednictvím odpovídajícího klíčového slova. V případě nestandardní cesty k instalaci vybraného prohlížeče je možno přesně specifikovat i cestu (viz zakomentované varianty).
Changed lines 55-76 from:
  • Testování je poměrně náročné a chyba při vykonání testu může být způsobena například pomalou odezvou serveru - nemusí tedy vždy znamenat chybu v aplikaci

Selenium testy SPOTU

Testy se nacházejí v balíku cz.zcu.kiv.spot.selenium a byly vytvořeny s využitím Selenium IDE pro Firefox a následně vyexportovány do podoby Java kódu, který byl nakopírován do tříd v projektu. V abstraktní třídě SeleniumTestCase.java je definováno spouštění testů. Třída SeleniumSuitTest představuje sadu testů (jednotlivé testy jsou do sady přiřazeny s využitím anotace).

Současné (25.5.2013) Selenium testy jsou často zaměřeny jen na optimistické scénáře (např. uživatel zadal veškeré vstupy do formuláře správně) a nelze je proto považovat za kompletní testy aplikace. Před dalším rozšiřováním Selenium testů by bylo vhodné prozkoumat následující:

  • Zvážit, zada má význam export testů ze Selenium IDE pro Firefox do zdrojového kódu Javy. Bylo by možné testy ukládat přímo v html (defaultní formát Selenium IDE) do určité složky ve struktuře projektu. Výhodou tohoto řešení by byla jednodušší modifikace existujících testů přes Selenium IDE. S tím souvisí i možnost testy v Selenium IDE přímo spouštět. A díky doplňku File Logging (Selenium IDE) lze zařídit i logování do souboru. Automatické spouštění testů (uložených jako html) přes Maven by mělo být s využitím selenium-maven-plugin možné i v tomto případě - viz kapitola 3.8 zde:http://www.vineetmanohar.com/2007/06/maven-selenium/. Asi jedinou nevýhodou by byla nemožnost spouštění testů přímo v Eclipse IDE (STS), což vzhledem ke "komplikovanosti" (ruční spuštění aplikace a Selenium serveru) stejně není často používaná varianta. Navíc by byl tento způsob spouštění nahrazen možností testy spustit přímo v Selenium IDE.
  • Zjistit jaké výhody by přinesla migrace testů na "Selenium 2" a případně migraci provést.

Výhody Selenium testů

  • test je komplexní a postihuje téměř veškeré komponenty systému
  • není potřebná dokonalá znalost aplikace
  • test lze spustit najednou pro více systémů a prohlížečů
  • intuitivní práce s IDE rozhraním

Nevýhody Selenium testů

  • psaní testů je zdlouhavé a při změně testované součásti se musí změnit i test
  • některé komponenty nelze vůbec otestovat
  • chybný výsledek testu nemusí znamenat chybu aplikace (např. pomalá odezva webového serveru)
to:
  • Testování je poměrně náročné a chyba při vykonání testu může být způsobena například jen pomalou odezvou serveru - nemusí tedy vždy znamenat chybu v aplikaci

Pravidla pro vytváření a editaci Selenium testů:

  • Testy se vytvářejí nebo editují s využitím pluginu Selenium IDE pro Firefox. Zdrojové soubory s testy jsou ukládány ve výchozím formátu (tzn. html) do složky src/test/resources/selenium_src/. Finální podoba testu je vždy vyexportována do Java kódu a vložena do odpovídající třídy v src/test/java/cz/zcu/kiv/spot/selenium/. V případě přímé editace Java kódu testu je nezbytné provést tyto změny i v odpovídajícím zdrojovém html souboru pro Selenium IDE!
  • Třída SeleniumSuitTest.java představuje sadu testů (jednotlivé testy jsou do sady přiřazeny s využitím anotace). Testy uvedené v sadě je možné spouštět naráz.
  • V abstraktní třídě SeleniumTestCase.java je definováno spouštění testů (volba internetového prihlížeče).

Problémy a nedostatky současných (1.6.2013) Selenium testů

  • spuštění testů přes Maven na OS Windows s aktuálními verzemi standardních internetových prohlížečů (Firefox, Opera, Internet Explorer) je nefunkční a je nutné používat spouštění testů přímo z Eclipse IDE (STS) - osvědčilo se použití Selenium serveru verze 2.32.0 a prohlížeče Firefox verze 21.0, problém se spouštěním testů přes Maven by mohl být v budoucnu vyřešen přechodem na testy Selenium 2.0 a použitím novějších verzí knihoven
  • testy jsou často zaměřeny jen na optimistické scénáře (např. uživatel zadal veškeré vstupy do formuláře správně)
  • testy zdaleka nepokrývají celou aplikaci, ale jen základní funkce
Changed lines 77-78 from:
  • http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html
to:
  • http://www.vineetmanohar.com/2007/06/maven-selenium/ kap. 3.8
02 June 2013, 14:41 by JR -
Changed lines 34-35 from:

V pom.xml je možné určit, jaké testy (sady testů) mají být při zadání příkazu $ mvn integration-test spouštěny a jaké ignorovány (include/exclude).

to:

V pom.xml je možné určit, jaké testy (sady testů) mají být při zadání příkazu $ mvn integration-test spouštěny a jaké ignorovány (include/exclude).

02 June 2013, 14:40 by JR -
Changed lines 27-28 from:

Použitý Selenium server integrovaný v selenium-maven-pluginu je obvykle starší verze (než aktuální Selenium server), což může způsobovat problémy při pokusu o vykonání testů v novějších verzích internetových prohlížečů. V případě problémů s vykonáním testů je proto vhodné zkusit změnit internetový prohlížeč, ve kterém mají být testy vykonány (viz Poznámky ke spouštění Selenium testů), nebo nainstalovat starší verzi některého prohlížeče.

to:

Použitý Selenium server integrovaný v selenium-maven-pluginu je obvykle starší verze (než aktuální verze Selenium serveru), což může způsobovat problémy při pokusu o vykonání testů v novějších verzích internetových prohlížečů. V případě problémů s vykonáním testů je proto vhodné zkusit změnit internetový prohlížeč, ve kterém mají být testy vykonány (viz Poznámky ke spouštění Selenium testů), nebo nainstalovat starší verzi některého prohlížeče.

Changed lines 52-55 from:
  • Během provádění testů vyžadujících přihlášeného uživatele, je pro přihlášení použitý speciálně vytvořený uživatelský účet, který je již v dumpu databáze
  • Při spouštění Selenium testů na OS GNU Linux je použití alternativního internetového prohlížeče nezbytné. V případě problémů se spuštěním testů je pak nutné nainstalovat a použít některou ze starších verzí zvoleného alternativního internetového prohlížeče.
  • Změna internetového prohlížeče pro vykonání testů se provádí ve třídě SeleniumTestCase.java, kde je požadovaný prohlížeč zvolen prostřednictvím odpovídajícího klíčového slova. V případě nestandardní cesty k instalaci vybraného prohlížeče je možno přesně specifikovat i cestu (viz zakomentované varianty).
  • Pokud při spuštění Selenium testů není nalezen zvolený internetový prohlížeč, je použitý prohlížeč, který Selenium považuje pro daný systém jako defaultní (pro Windows - Internet Explorer, jinak - Firefox).
to:
  • Během provádění testů vyžadujících přihlášeného uživatele, jsou pro přihlášení používány speciálně vytvořené uživatelské účty (testuser a testadmin), které jsou již v dumpu databáze a nemusí se proto vytvářet
  • Změna internetového prohlížeče pro vykonání testů se provádí ve třídě SeleniumTestCase.java (z balíku cz.zcu.kiv.spot.selenium), kde je požadovaný prohlížeč zvolen prostřednictvím odpovídajícího klíčového slova. V případě nestandardní cesty k instalaci vybraného prohlížeče je možno přesně specifikovat i cestu (viz zakomentované varianty).
  • Pokud při spuštění Selenium testů není nalezen zvolený internetový prohlížeč, je použitý ten prohlížeč, který Selenium považuje pro daný systém jako defaultní (pro Windows - Internet Explorer, jinak - Firefox).
Changed lines 66-80 from:

Výhody a nevýhody Selenium testů

+ test je komplexní a postihu téměř veškeré komponeny systému

+ není potřebná dokonalá znalost aplikace

+ test lze spustit najednou pro více systémů a prohlížečů

+ intuitivní práce s IDE rozhraním

- psaní testů je zdlouhavé a při změně testované součásti se musí změnit i test

- některé komponenty nelze vůbec otestovat

- chybný výsledek testu nutně neznamená chybu aplikace

to:

Výhody Selenium testů

  • test je komplexní a postihuje téměř veškeré komponenty systému
  • není potřebná dokonalá znalost aplikace
  • test lze spustit najednou pro více systémů a prohlížečů
  • intuitivní práce s IDE rozhraním

Nevýhody Selenium testů

  • psaní testů je zdlouhavé a při změně testované součásti se musí změnit i test
  • některé komponenty nelze vůbec otestovat
  • chybný výsledek testu nemusí znamenat chybu aplikace (např. pomalá odezva webového serveru)
Changed lines 97-98 from:
  • Výborný addon Web Developer pro webové vývojáře určený pro Mozilla Firefox stahnutelný na https://addons.mozilla.org/en-US/firefox/addon/60
to:
  • Výborný addon Web Developer pro webové vývojáře určený pro Firefox dostupný z https://addons.mozilla.org/en-US/firefox/addon/60.
02 June 2013, 14:25 by JR -
Deleted line 12:
Deleted line 13:
Deleted lines 28-29:

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém mají být testy vykonány.

Added lines 36-37:

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém mají být testy vykonány.

Changed lines 48-49 from:

Stejně jako v případě spouštění testů přes Maven je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá a v systému se nacházel webový prohlížeč.

to:

Stejně jako v případě spouštění testů přes Maven je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá a v systému se nacházel zvolený internetový prohlížeč.

02 June 2013, 14:22 by JR -
Changed lines 24-25 from:

Knihovny potřebné pro spuštění Selenium testů jsou do aplikace SPOT staženy pomocí Mavenu a konfigurovány v pom.xml. Spuštění testů se provádí příkazem:

to:

Knihovny potřebné pro spuštění Selenium testů jsou do aplikace SPOT staženy pomocí Mavenu a konfigurovány v pom.xml. Spuštění testů se provádí příkazem:

Changed lines 29-32 from:

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém jsou testy vykonány. (Volba prohlížeče se provádí ve třídě SeleniumTestCase.java - viz Poznámky ke spouštění Selenium testů).

Použitý integrovaný Selenium server v selenium-maven-pluginu je starší verze, což může způsobovat problémy například při pokusu o vykonání testů v některých novějších verzích internetových prohlížečů. V případě problémů s vykonáním testů je proto vhodné zkusit změnit internetový prohlížeč, ve kterém mají být testy vykonány, nebo nainstalovat starší verzi některého prohlížeče.

to:

Použitý Selenium server integrovaný v selenium-maven-pluginu je obvykle starší verze (než aktuální Selenium server), což může způsobovat problémy při pokusu o vykonání testů v novějších verzích internetových prohlížečů. V případě problémů s vykonáním testů je proto vhodné zkusit změnit internetový prohlížeč, ve kterém mají být testy vykonány (viz Poznámky ke spouštění Selenium testů), nebo nainstalovat starší verzi některého prohlížeče.

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém mají být testy vykonány.

Changed line 34 from:

Průběh testování je zaznamenáván do xml soubrů v adresáři ${basedir}/target/surefire-reports. Tyto data lze exportovat do přehledné webové stránky, kreá bude umístěna v ${basedir}/target/site.

to:

Průběh testování je zaznamenáván do xml soubrů v adresáři ${basedir}/target/surefire-reports. Tato data lze exportovat do přehledné webové stránky, která bude umístěna v ${basedir}/target/site.

Changed lines 38-41 from:

V pom.xml je možné určit, jaké testy mají být při zadání příkazu $ mvn integration-test spouštěny a jaké ignorovány (include/exclude).

(Spuštění pouze Selenium serveru se provede příkazem $ mvn selenium:start-server, kompletní sada testů je proveda i po spuštění příkazu: $ mvn deploy )

to:

V pom.xml je možné určit, jaké testy (sady testů) mají být při zadání příkazu $ mvn integration-test spouštěny a jaké ignorovány (include/exclude).

(Spuštění samotného Selenium serveru bez provedení testů: $ mvn selenium:start-server. Kompletní sada testů je vždy provedena i při zadání: $ mvn deploy .)

Changed lines 48-49 from:

Stejně jako v případě spouštění testů přes maven je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá a v systému se nacházel webový prohlížeč.

to:

Stejně jako v případě spouštění testů přes Maven je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá a v systému se nacházel webový prohlížeč.

02 June 2013, 14:02 by JR -
Changed lines 30-31 from:

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém jsou testy vykonány. (Volba prohlížeče se provádí ve třídě SeleniumTestCase.java - viz Poznámky ke spouštění Selenium testů).

to:

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém jsou testy vykonány. (Volba prohlížeče se provádí ve třídě SeleniumTestCase.java - viz Poznámky ke spouštění Selenium testů).

Changed line 51 from:

Poznámky ke spouštění Selenium testů:

to:

Poznámky ke spouštění Selenium testů:

02 June 2013, 13:52 by JR -
Changed lines 30-31 from:

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém jsou testy vykonány. (Volba prohlížeče se provádí ve třídě SeleniumTestCase.java - viz Poznámky ke spouštění Selenium testů).

to:

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém jsou testy vykonány. (Volba prohlížeče se provádí ve třídě SeleniumTestCase.java - viz Poznámky ke spouštění Selenium testů).

Changed line 51 from:

Poznámky ke spouštění Selenium testů: {{anchor|poznamky}}

to:

Poznámky ke spouštění Selenium testů:

02 June 2013, 13:48 by JR -
Changed lines 30-31 from:

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém jsou testy vykonány. (Volba prohlížeče se provádí ve třídě SeleniumTestCase.java - viz #Poznámky ke spouštění Selenium testů).

to:

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém jsou testy vykonány. (Volba prohlížeče se provádí ve třídě SeleniumTestCase.java - viz Poznámky ke spouštění Selenium testů).

Changed line 51 from:

Poznámky ke spouštění Selenium testů:

to:

Poznámky ke spouštění Selenium testů: {{anchor|poznamky}}

02 June 2013, 13:42 by JR -
Changed lines 3-4 from:

Produkt Selenium slouží k tvorbě a spouštění automatizovaných integračních testů. Selenium testy provádějí automatizované "proklikávání" aplikace.

to:

Produkt Selenium slouží k tvorbě a spouštění automatizovaných integračních testů. Selenium testy provádějí automatické "proklikávání" aplikace.

Changed lines 6-7 from:

Selenium IDE je doplněk do prohlížeče Firefox, který umožňuje zaznamenávat interakci uživatele s webovou aplikací. Takto nahrané posloupnosti událostí lze dále editovat a výsledný záznam slouží k automatickému testování bez nutnosti zásahu testera. Test může být spuštěn přímo v Selenium IDE nebo vyexportován ve zvoleném programovacím jazyce (Java, Python, Perl, Ruby, Php, C#).

to:

Selenium IDE je doplněk do prohlížeče Firefox, který umožňuje zaznamenávat interakci uživatele s webovou aplikací. Takto nahrané posloupnosti událostí lze dále editovat a výsledný záznam slouží k automatickému testování bez nutnosti zásahu testera. Test může být spuštěn přímo v Selenium IDE nebo vyexportován do zvoleného programovacího jazyka (Java, Python, Perl, Ruby, Php, C#).

Changed lines 16-17 from:

Pro Selenium IDE existuje velké množství dalších rozšíření (např. File Logging (Selenium IDE)) umožňující zápis výsledků testů do logovacího souboru).

to:

Pro Selenium IDE existuje velké množství dalších rozšíření (např. File Logging (Selenium IDE) umožňující zápis výsledků testů do logovacího souboru).

Changed line 19 from:
  • rychlá tvorba testů díky možnosti záznamu prováděných úkonů
to:
  • rychlá tvorba testů díky možnosti záznamu uživatelem prováděných úkonů
Changed lines 30-31 from:

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém jsou testy vykonány. Volba prohlížeče se provádí ve třídě SeleniumTestCase.java (viz "Poznámky ke spouštění Selenium testů").

to:

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém jsou testy vykonány. (Volba prohlížeče se provádí ve třídě SeleniumTestCase.java - viz #Poznámky ke spouštění Selenium testů).

02 June 2013, 13:31 by JR -
Changed lines 8-10 from:

[] Hlavní okno Selenium IDE

to:

Selenium IDE

02 June 2013, 13:31 by JR -
Changed line 8 from:
to:

[]

02 June 2013, 13:30 by JR -
Changed line 8 from:
?
to:
02 June 2013, 12:02 by JR -
Changed lines 3-9 from:

Produkt Selenium slouží pro tvorbu a spouštění automatických integračních testů.

Firefox plugin Selenium IDE

Používá se jako doplněk do prohlížeče Firefox.

Selenium IDE je integrované testovací prostředí, které zaznamenává interakci uživatele s webovou aplikací. Takto nahrané posloupnosti událostí je možné dále editovat a výsledný záznam slouží k automatickému testování bez nutnosti zásahu testera. Test může být v tomto IDE spuštěn, nebo vyexportován ve zvoleném programovacím jazyce (Java, Python, Perl, Ruby, Php, C#). Výstupem je i přehledný log prováděných testů.

to:

Produkt Selenium slouží k tvorbě a spouštění automatizovaných integračních testů. Selenium testy provádějí automatizované "proklikávání" aplikace.

Spouštění a vytváření testů přes Selenium IDE

Selenium IDE je doplněk do prohlížeče Firefox, který umožňuje zaznamenávat interakci uživatele s webovou aplikací. Takto nahrané posloupnosti událostí lze dále editovat a výsledný záznam slouží k automatickému testování bez nutnosti zásahu testera. Test může být spuštěn přímo v Selenium IDE nebo vyexportován ve zvoleném programovacím jazyce (Java, Python, Perl, Ruby, Php, C#).

Changed lines 12-13 from:

Selenium IDE se do prohlížeče Firefox nainstaluje prostřednictvím odkazu umístěného přímo na stránkách produktu. Instalaci doplňkuje nutné potvrdit. Nainstalovaný doplněk je poté spustitelný přes nabídku "Firefox" -> "Vývoj webu".

to:

Selenium IDE se do prohlížeče Firefox nainstaluje prostřednictvím odkazu umístěného přímo na stránkách produktu. Instalaci doplňku je nutné potvrdit. Nainstalovaný doplněk je poté spustitelný přes nabídku "Firefox" -> "Vývoj webu".

Changed line 20 from:
  • možnost exportu zaznamenaných posloupností úkonů do různých formátů - např. Java => vyexportovaný kód testů pak stačí nakopírovat do projektu (využití knihovny selenium-java)
to:
  • možnost exportu zaznamenaných posloupností úkonů do různých formátů - např. Java => vyexportovaný kód testů pak stačí nakopírovat do projektu webové aplikace (využití knihovny selenium-java-client-driver)
Changed lines 23-39 from:

Selenium Core

Selenium Core je testovací nástroj, který běžící přímo v browseru. Slouží pro spouštění testů vytvořených pomocí Selenium IDE.

Selenium Remote Control (RC)

Selenium Remote Control (RC) je nástroj, který umožňuje spouštět testy uživatelského rozhraní (napsané v libovolném programovacím jazyce) v běžném prohlížeči.

  1. spustí se server Selenium(RC), který funguje jako http proxy mezi prohlížečm a dotazy z aplikace
  2. použije se testovací knihovna
  3. RC server natáhne selenium core do prohlížeče

Tento nástroj dokáže spolupracovat s více operačnímy systémy a browsery.

Selenium RC a aplikace SPOT (selenium-maven-plugin + maven-surefire-plugin + maven-jetty-plugin)

Knihovny nutné pro Selenium testy jsou do aplikace SPOT staženy pomocí mavenu a konfigurovány v pom.xml.

Testování se provádí příkazem:

to:

Spouštění testů přes Maven (selenium-maven-plugin + maven-surefire-plugin + maven-jetty-plugin)

Knihovny potřebné pro spuštění Selenium testů jsou do aplikace SPOT staženy pomocí Mavenu a konfigurovány v pom.xml. Spuštění testů se provádí příkazem:

Changed lines 28-31 from:

Při tomto příkazu se nejprve automaticky sestaví webová aplikace. Dále se sestavená webová aplikace spustí s využitím kontejneru jetty ( maven-jetty-plugin). Následně je provedeno spuštění Selenium serveru (integrován v selenium-maven-plugin) a na závěr dojde k samotnému vykonání testů.

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet webový prohlížeč.

to:

Při tomto příkazu se nejprve automaticky sestaví webová aplikace. Dále se sestavená webová aplikace spustí s využitím kontejneru Jetty ( maven-jetty-plugin). Následně je provedeno spuštění Selenium serveru (integrován v selenium-maven-plugin) a na závěr dojde k samotnému vykonání testů.

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet (běžný) internetový prohlížeč, ve kterém jsou testy vykonány. Volba prohlížeče se provádí ve třídě SeleniumTestCase.java (viz "Poznámky ke spouštění Selenium testů").

31 May 2013, 01:00 by JR -
Deleted line 69:
  • Jako nejvhodnější pro spouštění Selenium testů se zdá být Internet Explorer, jelikož v tomto případě většinou nevznikají problémy při použítí starší verze Selenium serveru (integrovaný Selenium Server v selenium-maven-plugin) a nové verze Internet Exploreru.
Changed line 80 from:
  • Zvážit, zada má význam export testů ze Selenium IDE pro Firefox do zdrojového kódu Javy. Bylo by možné testy ukládat přímo v html (defaultní formát Selenium IDE) do určité složky ve struktuře projektu. Výhodou tohoto řešení by byla jednodušší modifikace existujících testů přes Selenium IDE. S tím souvisí i možnost testy v Selenium IDE přímo spouštět. A díky doplňku File Logging (Selenium IDE) lze zařídit i logování do souboru. Automatické spouštění testů (uložených jako html) přes maven by mělo být s využitím selenium-maven-plugin možné i v tomto případě - viz kapitola 3.8 zde:http://www.vineetmanohar.com/2007/06/maven-selenium/. Asi jedinou nevýhodou by byla nemožnost spouštění testů přímo v Eclipse IDE (STS), což vzhledem ke "komplikovanosti" (ruční spuštění aplikace a Selenium serveru) stejně není často používaná varianta. Navíc by byl tento způsob spouštění nahrazen možností testy spustit přímo v Selenium IDE.
to:
  • Zvážit, zada má význam export testů ze Selenium IDE pro Firefox do zdrojového kódu Javy. Bylo by možné testy ukládat přímo v html (defaultní formát Selenium IDE) do určité složky ve struktuře projektu. Výhodou tohoto řešení by byla jednodušší modifikace existujících testů přes Selenium IDE. S tím souvisí i možnost testy v Selenium IDE přímo spouštět. A díky doplňku File Logging (Selenium IDE) lze zařídit i logování do souboru. Automatické spouštění testů (uložených jako html) přes Maven by mělo být s využitím selenium-maven-plugin možné i v tomto případě - viz kapitola 3.8 zde:http://www.vineetmanohar.com/2007/06/maven-selenium/. Asi jedinou nevýhodou by byla nemožnost spouštění testů přímo v Eclipse IDE (STS), což vzhledem ke "komplikovanosti" (ruční spuštění aplikace a Selenium serveru) stejně není často používaná varianta. Navíc by byl tento způsob spouštění nahrazen možností testy spustit přímo v Selenium IDE.
25 May 2013, 11:55 by JR -
Changed line 84 from:

Výhody a nevýhody

to:

Výhody a nevýhody Selenium testů

Deleted line 108:
  • http://www.vineetmanohar.com/2007/06/maven-selenium/#Maven-Selenium_Plugin (3.8)
25 May 2013, 11:54 by JR -
Changed lines 18-19 from:

Pro Selenium IDE existuje velké množství dalších rozšíření (např. File Logging (Selenium IDE) umožňující zápis výsledků testů do logovacího souboru).

to:

Pro Selenium IDE existuje velké množství dalších rozšíření (např. File Logging (Selenium IDE)) umožňující zápis výsledků testů do logovacího souboru).

Changed lines 77-78 from:

Testy se nacházejí v balíku cz.zcu.kiv.spot.selenium. Současné Selenium testy byly vytvořeny s využitím Selenium IDE pro Firefox a následně vyexportovány do podoby Java kódu, který byl nakopírován do projektu. V abstraktní třídě SeleniumTestCase.java je definováno spuštění testů. Třída SeleniumSuitTest představuje sadu testů.

to:

Testy se nacházejí v balíku cz.zcu.kiv.spot.selenium a byly vytvořeny s využitím Selenium IDE pro Firefox a následně vyexportovány do podoby Java kódu, který byl nakopírován do tříd v projektu. V abstraktní třídě SeleniumTestCase.java je definováno spouštění testů. Třída SeleniumSuitTest představuje sadu testů (jednotlivé testy jsou do sady přiřazeny s využitím anotace).

Současné (25.5.2013) Selenium testy jsou často zaměřeny jen na optimistické scénáře (např. uživatel zadal veškeré vstupy do formuláře správně) a nelze je proto považovat za kompletní testy aplikace. Před dalším rozšiřováním Selenium testů by bylo vhodné prozkoumat následující:

  • Zvážit, zada má význam export testů ze Selenium IDE pro Firefox do zdrojového kódu Javy. Bylo by možné testy ukládat přímo v html (defaultní formát Selenium IDE) do určité složky ve struktuře projektu. Výhodou tohoto řešení by byla jednodušší modifikace existujících testů přes Selenium IDE. S tím souvisí i možnost testy v Selenium IDE přímo spouštět. A díky doplňku File Logging (Selenium IDE) lze zařídit i logování do souboru. Automatické spouštění testů (uložených jako html) přes maven by mělo být s využitím selenium-maven-plugin možné i v tomto případě - viz kapitola 3.8 zde:http://www.vineetmanohar.com/2007/06/maven-selenium/. Asi jedinou nevýhodou by byla nemožnost spouštění testů přímo v Eclipse IDE (STS), což vzhledem ke "komplikovanosti" (ruční spuštění aplikace a Selenium serveru) stejně není často používaná varianta. Navíc by byl tento způsob spouštění nahrazen možností testy spustit přímo v Selenium IDE.
  • Zjistit jaké výhody by přinesla migrace testů na "Selenium 2" a případně migraci provést.
25 May 2013, 01:48 by JR -
Changed lines 77-78 from:

Testy se nacházejí v balíku cz.zcu.kiv.spot.selenium. Současné Selenium testy byly vytvořeny s využitím Selenium IDE pro Firefox a následně vyexportovány do podoby Java kódu, který byl nakopírován do projektu. V abstraktní třídě {@SeleniumTestCase?.java@] je definováno spuštění testů. Třída {@SeleniumSuitTest?@] představuje sadu testů.

to:

Testy se nacházejí v balíku cz.zcu.kiv.spot.selenium. Současné Selenium testy byly vytvořeny s využitím Selenium IDE pro Firefox a následně vyexportovány do podoby Java kódu, který byl nakopírován do projektu. V abstraktní třídě SeleniumTestCase.java je definováno spuštění testů. Třída SeleniumSuitTest představuje sadu testů.

25 May 2013, 01:30 by JR -
Changed lines 57-58 from:

(Spuštění pouze Selenium serveru se provede příkazem $ mvn selenium:start-server , kompletní sada testů je proveda i po spuštění příkazu: $ mvn deploy )

to:

(Spuštění pouze Selenium serveru se provede příkazem $ mvn selenium:start-server, kompletní sada testů je proveda i po spuštění příkazu: $ mvn deploy )

Changed lines 63-64 from:
  1. v Eclipse vybrat požadovaný test/testy a spustit přes Run As -> JUnit? Test
to:
  1. v Eclipse vybrat požadovaný test/testy a spustit přes Run As -> JUnit Test
Changed line 73 from:
  • Pokud při spuštění Selenium testů není nalezen zvolený internetový prohlížeč, je použitý prohlížeč, který Selenium považuje pro daný systém jako defaultní (pro Windows - InternetExplorer?, jinak - Firefox).
to:
  • Pokud při spuštění Selenium testů není nalezen zvolený internetový prohlížeč, je použitý prohlížeč, který Selenium považuje pro daný systém jako defaultní (pro Windows - Internet Explorer, jinak - Firefox).
Changed lines 77-78 from:
to:

Testy se nacházejí v balíku cz.zcu.kiv.spot.selenium. Současné Selenium testy byly vytvořeny s využitím Selenium IDE pro Firefox a následně vyexportovány do podoby Java kódu, který byl nakopírován do projektu. V abstraktní třídě {@SeleniumTestCase?.java@] je definováno spuštění testů. Třída {@SeleniumSuitTest?@] představuje sadu testů.

25 May 2013, 00:58 by JR -
Changed line 5 from:

Firefox plugin Selenium IDE

to:

Firefox plugin Selenium IDE

Changed line 38 from:

Selenium RC a aplikace SPOT (selenium-maven-plugin + maven-surefire-plugin + maven-jetty-plugin)

to:

Selenium RC a aplikace SPOT (selenium-maven-plugin + maven-surefire-plugin + maven-jetty-plugin)

Changed line 59 from:

Spuštění Selenium testů přes Eclipse IDE (STS)

to:

Spuštění Selenium testů přes Eclipse IDE (STS)

Changed line 67 from:

Poznámky ke spouštění Selenium testů:

to:

Poznámky ke spouštění Selenium testů:

Changed lines 76-79 from:

Selenium testy SPOTU

Výhody a nevýhody

to:

Selenium testy SPOTU

Výhody a nevýhody

25 May 2013, 00:56 by JR -
Deleted line 2:

Selenium

Changed lines 6-7 from:

Používá se jako addon do prohlížeče Firefox

to:

Používá se jako doplněk do prohlížeče Firefox.

Changed lines 14-15 from:

Selenium IDE se do prohlížeče Firefox nainstaluje prostřednictvím odkazu umístěného přímo na stránkách produktu. Instalaci pluginu je nutné potvrdit. Nainstalovaný plugin je poté spustitelný přes nabídku "Firefox" -> "Vývoj webu".

to:

Selenium IDE se do prohlížeče Firefox nainstaluje prostřednictvím odkazu umístěného přímo na stránkách produktu. Instalaci doplňkuje nutné potvrdit. Nainstalovaný doplněk je poté spustitelný přes nabídku "Firefox" -> "Vývoj webu".

Changed line 20 from:

Shrnutí:

to:

Shrnutí vlastností:

Changed lines 22-24 from:
  • možnost exportu zaznamenaných posloupností úkonů do různých formátů - např. Java => vyexportovaný kód testů pak stačí nakopírovat do projektu (využití knihovny selenium-java-client-driver)

- možnost spouštění testů (sad testů) přímo přes plugin

to:
  • možnost exportu zaznamenaných posloupností úkonů do různých formátů - např. Java => vyexportovaný kód testů pak stačí nakopírovat do projektu (využití knihovny selenium-java)
  • možnost spouštění testů (sad testů) přímo přes plugin
Changed lines 26-27 from:

Selenium Core je testovací nástroj, který běžící přímo v browseru. Slouží pro spouštění testů vytvořených vytvořit pomocí Selenium IDE.

to:

Selenium Core je testovací nástroj, který běžící přímo v browseru. Slouží pro spouštění testů vytvořených pomocí Selenium IDE.

Changed line 29 from:

Selenium Remote Control (RC) je testovací nástroj, který umožňuje psát automatizované testování uživatelského rozhraní v libovolném programovacím jazyce, s použitím běžných prohlížečů.

to:

Selenium Remote Control (RC) je nástroj, který umožňuje spouštět testy uživatelského rozhraní (napsané v libovolném programovacím jazyce) v běžném prohlížeči.

Changed lines 36-67 from:

Tento nástroj dokáže spolupracovat s operačnímy systémy a browsery

  • Windows, Linux, MacOSX?, Solaris
  • Firefox 2,3, IE 7,8, Opera 9, Safari...

Výhody a nevýhody

+ test je komplexní a postihu téměř veškeré komponeny systému

+ není potřebná dokonalá znalost aplikace

+ test lze pusit najednou pro více systémů a prohlížečů

+ intuitivní práce s IDE rozhraním

- psaní testů je zdlouhavé a při změně testované součásti se musí změnit i test

- některé komponenty nelze vůbec otestovat

- chybný výsledek testu nutně neznamená chybu aplikace

Selenium RC a aplikace SPOT

Knihovny nutné pro testování jsou do aplikace SPOT staženy pomocí mavenu a konfigurovány v pom.xml. Důležité je nastavení portu, defaultní je 4444.

...
<artifactId>selenium-maven-plugin</artifactId>
...
    <configuration>
       <port>4444</port>
       <background>true</background>
    </configuration>
...
to:

Tento nástroj dokáže spolupracovat s více operačnímy systémy a browsery.

Selenium RC a aplikace SPOT (selenium-maven-plugin + maven-surefire-plugin + maven-jetty-plugin)

Knihovny nutné pro Selenium testy jsou do aplikace SPOT staženy pomocí mavenu a konfigurovány v pom.xml.

Changed lines 44-57 from:

Při tomto příkazu se spustí nejprve jetty kontejner a následovně Selenium server.

Spuštění pouze Selenia serveru se provede příkazem:

  • $ mvn selenium:start-server

Kompletní sada testů je proveda i po spuštění příkazu:

  • $ mvn deploy

O generování logu se stará plugin maven-surefire-plugin. Generování probíhá do adresáře /target/surefire-reports. Pro každý test je vytvořen samostatný xml výstup.

Je třeba míti na paměti, že pro běh testů musí být spuštěna aplikace SPOT( webový kontejner a databáze), operační systém musí být v grafickém režimu a v systému se musí nacházet webový prohlížeč.

Zobrazení reportů

to:

Při tomto příkazu se nejprve automaticky sestaví webová aplikace. Dále se sestavená webová aplikace spustí s využitím kontejneru jetty ( maven-jetty-plugin). Následně je provedeno spuštění Selenium serveru (integrován v selenium-maven-plugin) a na závěr dojde k samotnému vykonání testů.

K úspěšnému provedení testů je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá. Operační systém musí být v grafickém režimu a v systému se musí nacházet webový prohlížeč.

Použitý integrovaný Selenium server v selenium-maven-pluginu je starší verze, což může způsobovat problémy například při pokusu o vykonání testů v některých novějších verzích internetových prohlížečů. V případě problémů s vykonáním testů je proto vhodné zkusit změnit internetový prohlížeč, ve kterém mají být testy vykonány, nebo nainstalovat starší verzi některého prohlížeče.

Generování logu s průběhem testů zajišťuje maven-surefire-plugin.

Changed lines 53-113 from:
  • $ mvn site je vygenerována stránka s technickými údaji aplikace()

Programování testů

Třída, která se stará o napojení na selenium server:

package cz.zcu.kiv.spot.selenium;
...
public abstract class SeleniumTestCase extends SeleneseTestCase {
    public Selenium selenium;
    @Override
    public void setUp() throws Exception {
        super.setUp();
        //adresa selemia srv,port,prohlizec,adresa testovane stranky
        selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://localhost:8080");
        selenium.start();
    }
    public void tearDown() throws Exception {
        selenium.stop();
        super.tearDown();
    }
}

Třída, která spouští jednotlivé testy. Zde se může použít vygenerovaný kód ze Selenium IDE. Příklad použití:

package cz.zcu.kiv.spot.selenium;

public class DefaultClickTest extends SeleniumTestCase {
    @Test
    public void testClickCZ() throws Exception {
        selenium.open("/spot/");
        verifyTrue(selenium.isTextPresent("Slovník odborné terminologie"));
        selenium.click("link=Hlavní stránka");
        selenium.waitForPageToLoad("30000");
        verifyTrue(selenium.isTextPresent("Slovník odborné terminologie"));
        selenium.click("link=Přidat slovo");
        selenium.waitForPageToLoad("30000");
...

Poznámky

  • Pro testování "přihlášeného živatele" je třeba jej založit v databázi
  • testováni je pro PC celkem zátěž, testy mívají problémy se špatnou odezvou lokálního webserveru, nedokončení testu nemusí znamenat nalezení chyby
  • test lze nasměrovat na libovolnou adresu

WARNING

  • momentálně je jako testovací prohlížeč používána opera9.68, z důvodu špatného zobrazení kódování některých stránek

Testy SPOTU

Vytvoření testovacích uživatelů

INSERT INTO users(
            users_id, "login", pass, firstname, lastname, email, email_pub, 
            homepage, description, rights, active, active_code)
    VALUES (85, 'userTest', md5('user'), 'roman', 'namor', 'fbvf@seznam.cz', FALSE, 
            '', 'testovaci uzivatel', 10, 1, 'ACTIVATED');
INSERT INTO users(
            users_id, "login", pass, firstname, lastname, email, email_pub, 
            homepage, description, rights, active, active_code)
    VALUES (85, 'adminTest', md5('test'), 'roman', 'namor', 'fbvf@seznam.cz', FALSE, 
            '', 'testovaci uzivatel', 10, 1, 'ACTIVATED');
to:
  • $ mvn site je vygenerována stránka s technickými údaji aplikace

V pom.xml je možné určit, jaké testy mají být při zadání příkazu $ mvn integration-test spouštěny a jaké ignorovány (include/exclude).

(Spuštění pouze Selenium serveru se provede příkazem $ mvn selenium:start-server , kompletní sada testů je proveda i po spuštění příkazu: $ mvn deploy )

Spuštění Selenium testů přes Eclipse IDE (STS)

Selenium testy je možné spustit také přímo přes Eclipse IDE (STS). Postup:

  1. nutné ručně spustit aplikaci (například přes Run Jetty)
  2. nutné ručně spustit Selenium server (java -jar selenium-server-standalone-2.32.0.jar), který je možné stáhnout ze stránky http://code.google.com/p/selenium/downloads/list
  3. v Eclipse vybrat požadovaný test/testy a spustit přes Run As -> JUnit? Test

Stejně jako v případě spouštění testů přes maven je nezbytné, aby byla spuštěna databáze, kterou webová aplikace používá a v systému se nacházel webový prohlížeč.

Poznámky ke spouštění Selenium testů:

  • Spuštěná webová aplikace musí být přístupná přes URI http://localhost:8080/spot/ (case sensitive), jinak nebudou Selenium testy úspěšně vykonány. Je proto vhodné, aby byl lokální projekt pojmenován jako "spot".
  • Během provádění testů vyžadujících přihlášeného uživatele, je pro přihlášení použitý speciálně vytvořený uživatelský účet, který je již v dumpu databáze
  • Jako nejvhodnější pro spouštění Selenium testů se zdá být Internet Explorer, jelikož v tomto případě většinou nevznikají problémy při použítí starší verze Selenium serveru (integrovaný Selenium Server v selenium-maven-plugin) a nové verze Internet Exploreru.
  • Při spouštění Selenium testů na OS GNU Linux je použití alternativního internetového prohlížeče nezbytné. V případě problémů se spuštěním testů je pak nutné nainstalovat a použít některou ze starších verzí zvoleného alternativního internetového prohlížeče.
  • Změna internetového prohlížeče pro vykonání testů se provádí ve třídě SeleniumTestCase.java, kde je požadovaný prohlížeč zvolen prostřednictvím odpovídajícího klíčového slova. V případě nestandardní cesty k instalaci vybraného prohlížeče je možno přesně specifikovat i cestu (viz zakomentované varianty).
  • Pokud při spuštění Selenium testů není nalezen zvolený internetový prohlížeč, je použitý prohlížeč, který Selenium považuje pro daný systém jako defaultní (pro Windows - InternetExplorer?, jinak - Firefox).
  • Testování je poměrně náročné a chyba při vykonání testu může být způsobena například pomalou odezvou serveru - nemusí tedy vždy znamenat chybu v aplikaci

Selenium testy SPOTU

Výhody a nevýhody

+ test je komplexní a postihu téměř veškeré komponeny systému

+ není potřebná dokonalá znalost aplikace

+ test lze spustit najednou pro více systémů a prohlížečů

+ intuitivní práce s IDE rozhraním

- psaní testů je zdlouhavé a při změně testované součásti se musí změnit i test

- některé komponenty nelze vůbec otestovat

- chybný výsledek testu nutně neznamená chybu aplikace

Deleted line 98:
  • https://addons.mozilla.org/cs/firefox/addon/2079
Added lines 100-106:
  • http://docs.seleniumhq.org/download/maven.jsp
  • http://docs.seleniumhq.org/docs/05_selenium_rc.jsp
  • http://mojo.codehaus.org/selenium-maven-plugin/examples/using-with-surefire.html
  • http://mojo.codehaus.org/selenium-maven-plugin/usage.html
  • http://www.vineetmanohar.com/2007/06/maven-selenium/#Maven-Selenium_Plugin (3.8)
  • http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html
Changed lines 112-113 from:
to:

Deleted lines 116-118:

24 May 2013, 23:15 by JR -
Changed lines 6-10 from:

Selenium IDE

Používá se jako addon do prohlížeče firefox

Selenium IDE je integrované testovací prostředí, které zaznamenává interakci uživatele s webovou aplikací. Takto nahrané posloupnosti událostí je možné dále editovat a výsledný záznam slouží k automatickému testování bez nutnosti zásahu testera. Test může být v tomto IDE spuštěn, nebo exportován ve zvoleném programovacím jazyce(Java, Python, Perl, Ruby, Php, C#). Výstupem je i přehledný log prováděných testů.

to:

Firefox plugin Selenium IDE

Používá se jako addon do prohlížeče Firefox

Selenium IDE je integrované testovací prostředí, které zaznamenává interakci uživatele s webovou aplikací. Takto nahrané posloupnosti událostí je možné dále editovat a výsledný záznam slouží k automatickému testování bez nutnosti zásahu testera. Test může být v tomto IDE spuštěn, nebo vyexportován ve zvoleném programovacím jazyce (Java, Python, Perl, Ruby, Php, C#). Výstupem je i přehledný log prováděných testů.

Changed lines 12-16 from:

okno Selenium IDE

instalace:

IDE selenium se přidá do prohlížeče firefox jako standardní addon. Poté se nachází v záložce "nástroje".

to:

Hlavní okno Selenium IDE

Instalace:

Selenium IDE se do prohlížeče Firefox nainstaluje prostřednictvím odkazu umístěného přímo na stránkách produktu. Instalaci pluginu je nutné potvrdit. Nainstalovaný plugin je poté spustitelný přes nabídku "Firefox" -> "Vývoj webu".

Další možností, jak nástroj rychle spouštět, je instalace doplňku Selenium IDE Button.

Pro Selenium IDE existuje velké množství dalších rozšíření (např. File Logging (Selenium IDE) umožňující zápis výsledků testů do logovacího souboru).

Shrnutí:

  • rychlá tvorba testů díky možnosti záznamu prováděných úkonů
  • možnost exportu zaznamenaných posloupností úkonů do různých formátů - např. Java => vyexportovaný kód testů pak stačí nakopírovat do projektu (využití knihovny selenium-java-client-driver)

- možnost spouštění testů (sad testů) přímo přes plugin

22 December 2009, 22:14 by JanSobisek a RomanKunes -
Changed lines 143-144 from:
to:
22 December 2009, 22:06 by JanSobisek a RomanKunes -
Changed lines 142-143 from:
to:
22 December 2009, 22:04 by JanSobisek a RomanKunes -
Added lines 1-157:

Automatizované testování webové aplikace pomocí Selenium

Selenium

Produkt Selenium slouží pro tvorbu a spouštění automatických integračních testů.

Selenium IDE

Používá se jako addon do prohlížeče firefox

Selenium IDE je integrované testovací prostředí, které zaznamenává interakci uživatele s webovou aplikací. Takto nahrané posloupnosti událostí je možné dále editovat a výsledný záznam slouží k automatickému testování bez nutnosti zásahu testera. Test může být v tomto IDE spuštěn, nebo exportován ve zvoleném programovacím jazyce(Java, Python, Perl, Ruby, Php, C#). Výstupem je i přehledný log prováděných testů.

?

okno Selenium IDE

instalace:

IDE selenium se přidá do prohlížeče firefox jako standardní addon. Poté se nachází v záložce "nástroje".

Selenium Core

Selenium Core je testovací nástroj, který běžící přímo v browseru. Slouží pro spouštění testů vytvořených vytvořit pomocí Selenium IDE.

Selenium Remote Control (RC)

Selenium Remote Control (RC) je testovací nástroj, který umožňuje psát automatizované testování uživatelského rozhraní v libovolném programovacím jazyce, s použitím běžných prohlížečů.

  1. spustí se server Selenium(RC), který funguje jako http proxy mezi prohlížečm a dotazy z aplikace
  2. použije se testovací knihovna
  3. RC server natáhne selenium core do prohlížeče

Tento nástroj dokáže spolupracovat s operačnímy systémy a browsery

  • Windows, Linux, MacOSX?, Solaris
  • Firefox 2,3, IE 7,8, Opera 9, Safari...

Výhody a nevýhody

+ test je komplexní a postihu téměř veškeré komponeny systému

+ není potřebná dokonalá znalost aplikace

+ test lze pusit najednou pro více systémů a prohlížečů

+ intuitivní práce s IDE rozhraním

- psaní testů je zdlouhavé a při změně testované součásti se musí změnit i test

- některé komponenty nelze vůbec otestovat

- chybný výsledek testu nutně neznamená chybu aplikace

Selenium RC a aplikace SPOT

Knihovny nutné pro testování jsou do aplikace SPOT staženy pomocí mavenu a konfigurovány v pom.xml. Důležité je nastavení portu, defaultní je 4444.

...
<artifactId>selenium-maven-plugin</artifactId>
...
    <configuration>
       <port>4444</port>
       <background>true</background>
    </configuration>
...

Testování se provádí příkazem:

  • $ mvn integration-test

Při tomto příkazu se spustí nejprve jetty kontejner a následovně Selenium server.

Spuštění pouze Selenia serveru se provede příkazem:

  • $ mvn selenium:start-server

Kompletní sada testů je proveda i po spuštění příkazu:

  • $ mvn deploy

O generování logu se stará plugin maven-surefire-plugin. Generování probíhá do adresáře /target/surefire-reports. Pro každý test je vytvořen samostatný xml výstup.

Je třeba míti na paměti, že pro běh testů musí být spuštěna aplikace SPOT( webový kontejner a databáze), operační systém musí být v grafickém režimu a v systému se musí nacházet webový prohlížeč.

Zobrazení reportů

Průběh testování je zaznamenáván do xml soubrů v adresáři ${basedir}/target/surefire-reports. Tyto data lze exportovat do přehledné webové stránky, kreá bude umístěna v ${basedir}/target/site.

  • $ mvn surefire-report:report
  • $ mvn site je vygenerována stránka s technickými údaji aplikace()

Programování testů

Třída, která se stará o napojení na selenium server:

package cz.zcu.kiv.spot.selenium;
...
public abstract class SeleniumTestCase extends SeleneseTestCase {
    public Selenium selenium;
    @Override
    public void setUp() throws Exception {
        super.setUp();
        //adresa selemia srv,port,prohlizec,adresa testovane stranky
        selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://localhost:8080");
        selenium.start();
    }
    public void tearDown() throws Exception {
        selenium.stop();
        super.tearDown();
    }
}

Třída, která spouští jednotlivé testy. Zde se může použít vygenerovaný kód ze Selenium IDE. Příklad použití:

package cz.zcu.kiv.spot.selenium;

public class DefaultClickTest extends SeleniumTestCase {
    @Test
    public void testClickCZ() throws Exception {
        selenium.open("/spot/");
        verifyTrue(selenium.isTextPresent("Slovník odborné terminologie"));
        selenium.click("link=Hlavní stránka");
        selenium.waitForPageToLoad("30000");
        verifyTrue(selenium.isTextPresent("Slovník odborné terminologie"));
        selenium.click("link=Přidat slovo");
        selenium.waitForPageToLoad("30000");
...

Poznámky

  • Pro testování "přihlášeného živatele" je třeba jej založit v databázi
  • testováni je pro PC celkem zátěž, testy mívají problémy se špatnou odezvou lokálního webserveru, nedokončení testu nemusí znamenat nalezení chyby
  • test lze nasměrovat na libovolnou adresu

WARNING

  • momentálně je jako testovací prohlížeč používána opera9.68, z důvodu špatného zobrazení kódování některých stránek

Testy SPOTU

Vytvoření testovacích uživatelů

INSERT INTO users(
            users_id, "login", pass, firstname, lastname, email, email_pub, 
            homepage, description, rights, active, active_code)
    VALUES (85, 'userTest', md5('user'), 'roman', 'namor', 'fbvf@seznam.cz', FALSE, 
            '', 'testovaci uzivatel', 10, 1, 'ACTIVATED');
INSERT INTO users(
            users_id, "login", pass, firstname, lastname, email, email_pub, 
            homepage, description, rights, active, active_code)
    VALUES (85, 'adminTest', md5('test'), 'roman', 'namor', 'fbvf@seznam.cz', FALSE, 
            '', 'testovaci uzivatel', 10, 1, 'ACTIVATED');

Odkazy:

  • JemnyUvodDoTestoveni
  • https://addons.mozilla.org/cs/firefox/addon/2079
  • http://seleniumhq.org
  • http://vavru.cz/testovani-aplikaci/selenium-mocna-zbran-na-akceptacni-testy/
  • http://www.bitmotif.com/selenium/selenium-remote-control-for-java-a-tutorial/
  • http://www.bitmotif.com/selenium/selenium-remote-control-for-java-a-tutorial-part-2/

Addony pro vývoj webových aplikací

  • Výborný addon Web Developer pro webové vývojáře určený pro Mozilla Firefox stahnutelný na https://addons.mozilla.org/en-US/firefox/addon/60