-
Notifications
You must be signed in to change notification settings - Fork 5
How to run tests for test suites with SoapUI
Create SoapUI project file for target test suite and push it to src/test/resources/soapui/[TEST_SUITE_ID]-soapui-project.xml
.
Hints:
- All custom configuration variables should be defined on project level. Otherwise, Maven cannot modify them.
- Use custom configuration variables which are described below.
Also, create a SoapUI settings file and push it to src/test/resources/soapui/[TEST_SUITE_ID]-soapui-settings.xml
.
Content of SoapUI settings file shall be:
<con:soapui-settings xmlns:con="http://eviware.com/soapui/config">
<con:setting id="HttpSettings@socket_timeout">300000</con:setting>
</con:soapui-settings>
Add following to pom.xml.
...
<properties>
<soapui.test.fail.ignore>false</soapui.test.fail.ignore>
<soapui.teamengine.endpoint>[ADD_CONTENT]</soapui.teamengine.endpoint>
<soapui.iut>[ADD_CONTENT]</soapui.iut>
<soapui.tests.passed>[ADD_CONTENT]</soapui.tests.passed>
<soapui.tests.skipped>[ADD_CONTENT]</soapui.tests.skipped>
<soapui.tests.failed>[ADD_CONTENT]</soapui.tests.failed>
</properties>
...
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.smartbear.soapui</groupId>
<artifactId>soapui-maven-plugin</artifactId>
<version>5.7.2</version>
<dependencies>
<dependency>
<groupId>com.jgoodies</groupId>
<artifactId>forms</artifactId>
<version>1.2.1</version>
</dependency>
</dependencies>
<configuration>
<projectFile>src/test/resources/soapui/[TEST_SUITE_ID]-soapui-project.xml</projectFile>
<settingsFile>src/test/resources/soapui/[TEST_SUITE_ID]-soapui-settings.xml</settingsFile>
<outputFolder>${project.build.directory}/soapui</outputFolder>
<junitReport>true</junitReport>
<testFailIgnore>${soapui.test.fail.ignore}</testFailIgnore>
<projectProperties>
<value>teamengine.endpoint=${soapui.teamengine.endpoint}</value>
<value>iut=${soapui.iut}</value>
<value>tests.passed=${soapui.tests.passed}</value>
<value>tests.skipped=${soapui.tests.skipped}</value>
<value>tests.failed=${soapui.tests.failed}</value>
</projectProperties>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
...
<pluginRepositories>
<pluginRepository>
<id>smartbear-sweden-plugin-repository</id>
<url>http://www.soapui.org/repository/maven2/</url>
</pluginRepository>
</pluginRepositories>
...
Caution: All place holders ([...]
) must be replaced.
Create Jenkinsfile with path jenkinsfiles/test/Jenkinsfile
and add following content.
pipeline {
agent any
tools {
maven 'mvn'
jdk 'JDK 8'
}
stages {
stage('Preparation') {
steps{
deleteDir()
sh 'git clone [email protected]:opengeospatial/[TEST_SUITE_ID].git .'
}
}
stage('Test') {
steps{
sh 'mvn --version'
sh 'mvn clean com.smartbear.soapui:soapui-maven-plugin:test -Dsoapui.test.fail.ignore=true -Dsoapui.teamengine.endpoint=${teamengineEndpoint} -Dsoapui.teamengine.user=${teamengineUser} -Dsoapui.teamengine.password=${teamenginePassword} -Dsoapui.iut=${iut} -Dsoapui.tests.passed=${testsPassed} -Dsoapui.tests.skipped=${testsSkipped} -Dsoapui.tests.failed=${testsFailed}'
}
}
stage('Results') {
steps{
junit '**/target/soapui/TEST-*.xml'
archive 'target/*'
}
}
}
}
Caution: All place holders ([...]
) must be replaced.
Now, SoapUI tests can be executed with any Jenkins instance by using the Jenkinsfile.
- Maven, Java and Git must be installed.
- Target test suite must be cloned.
Command (executed in main directory of target test suite):
mvn clean com.smartbear.soapui:soapui-maven-plugin:test
Hints:
- SoapUI related properties defined in Maven POM are used to configure test execution. They may be changed to create a different test set up.
During integration-test Maven phase a running instance of target test suite must be available via REST interface.
This can be accomplished by using Docker. Following configuration must be done: How to create Docker Images of test suites
In addition, configuration of system tests must be done as described in previous chapter.
Add following to pom.xml.
...
<properties>
<soapui.teamengine.endpoint>http://localhost:8081/teamengine</soapui.teamengine.endpoint>
<soapui.iut>[ADD_CONTENT]</soapui.iut>
<soapui.tests.passed>[ADD_CONTENT]</soapui.tests.passed>
<soapui.tests.skipped>[ADD_CONTENT]</soapui.tests.skipped>
<soapui.tests.failed>[ADD_CONTENT]</soapui.tests.failed>
</properties>
...
<profiles>
<profile>
<id>integration-tests</id>
<build>
<plugins>
<plugin>
<groupId>com.smartbear.soapui</groupId>
<artifactId>soapui-maven-plugin</artifactId>
<executions>
<execution>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<executions>
<execution>
<id>start</id>
<phase>pre-integration-test</phase>
<goals>
<goal>build</goal>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>stop</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
<goal>remove</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>copy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Caution: All place holders ([...]
) must be replaced.
Create or update Jenkinsfile with path jenkinsfiles/build/Jenkinsfile
and add following content.
pipeline {
agent any
tools {
maven 'mvn'
jdk 'JDK 8'
}
stages {
stage('Preparation') {
steps{
deleteDir()
sh 'git clone [email protected]:opengeospatial/[TEST_SUITE_ID].git .'
}
}
stage('Build') {
steps{
sh 'mvn --version'
sh 'mvn clean install site -Pintegration-tests,docker -Dsoapui.test.fail.ignore=true'
}
}
stage('Results') {
steps{
junit '**/target/surefire-reports/TEST-*.xml'
junit '**/target/soapui/TEST-*.xml'
archive 'target/*'
}
}
}
}
Caution: All place holders ([...]
) must be replaced.
Now, SoapUI tests can be executed with any Jenkins instance by using the Jenkinsfile.
- Maven, Java and Git must be installed.
- Docker must be installed and must be executable by user running the build.
- Target test suite must be cloned.
Command (executed in main directory of target test suite):
mvn clean verify -Pintegration-tests
Hints:
- SoapUI related properties defined in Maven POM are used to configure test execution. Please adjust
soapui.iut
,soapui.tests.passed
,soapui.tests.skipped
andsoapui.tests.failed
to correct values.