web-dev-qa-db-ja.com

soapUIとJenkinsを統合する方法は?

誰でも私のCIビルドにsoapUIテストを追加する良い方法を知っていますか?

36
Michael

soapUIは、MavenまたはAntを介したテスト自動化を提供します。 Maven統合について説明します [〜#〜] here [〜#〜]

数ヶ月前に試してみましたが、Eviwareリポジトリに奇妙な問題がありました...したがって、Ant経由でテストを実行します。あなたがしなければならないのは、testrunner.bat(またはtestrunner.sh)soapUI binディレクトリのスクリプト。利用可能な引数を見つけることができます [〜#〜] here [〜#〜]

HudsonビルドサーバーにsoapUIをインストールする必要があります。次に、Antを介してビルドされる新しいジョブを作成します。

サンプル 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>
31
Sebi

とても簡単です...

次のgitリポジトリを作成します(例):

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

pom.xml、必要な場所を調整します。

<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>
</project>

Jenkinsで新しいMavenジョブを作成し、testを入力して、git repoとpom.xmlを指すようにします。

それはすべての人々です

5
Xiwen

次のスクリプトは、テストを呼び出す対象ホストの名前を渡すhudson内のカスタムビルドスクリプトの一部として呼び出されます。

#!/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 [email protected]"
        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
sweetfa

JUnit統合を使用しないのはなぜですか? http://www.soapui.org/Test-Automation/integrating-with-junit.html

編集:このメソッドを使用すると、奇妙なパフォーマンスの数値(ミリ秒ではなく秒)がありました。これは、SoapUI Runnerを使用したためでした。 SoapUIで同じ負荷テストを実行すると、正しい結果が得られました。 APIを正しく使用しなかったのかもしれません(簡単に思えますが)。 ContiPerf2を使用し、クライアントコード(とにかく生成する必要がある)を使用してテストを実行し、通常の結果を取得するように切り替えました。

2

soapui-extension maven plugin -公式のMavenプラグインよりもはるかに優れています。 JUnitスタイルの結果を生成するように設定するだけで、ジェンキンが結果を取得できます。

1
blank