Soapui Maven插件使用指南:soapui-pro-maven-plugin

2015-08-24  籽藤 

推行 ReadyAPI/Soapui 这半年来,在团队中实践效果还是不错的。最近想整合到Jenkins中,做好持续集成的工作。在啃官方文档的时候,还是踩了一些坑,便有了此文。

# 全过程介绍

  1. 安装 maven

  2. 下载soapui-pro-maven-plugin-5.1.2.jar 这是目前最新版本:

    http://smartbearsoftware.com/repository/maven2/com/smartbear/soapui/soapui-pro-maven-plugin/

  3. 用命令安装插件包:mvn install:install-file -Dfile=/Users/applewu/Downloads/soapui-pro-maven-plugin-5.1.2.jar -DgroupId=com.smartbear.soapui -DartifactId=soapui-pro-maven-plugin-5.1.2.jar -Dpackaging=jar -Dversion=5.1.2;

  4. 为你的 soapui 项目准备相应的 pom.xml,保证 pom.xml 与 soapui 项目文件在同一目录下。pom.xml 格式参考官网:http://www.soapui.org/test-automation/maven/maven-2-x.html

  5. 命令运行 soapui 项目: mvn com.smartbear.soapui:soapui-pro-maven-plugin:5.1.2:test

# 踩过的坑

过程看起来很简单,如果你有了基础的maven知识,在前三步根本就没有问题,你会如愿地看到本地的maven库中已经下载了相关的jar包 (我的mac默认路径是:/Users/applewu/.m2/repository/)。咱们主要谈谈第4,5步。

## pom.xml 造成的坑

官网上有一个所谓的 full example,但你需要透彻地理解pom.xml与soapui项目之间的对应关系。你需要更新的字段有:

  • project/groupId:取一个你认为有意义的命名-组织名

  • project/artifactId:这个必须是你要执行的soapui项目的名称,比如文件名是Demo4SoapuiMaven-soapui-project.xml,那么artifactId就是Demo4SoapuiMaven

  • project/name:取一个你认为有意义的命名-测试名

  • project/url: 可以删掉

  • plugin/version:你想用哪个插件版本就写哪个,最新是5.1.2

  • plugin/executions/execution/configuration/projectFile: 待运行的soapui文件全名,如Demo4SoapuiMaven-soapui-project.xml

pom.xml如果有误,会直接影响 maven 的运行结果。如果你用的是ReadyAPI,还可能会遇到 NoClassDefFoundError: org/reflections/Configuration;那么你需要在plugin节点中加入:

```xml

<dependencies>

                    <dependency>

                        <groupId>org.reflections</groupId>

                        <artifactId>reflections</artifactId>

                        <version>0.9.9-RC1</version>

                    </dependency>

                <dependency>

                    <groupId>org.apache.poi</groupId>

                    <artifactId>poi-ooxml</artifactId>

                    <version>3.10-FINAL</version>

                </dependency>

    </dependencies>

```

官网说明 http://readyapi.smartbear.com/readyapi/integration/maven/maven2

## 一行命令挖下的坑

第5步就是一个命令,哪来什么坑呢?而这才是最让我恶心的。大家都知道soapui有免费版和pro收费版,然而在readyapi 和 soapui的官网,full example 是以 pro 版本为例的,而 running tests 这一节中,又是以 免费版为例,做出的说明。即:mvn com.smartbear.soapui:soapui-maven-plugin:4.6.1:test

即便你在pom.xml 中定义的插件是soapui-pro-maven-plugin,但由于你在执行命令的时候,是照着官网文档,用soapui-maven-plugin,所以maven还是以免费版的soapui去执行你的脚本。这很容易让人困惑,因为你本地根本没有免费版的soapui,免费版和收费版的soapui从外观上就明显不一样,安装文件都是两套,不仅仅是active licenese的问题。

当然,如果你的soapui脚本中并没有用到pro版本的特性,比如json path assertion什么的,那么你体会不到有什么不同。否则,你照着官网文档的命令运行之后,soapui脚本会出现大面积 Errors,新手就难以理解了,因为抛出脚本的异常,而不是maven的异常,但其实脚本在你本地的soapui pro,用test runner运行一点儿问题也没有...

789°/7861 人阅读/3 条评论 发表评论

籽藤  2018-01-26

当前 soapui 免费版最新 maven 插件是 5.4.0: http://smartbearsoftware.com/repository/maven2/com/smartbear/soapui/soapui-maven-plugin/5.4.0/


格林  2019-03-15

你好前辈,最近在研究jenkins+soapui遇到了很多问题,麻烦您留个联系方式,多谢啦,前辈~


籽藤  2019-03-21

@格林 可以邮件联系我:wuziteng2006@163.com


登录 后发表评论