你可以使用在Jenkins上使用HermesJMS的SoapUI插件运行maven作业吗?

时间:2015-03-03 15:21:54

标签: maven soap jenkins

我有一个项目,我在构建和部署后运行Soap UI / HermesJMS测试。我希望通过让Jenkins构建,自动部署然后运行Soap UI / HermesJMS测试来自动执行此过程,这样我就不必自己监视和运行测试。有没有办法设置这种流量?

1 个答案:

答案 0 :(得分:0)

是的,有一种方法可以设置这种系统。

首先,在我的实现中,我在Jenkins上完全不同的构建中运行Soap UI测试。当您要测试的项目的作业成功完成并已部署到测试环境时,您可以指示Jenkins运行相关作业,如Soap UI作业。

Soap UI项目存在于自己的代码存储库中,该存储库通过许多不同的SCM插件之一挂钩到Jenkins。当要测试的作业成功运行或测试更新时,它可以触发Jenkins运行测试。

代码存储库本身运行包含以下内容的maven pom:

<plugin>
    <groupId>com.smartbear.soapui</groupId>
    <artifactId>soapui-pro-maven-plugin</artifactId>
    <version>5.0.0</version>

    <dependencies>
        <dependency>
            <groupId>oracle.drivers</groupId>
            <artifactId>ojdbc</artifactId>
            <version>6</version>
        </dependency>
    </dependencies>

    <executions>
        <execution>
            <phase>integration-test</phase>
            <id>Test Cases</id>
            <goals>
                <goal>test</goal>
            </goals>
            <configuration>
                <projectFile>/path/to/project/file</projectFile>
                <settingsFile>/path/to/settings/file</settingsFile>
                <outputFolder>output</outputFolder>
                <junitReport>true</junitReport>
                <exportAll>true</exportAll>
                <printReport>false</printReport>
                <soapuiProperties>
                    <property>
                        <name>soapui.ext.libraries</name>
                        <value>/path/to/ext/libraries</value>
                    </property>
                    <property>
                        <name>soapui.logroot</name>
                        <value>/path/where/logs/go</value>
                    </property>
                </soapuiProperties>
            </configuration>
        </execution>
    </executions>
</plugin>

当您运行插件时,它将查找其设置的XML以及将运行的测试用例项目。这些是您需要包含的唯一Soap UI文件,除了包含您要在测试中发送/比较的消息的任何文件。

现在,虽然Maven存在一个Hermes插件,但我并不知道有任何方法可以指向Soap UIs设置文件以查看maven插件。相反,我不得不选择将完整的Hermes装置作为项目的一部分。这就是为什么我建议将Soap UI作为自己的插件运行在其自己的Jenkins作业中的原因之一。

在Soap UI设置页面中,您可以找到以下行:

<con:setting id="ToolsSettings@hermesjms">/path/to/hermesJMS</con:setting>

接下来在hermes-config文件中,通常存储在/.hermes内的主目录下,您需要编辑它以更改它在hermes安装中的位置。以下是您需要更改的前几个参数的摘要:

<config lastEditedByUser="S" lastEditedByHermesVersion="v1.14 SoapUI" maxThreadPoolSize="5" auditDirectory="Hermes\temp" messageFilesDir="Hermes\.hermes\.\messages" ... />

如果您遇到HermesJMS连接到测试环境的问题,我建议您检查hermes配置环境底部附近是否显示以下设置是否显式设置为值,就像我在本地运行它时一样,然后在Jenkins服务器似乎无法解析已设置的某些值:

<extension className="hermes.ext.weblogic.WebLogicJMSAdminFactory">
    <properties>
        <property name="jmsServer" value="yourJmsServer"/>
        <property name="webLogicDomain" value="mydomain"/>
        <property name="webLogicServer" value="yourWeblogicServer/ClusterYouDeployTo"/>
    </properties>
</extension>

这不是一个理想的系统,如果可以在Soap UI设置中链接到Mavens hermes插件,那么不必在项目文件中包含hermes就更简洁了。经过广泛的搜索,如果可能,那么没有人记录下来。