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 output

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 -> http://forge.kiv.zcu.cz/bugs/index.php]] 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 [[#poznamky|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) -> http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html]].

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:
#nutné ručně spustit aplikaci (například přes Run Jetty)
#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
#v Eclipse vybrat požadovaný test (sadu testů) a spustit přes Run As -> [=JUnit=] Test

Attach:seleniumEclipse.png

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ů:[[#poznamky]]
*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 sql/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) -> http://maven.apache.org/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html]].

!!!!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 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@])

!!!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 -> http://docs.seleniumhq.org/download/]] 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 -> http://docs.seleniumhq.org/download/]] se do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/firefox]] nainstaluje přes odkaz umístěný přímo na [[stránkách produktu -> http://docs.seleniumhq.org/download/]]. 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 -> http://www.mozilla-europe.org/cs/firefox]] nainstaluje přes odkaz umístěný přímo na [[stránkách produktu -> http://docs.seleniumhq.org/download/]]. 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 -> http://docs.seleniumhq.org/download/]] existuje velké množství dalších rozšíření (např. [[File Logging (Selenium IDE) -> https://addons.mozilla.org/en-US/firefox/addon/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) -> https://addons.mozilla.org/en-US/firefox/addon/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 -> http://seleniumhq.org]] 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 -> http://docs.seleniumhq.org/download/]] je doplněk do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/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 -> http://seleniumhq.org]] 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 -> http://docs.seleniumhq.org/download/]] 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 -> http://docs.seleniumhq.org/download/]] se do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/firefox]] nainstaluje prostřednictvím odkazu umístěného přímo na [[stránkách produktu -> http://docs.seleniumhq.org/download/]]. Instalaci doplňku je nutné potvrdit. Nainstalovaný doplněk je poté spustitelný přes nabídku "Firefox" -> "Vývoj webu".
to:
[[Selenium IDE -> http://docs.seleniumhq.org/download/]] se do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/firefox]] nainstaluje přes odkaz umístěný přímo na [[stránkách produktu -> http://docs.seleniumhq.org/download/]]. 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.

Attach:Selenium_RC.jpg
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ší.

Attach:Selenium_WebDriver.jpg
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-plugin@]u 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 [[#poznamky|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 [[#poznamky|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 [[#poznamky|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-plugin@]u 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 [[#poznamky|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) -> http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html]].
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) -> http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html]].
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 -> http://docs.seleniumhq.org/download/]] je doplněk do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/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 -> http://docs.seleniumhq.org/download/]] je doplněk do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/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 -> http://seleniumhq.org]] 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 -> http://seleniumhq.org]] 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 -> http://seleniumhq.org]] 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 -> http://seleniumhq.org]] 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 -> http://docs.seleniumhq.org/download/]] je doplněk do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/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 -> http://docs.seleniumhq.org/download/]] je doplněk do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/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:
#v Eclipse vybrat požadovaný test/testy a spustit přes Run As -> [=JUnit=] Test
to:
#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) -> https://addons.mozilla.org/en-US/firefox/addon/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) -> http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html]].
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 [[#poznamky|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 [[#poznamky|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 -> http://chrispederick.com/work/web-developer]] pro webové vývojáře určený pro [[Mozilla Firefox -> http://www.mozilla.com/cs/]] stahnutelný na https://addons.mozilla.org/en-US/firefox/addon/60
to:
* Výborný addon [[Web Developer -> http://chrispederick.com/work/web-developer]] pro webové vývojáře určený pro [[Firefox -> http://www.mozilla.com/cs/]] 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 [[#poznamky|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 [[#poznamky|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:
Attach:seleniumEclipse.png

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 [[#poznamky_ke_spousteni_selenium_testu|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 [[#poznamky|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ů:[[#poznamky]]
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 [[#poznamky|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 [[#poznamky_ke_spousteni_selenium_testu|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 [[#poznamky|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 -> http://seleniumhq.org]] 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 -> http://seleniumhq.org]] 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 -> http://docs.seleniumhq.org/download/]] je doplněk do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/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 -> http://docs.seleniumhq.org/download/]] je doplněk do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/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 -> http://docs.seleniumhq.org/download/]] existuje velké množství dalších rozšíření (např. [[File Logging (Selenium IDE) -> https://addons.mozilla.org/en-US/firefox/addon/file-logging-selenium-ide/]]) umožňující zápis výsledků testů do logovacího souboru).
to:
Pro [[Selenium IDE -> http://docs.seleniumhq.org/download/]] existuje velké množství dalších rozšíření (např. [[File Logging (Selenium IDE) -> https://addons.mozilla.org/en-US/firefox/addon/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:
[Attach:selenIDE.png]
Hlavní okno Selenium IDE
to:
Attach:selenIDE.png
Selenium IDE
02 June 2013, 13:31 by JR -
Changed line 8 from:
[[Attach:selenIDE.png]]
to:
[Attach:selenIDE.png]
02 June 2013, 13:30 by JR -
Changed line 8 from:
[[Attach:selenIDE.png -> selenIDE.png]]
to:
[[Attach:selenIDE.png]]
02 June 2013, 12:02 by JR -
Changed lines 3-9 from:
Produkt [[Selenium -> http://seleniumhq.org]] 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 -> http://www.mozilla-europe.org/cs/firefox]].

[[Selenium IDE -> http://docs.seleniumhq.org/download/]] 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 -> http://seleniumhq.org]] 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 -> http://docs.seleniumhq.org/download/]] je doplněk do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/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 -> http://docs.seleniumhq.org/download/]] se do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/firefox]] nainstaluje prostřednictvím odkazu umístěného přímo na [[stránkách produktu -> http://docs.seleniumhq.org/download/]]. Instalaci doplňkuje nutné potvrdit. Nainstalovaný doplněk je poté spustitelný přes nabídku "Firefox" -> "Vývoj webu".
to:
[[Selenium IDE -> http://docs.seleniumhq.org/download/]] se do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/firefox]] nainstaluje prostřednictvím odkazu umístěného přímo na [[stránkách produktu -> http://docs.seleniumhq.org/download/]]. 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 -> http://docs.seleniumhq.org/download/]].

!!!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.
#spustí se server Selenium(RC), který funguje jako http proxy mezi prohlížečm a dotazy z aplikace
#použije se testovací knihovna
#RC server natáhne selenium core do prohlížeče

[[Attach:selenRC.png -> selenRC.png]]

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) -> https://addons.mozilla.org/en-US/firefox/addon/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) -> https://addons.mozilla.org/en-US/firefox/addon/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 -> http://docs.seleniumhq.org/download/]] existuje velké množství dalších rozšíření (např. [[File Logging (Selenium IDE) -> https://addons.mozilla.org/en-US/firefox/addon/file-logging-selenium-ide/]] umožňující zápis výsledků testů do logovacího souboru).
to:
Pro [[Selenium IDE -> http://docs.seleniumhq.org/download/]] existuje velké množství dalších rozšíření (např. [[File Logging (Selenium IDE) -> https://addons.mozilla.org/en-US/firefox/addon/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) -> https://addons.mozilla.org/en-US/firefox/addon/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:
#v Eclipse vybrat požadovaný test/testy a spustit přes Run As -> JUnit Test
to:
#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 -> http://docs.seleniumhq.org/download/]]
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 -> http://docs.seleniumhq.org/download/]] do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/firefox]]
to:
Používá se jako doplněk do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/firefox]].
Changed lines 14-15 from:
[[Selenium IDE -> http://docs.seleniumhq.org/download/]] se do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/firefox]] nainstaluje prostřednictvím odkazu umístěného přímo na [[stránkách produktu -> http://docs.seleniumhq.org/download/]]. Instalaci pluginu je nutné potvrdit. Nainstalovaný plugin je poté spustitelný přes nabídku "Firefox" -> "Vývoj webu".
to:
[[Selenium IDE -> http://docs.seleniumhq.org/download/]] se do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/firefox]] nainstaluje prostřednictvím odkazu umístěného přímo na [[stránkách produktu -> http://docs.seleniumhq.org/download/]]. 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 -> http://docs.seleniumhq.org/download/]].
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:
#nutné ručně spustit aplikaci (například přes Run Jetty)
#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
#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 -> https://addons.mozilla.org/en-US/firefox/addon/2079]] do prohlížeče [[firefox -> http://www.mozilla-europe.org/cs/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 -> http://docs.seleniumhq.org/download/]]
Používá se jako [[addon -> http://docs.seleniumhq.org/download/]] do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/firefox]]

[[Selenium IDE -> http://docs.seleniumhq.org/download/]] 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 -> http://www.mozilla-europe.org/cs/firefox]] jako standardní [[addon -> https://addons.mozilla.org/cs/firefox/addon/2079]]. Poté se nachází v záložce "nástroje".
to:
Hlavní okno Selenium IDE

!!!!Instalace:
[[Selenium IDE -> http://docs.seleniumhq.org/download/]] se do prohlížeče [[Firefox -> http://www.mozilla-europe.org/cs/firefox]] nainstaluje prostřednictvím odkazu umístěného přímo na [[stránkách produktu -> http://docs.seleniumhq.org/download/]]. 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 -> https://addons.mozilla.org/en-US/firefox/addon/selenium-ide-button/]].

Pro [[Selenium IDE -> http://docs.seleniumhq.org/download/]] existuje velké množství dalších rozšíření (např. [[File Logging (Selenium IDE) -> https://addons.mozilla.org/en-US/firefox/addon/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:
* TestovaciScenare
22 December 2009, 22:06 by JanSobisek a RomanKunes -
Changed lines 142-143 from:
to:
* TestyJUnit
22 December 2009, 22:04 by JanSobisek a RomanKunes -
Added lines 1-157:
!! Automatizované testování webové aplikace pomocí Selenium

!!!Selenium
Produkt [[Selenium -> http://seleniumhq.org]] slouží pro tvorbu a spouštění automatických integračních testů.

!!!Selenium IDE
Používá se jako [[addon -> https://addons.mozilla.org/en-US/firefox/addon/2079]] do prohlížeče [[firefox -> http://www.mozilla-europe.org/cs/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ů.

[[Attach:selenIDE.png -> selenIDE.png]]
okno Selenium IDE

!!!!instalace:
IDE selenium se přidá do prohlížeče [[firefox -> http://www.mozilla-europe.org/cs/firefox]] jako standardní [[addon -> https://addons.mozilla.org/cs/firefox/addon/2079]]. 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čů.
#spustí se server Selenium(RC), který funguje jako http proxy mezi prohlížečm a dotazy z aplikace
#použije se testovací knihovna
#RC server natáhne selenium core do prohlížeče

[[Attach:selenRC.png -> selenRC.png]]

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 -> http://chrispederick.com/work/web-developer]] pro webové vývojáře určený pro [[Mozilla Firefox -> http://www.mozilla.com/cs/]] stahnutelný na https://addons.mozilla.org/en-US/firefox/addon/60


----