Canoo WebTest testovací scenár je v skutočnosti “iba” súbor Ant-taskov a preto nás už určite neprekvapí, že zápisy testovacích Canoo WebTest scenárov sú tradičné XML zápisy. Ak však nechcete zapisovať testovacie scenáre v formáte XML, je tu ďalšia alternatíva. Groovy a Maven. A to priamo v prostredí Eclipse.
Začneme stiahnutím verzie Maven [http://maven.apache.org/download.html]. V čase písania tohto článku je aktuálny „apache-maven-3.1.0“. Po nastavení systémovej „path“ na „X:\apache-maven-3.1.0\bin\“ začneme vytvorením Maven projektu.
mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=my.domain -DartifactId=myWebTestApp
po ukončení ktorého vznikne Maven-projekt myWebTestApp.
Zeditujeme vygenerovaný pom.xml v troch krokoch.
- Pridáme WebTest ako „dependency“:
<dependency> <groupId>com.canoo.webtest</groupId> <artifactId>webtest</artifactId> <version>3.1-SNAPSHOT</version> </dependency>
- Pridáme referenciu na Maven-WebTest repository:
<repositories> <repository> <id>webtest_dependencies_snapshot</id> <name>WebTest dependencies</name> <url>http://webtest.canoo.com/webtest/m2-repo-snapshots</url> </repository> </repositories>
- Nakonfigurujeme GMaven plugin:
<build> <plugins> <plugin> <groupId>org.codehaus.groovy.maven</groupId> <artifactId>gmaven-plugin</artifactId> <version>1.0-rc-5</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions> <execution> <id>add-test-source</id> <phase>generate-sources</phase> <goals> <goal>add-test-source</goal> </goals> <configuration> <sources> <source>src/test/groovy</source> </sources> </configuration> </execution> </executions> </plugin> </plugins> </build>
A pokračuejeme vytvorením Eclipse projektu.
mvn -Declipse.downloadSources=true eclipse:eclipse
Počas vytvárania eclipse projektu sa z inernetu stiahnu aktuálne JAR súbory, ktoré nájdete v adresári „.m2“, nájdete ich napríklad v „c:\Documents and Settings\hesteric\.m2″. Ja som adresár .m2 premiestnil do adresára inštalácie Maven-u na disk F:\.
Downloadujeme Groovy plugin do prostredia Eclipse. Tento plugin má svoje „muchy“, ale je určite lepší ako nič.
Importujeme vytvorený Maven projekt do prostredia Eclipse.
Nastavíme premennú “M2_REPO” tak, aby ukazovala na adresár, obsahujúci potrebné JAR súbory, ktoré sa stiahli počas vytvorenia Maven projektu [f:\apache-maven-3.1.0\.m2\repository].
Ak sme úspešne vykonali predchádzajúce kroky, môžeme začať s prvou groovy testovacou triedou.
Náš prvý groovy test, ktorý otestuje sme.sk by mohol vyzerať napríklad takto:
package my.domain import com.canoo.webtest.WebtestCase /** * @author hesteric * */ class MyFirstWebTest extends WebtestCase { void testSme() { webtest("Testujeme sme.sk") { invoke url:"http://www.sme.sk", description: "Go to Sme.sk" verifyTitle "SME.sk" // tu test failuje … } } }
Spustíme ho ako RunAs->JUnit
… a tu je výsledok:
ešte poznámka, že test neprešiel, pretože v title stránky je „SME.sk | denník SME – najčítanejšie spravodajstvo na Slovensku“ a nie ako je predpokladané v teste …
A tu je dôvod neúspechu nášho testu:
: Wrong document title found!. Expected value “SME.sk” but got “SME.sk | denník SME – najčítanejšie správy na Slovensku”, Step: VerifyTitle at : with (taskName=”verifyTitle”) at com.canoo.webtest.steps.verify.VerifyTitle.doExecute(VerifyTitle.java:26)