woensdag 5 december 2018

Async Groovy script for polling database results for ReadyAPI (SoapUI) TestCases

Make a new "Groovy Script" Step in your SoapUI TestCase for Async calls to a database for waiting for a certain result:


import groovy.sql.Sql
import com.eviware.soapui.support.GroovyUtils
import static org.junit.Assert.assertThat
import static org.hamcrest.CoreMatchers.containsString

log.info("")
log.info(" init DB connection...")

com.eviware.soapui.support.GroovyUtils.registerJdbcDriver("oracle.jdbc.driver.OracleDriver")
sql = Sql.newInstance("jdbc:oracle:thin:<USERNAME>/<password>@<HOSTNAME:PORT/DATABASENAME>", "oracle.jdbc.OracleDriver")

def timeout = 0
log.info("setup done")

while (true)
{
   def itemCount = sql.firstRow("select count(*) from <TABLENAME> where <QUERY>")
   def itemCount_nr = itemCount[0].toString()
   log.info("while count = " + itemCount_nr)
   sleep(2000)
   timeout++
   if (itemCount_nr == "1") break
   else if (timeout % 22 == 0) break
}

log.info("sql close")
sql.close()



In this above example the result will depend on the count (expect 1 row) if not then loop 2000msec with the max of 22 x 2000 msec then "break". If between this 44 sec there is a result then "break". After that always close the SQL connection.

vrijdag 8 december 2017

Meerdere testomgevingen configureren voor je Maven Cucumber-Java project dmv profiles

Om tegen verschillende testomgevingen aan te kunnen testen heb ik een opzet gemaakt dmv profiles in de pom file van een Maven project.

Door onderstaande aan je maven file toe te voegen kun je met een extra parameter in je Maven commando aangeven met welke omgeving config.properties de testen moeten draaien. Door meerdere profiles met verschillende <id> neer te zetten in de POM kun je aangeven welke config.properties vanuit je resources naar je target directory gekopieerd moet worden.

Dit kan erg handig zijn als je meerdere builds in bijvoorbeeld Jenkins wilt configureren voor meerdere testomgevingen.

Bronvermelding:

Maven commando met juiste parameter (-Ptst) om testomgeving te bepalen:
mvn clean test -Ptst

Voorbeeld profile (TST omgeving) die opgenomen kan worden in je Pom file:
<profiles>
        <!-- TST profile -->
        <profile>
            <id>tst</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>generate-test-sources</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <tasks>
                                        <delete file="target/test-classes/config.properties"/>
                                        <copy file="src/test/resources/config.tst.properties"
                                              tofile="target/test-classes/config.properties"/>
                                    </tasks>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.1</version>
                        <configuration>
                            <source>1.8</source>
                            <target>1.8</target>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.20.1</version>                
                        <dependencies>
                            <dependency>
                                <groupId>org.apache.maven.surefire</groupId>
                                <artifactId>surefire-junit4</artifactId>
                                <version>2.20.1</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
                <finalName>TstEnvironment</finalName>
            </build>
        </profile>
</profiles>



dinsdag 25 juli 2017

dinsdag 20 december 2016

Travis CI gebruiken om Cucumber icm PhatomJS te gebruiken

Op dit moment is het tevens mogelijk om in Travis CI te gebruiken voor het Cucumber-Java project via PhantomJS.

Wat heb je nodig:
  1. Cucumber-Java
  2. PhantomJS
  3. Een Travis account via je GitHub account "Sign in with GitHub" rechtsbovenaan
  4. Selecteer bij de eerste keer inloggen op Travis je eigen CucumberDemo project vanuit GitHub
  5. Het onderstaande .travis.yml bestand in de root van je Cucumber project
language: java
jdk:
- oraclejdk8
before_script:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
- sleep 3 # give xvfb some time to start

vrijdag 16 december 2016

PhantomJS binnen Cucumber gebruiken?

In een eerdere post Cucumber-Java heb ik uitleg gegeven hoe je makkelijk eens Cucumber kan bekijken. Als aanvulling heb ik het nu ook mogelijk gemaakt om PhantomJS naast Chrome of FireFox te gebruiken. Het voordeel is dat testen uitvoeren doorgaans een stuk sneller gaan en op de achtergrond worden uitgevoerd zonder dat daarvoor een browserscherm voor hoeft geworden gestart.

Hiervoor kun je het volgende stappenplan doorlopen:

  1. Download en installeer PhantomJS
    1. Download install-phantomjs.sh (bron: GitHub)
    2. Open het gedownloade bestand in gedit
    3. Voer per stap het script uit in een terminal venster
  2. Zet versie 3.01 van selenium-java in je pom.xml binnen het project met IntelliJ 
    <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.0.1</version>
    </dependency>
  3. Neem het volgende stukje code over in je SharedDriver.java bestand binnen het Cucumber-Java project binnen IntelliJ:
.....................................................
static {
    String browserName = System.getProperty("browser");
    if(browserName == null) {
        browserName = "phantomjs";
    }
    if(browserName.equals("firefox")) {
        REAL_DRIVER = new FirefoxDriver();
    }
    else if(browserName.equals("chrome")) {
        String pathToDriver = System.getProperty("pathToDriver");
        if(pathToDriver == null) {
            pathToDriver = "/usr/local/share/chromedriver";
        }
        System.setProperty("webdriver.chrome.driver", pathToDriver);
        REAL_DRIVER = new ChromeDriver();
    }

    else if(browserName.equals("phantomjs")) {
        String pathToDriver = System.getProperty("pathToDriver");
        if(pathToDriver == null) {
            pathToDriver = "/usr/local/share/phantomjs";
        }
        System.setProperty("webdriver.phantomjs.driver", pathToDriver);
        REAL_DRIVER = new PhantomJSDriver();
    }
..................


maandag 28 november 2016

Protractor icm WebStorm (Trial versie) direct Live proberen onder mijn Ubuntu image?


Protractor icm WebStorm (Trial versie) direct Live proberen onder mijn Ubuntu image?

Stappenplan:

  1. Installeer Virtual Box (gratis te downloaden)
  2. Download het volgende .7zip bestand en pak uit https://drive.google.com/file/d/0B-h5vCbyIOwjUTZOQWYyVE9lZ2M/view?usp=sharing
  3. Open het "Agile testingtools Testlab.vbox" bestand
  4. Start de image via Virtual Box
  5. Wachtwoord = Xebium
  6. Start WS (WebStorm) via de onderste knop aan de linkerkant in de menubalk
  7. Run de testen met de groene play knop.
Voor meer informatie:
en handige video:


dinsdag 1 november 2016

Cucumber Java icm Selenium in IntelliJ proberen?

Download hier dan mijn bijgewerkte Agile Testtool image:
https://drive.google.com/file/d/0B7wcjjWCUZECMzg4MUl0NTE1RzA/view?usp=sharing

1. Met bovenstaande link het .7zip bestand downloaden
2. Uitpakken
3. Laatste versie van Oracle Virtual Box downloaden (gratis) en installeren
4. Nu het volgende bestand openen: Agile Testtools Image with Cucumber FitNesse and Jenkins.vbox
5. wachtwoord = Xebium
6. Start IntelliJ (onderste icoon in de startbalk aan de linkerkant)
7. Zie dat het CucumberDemo project al geladen is vanuit GitHub.
8. Testen draaien door rechtermuisknop op het .feature bestand te doen en dan Run (play knop) te klikken.