Webtest v groovy pomocou Maven priamo v Eclipse

163

M1Canoo 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.

 M2

Zeditujeme vygenerovaný pom.xml v troch krokoch.

  1. Pridáme WebTest ako „dependency“:
    <dependency>  
      <groupId>com.canoo.webtest</groupId>  
      <artifactId>webtest</artifactId>  
      <version>3.1-SNAPSHOT</version>  
    </dependency>
  2. 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>
  3. 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

M3

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.

 M4

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].

M5

Ak sme úspešne vykonali predchádzajúce kroky, môžeme začať s prvou groovy testovacou triedou.

M6

 M7

M8

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

M9

M10

 … a tu je výsledok:

 M11

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)

Dobrý článok? Chceš dostávať ďalšie?

Už viac ako 4 200 z vás dostáva správy e-mailom. Nemusíš sa báť, nie každé ráno. Len občasne.

I agree to have my personal information transfered to MailChimp ( more information )

Tvoj email neposkytneme 3tím stranám. Posielame naňho len informácie z robime.it. Kedykoľvek sa môžete odhlásiť.