Pregunta ¿Cómo integrar soapUI con Jenkins?


¿Alguien sabe una buena manera de agregar pruebas soapUI a mis compilaciones CI?


32
2017-07-11 09:35


origen


Respuestas:


soapUI ofrece automatización de prueba a través de Maven o Ant. Se describe la integración de Maven AQUÍ.

Lo intenté hace un mes pero tuve algunos problemas extraños con el repositorio de eviware ... Por lo tanto, ahora corro mis pruebas a través de Ant. Lo que tienes que hacer es llamar al testrunner.bat (o testrunner.sh) script en el directorio soapUI bin. Puede encontrar los argumentos disponibles AQUÍ.

Debe instalar soapUI en su servidor de compilación Hudson. Luego simplemente crea un nuevo trabajo que se crea a través de Ant.

Muestra build.xml:

<project name="IntegrationTest" default="soapui-tests" basedir=".">
    <description>Runs the soapUI integration tests</description>
    <property file="build.properties"/>

    <target name="checkos">
        <condition property="testrunner.cmd" value="${soapUI.home}/bin/testrunner.bat">
                <os family="windows" />
        </condition>
        <condition property="testrunner.cmd" value="${soapUI.home}/bin/testrunner.sh">
                <os family="unix" />
        </condition>
    </target>

    <target name="soapui-tests" depends="checkos">
        <exec executable="${testrunner.cmd}"
              failonerror="yes"
              failifexecutionfails="yes"
        >    
            <arg value="-e ${service.endpoint}"/>
            <arg value="-P dbUrl=${db.Url}"/>
            <arg value="-rajf"/>
            <arg path="${report.dir}"/>
            <arg path="${soapui.project.folder}"/>
        </exec>
    </target>
</project>

30
2017-07-11 11:04



Es bastante simple ...

Crea un repositorio git con lo siguiente (ejemplo):

├── pom.xml
├── RestAPI-negativeTestSuite.xml
└── RestAPI-positiveTestSuite.xml

pom.xml, ajustar cuando sea necesario:

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<name>Test soapui</name>
<groupId>tdrury</groupId>
<artifactId>com.example.soapuitests</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<description>blah blah</description>
<build>
    <plugins>
        <plugin>
            <groupId>com.smartbear.soapui</groupId>
            <artifactId>soapui-maven-plugin</artifactId>
            <version>5.0.0</version>

            <executions>
                <execution>
                    <id>RestAPI-positiveTestSuite</id>
                    <configuration>
                        <projectFile>RestAPI-positiveTestSuite.xml</projectFile>

                        <outputFolder>target/surefire-reports</outputFolder>
                        <testSuite>Positive cases</testSuite>

                        <junitReport>true</junitReport>
                        <exportwAll>true</exportwAll>
                        <printReport>true</printReport>
                        <testFailIgnore>true</testFailIgnore>
                    </configuration>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <phase>test</phase>
                </execution>
                <execution>
                    <id>RestAPI-negativeTestSuite</id>
                    <configuration>
                        <projectFile>RestAPI-negativeTestSuite.xml</projectFile>
                        <outputFolder>target/surefire-reports</outputFolder>
                        <testSuite>Negative tests</testSuite>

                        <junitReport>true</junitReport>
                        <exportwAll>true</exportwAll>
                        <printReport>true</printReport>
                        <testFailIgnore>true</testFailIgnore>
                    </configuration>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <phase>test</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Crea un nuevo trabajo de Maven en Jenkins y apunta al git repo y pom.xml, como meta complete test

Eso es todo amigos


5
2017-09-22 12:50



La siguiente secuencia de comandos se invoca como parte de una secuencia de comandos de compilación personalizada dentro de Hudson pasándole el nombre del servidor de destino para invocar las pruebas.

#!/bin/bash -x

#
#   Regression Test Script for performing regression testing
#   
#   Note: Caution should be exercised where more than one set
#   of test suites exist in the same soapui project
#
#   Script invokes SOAPUI testrunner to perform tests
#
#   Script arguments:
#       target host
#

if [ $# -ne 1 ];
then
    echo "Usage: $0 target_host"
    exit 1
fi
TargetHost=$1
curdir=`pwd`
ProjectFile=$curdir/testing/SoapUI/YourProject.xml
SOAPUI_HOME=/soapuipath/soapui
TEST_RUNNER=testrunner.sh

if [ ! -f "$ProjectFile" ];
then
    echo "Project File does not exist"
    exit 1
fi
###############################################################################################
## Check the status of the last shell operation and if failed exit
###############################################################################################

## --------------------------------------------------------------------------------
##  Return the operating system pathname for the datafiles for the specified database
##
##  Arguments:
##      The return value to check.  zero indicates all is good.  Non-zero indicates error
##      The error message to display when exiting
##      
##  Exits if error detected
check_status()
{
    if [ $# -ne 2 ];
    then
        echo "$0: Programming error: Report to sysadmin@yourdomain.com"
        exit -1
    fi
    exit_code=$1
    err_msg=$2
    if [ $exit_code -ne 0 ];
    then
        echo $err_msg
        exit $exit_code
    fi
}


cd $SOAPUI_HOME/bin
bash -x ./$TEST_RUNNER -s"TestSuite 1" -c"TestCase 1 - Sanity Tests" -ehttps://$TargetHost:port/testurl "$ProjectFile"
check_status $? "Failed to pass regression testing "

cd "$curdir"

2
2017-07-11 21:29



¿Por qué no utilizar la integración JUnit? http://www.soapui.org/Test-Automation/integrating-with-junit.html

Editar: Tuvimos algunos números de rendimiento extraños usando este método (segundos en lugar de mseg), resulta que fue por usar el SoapUI Runner. Ejecutar la misma prueba de carga en SoapUI dio un resultado correcto. Tal vez no usamos la API correctamente (aunque parece sencillo). Cambiamos al uso de ContiPerf2 y al uso del código del cliente (que tenemos que generar de todos modos) para ejecutar las pruebas y obtener resultados normales ahora.


2
2017-07-19 09:23



Yo uso el soapui-extension maven plugin - Es mucho mejor que el plugin Maven oficial. Solo es cuestión de configurarlo para producir resultados de estilo JUnit para que jenkins pueda recogerlos.


1
2018-04-15 14:29