我有一个项目,我在构建和部署后运行Soap UI / HermesJMS测试。我希望通过让Jenkins构建,自动部署然后运行Soap UI / HermesJMS测试来自动执行此过程,这样我就不必自己监视和运行测试。有没有办法设置这种流量?
答案 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就更简洁了。经过广泛的搜索,如果可能,那么没有人记录下来。