需要通过Gradle脚本指南来执行soapui项目xmls并生成报告html

需要通过Gradle脚本指南来执行soapui项目xmls并生成报告html,gradle,soapui,Gradle,Soapui,我有一个gradle脚本来执行一个SOAPUI测试套件。当前,失败日志位于同一文件夹中。我想通过所有考试,但失败了 要在单独文件夹中创建的日志。我也想有一个类似index.html的报告来查看执行通过/失败报告。它是否创建了任何testsuite.xml来存储每个testcase(如ANT)的通过和失败数据? 我对格雷德尔不熟悉。所以我需要一个好的gradle脚本来帮助我摆脱困境。下面给出了我当前的gradle脚本,它只执行一个测试套件: 类SoapUITask扩展了Exec{ 字符串soapU

我有一个gradle脚本来执行一个SOAPUI测试套件。当前,失败日志位于同一文件夹中。我想通过所有考试,但失败了 要在单独文件夹中创建的日志。我也想有一个类似index.html的报告来查看执行通过/失败报告。它是否创建了任何testsuite.xml来存储每个testcase(如ANT)的通过和失败数据? 我对格雷德尔不熟悉。所以我需要一个好的gradle脚本来帮助我摆脱困境。下面给出了我当前的gradle脚本,它只执行一个测试套件:

类SoapUITask扩展了Exec{
字符串soapUIExecutable='/SOAPUIpath/SoapUI-5.1.2/bin/testrunner.sh'
字符串soapUIArgs=“”
公共SoapUITask(){
超级()
此.setExecutable(soapUIExecutable)
//printReport=true
}   
公共void setSoapUIArgs(字符串soapUIArgs){
this.args=“$soapUIArgs.trim().split(“”)作为列表
}                                                                             
}
//执行SOAPUI
任务执行器APUI(类型:SoapUITask){
//只需将项目路径作为参数传递,
//请注意,需要额外的
soapUIArgs='/path/of/SOAPUI项目xml/src/PCDEMO SOAPUI项目.xml'
}

如果要从生成HTML报告,可以使用以下参数:

-f-指定根目录,运行程序将在其中保存测试结果文件。如果指定的目录不存在,则将被删除 创造

-F指定导出报告的格式。用法:-F。支持的格式包括PDF、XLS、HTML、RTF、CSV、TXT和XML。如果未指定参数,则使用PDF。要 导出多种格式的结果,用逗号分隔。对于 例如,-FPDF、XML、CSV

注意:正如您在文档中看到的那样,
-F
参数仅适用于PRO版本。如果您在尝试使用
-F
参数时使用免费版本,您将获得以下输出:
org.apache.commons.cli.unrecognizedoption异常:无法识别的选项:-FPDF

因此,您可以修改
任务执行APUI
以添加
-f location
-FHTML
,如下所示:

//执行SOAPUI
任务执行器APUI(类型:SoapUITask){
//只需将项目路径作为参数传递,
//请注意,需要额外的
soapUIArgs='-f“path/of/outputreport”-FHTML“/path/of/SOAPUI项目xml/src/PCDEMO SOAPUI项目.xml”
}
如果您希望得到Junit Html样式的报告,可以尝试使用以下参数(该参数也仅在PRO版本中可用):

-R-指定报表数据的类型

用法:-R.报告类型可以是以下类型之一:

项目报告-以-F参数指定的格式生成报告。运行程序将把报告文件保存到-f参数指定的目录中。根据-A参数值,文件可以 组织成子目录

TestSuite报告-如上所述,但适用于TestSuite

TestCase报告-如上所述,但适用于TestCase

JUnit样式的HTML报告-以JUnit样式的HTML文件的形式生成报告。请参阅JUnit样式的HTML报告。使用此值时,运行程序将忽略-F和-A参数

数据导出-生成包含报表数据的XML文件。请参阅数据导出。使用此参数时,-F必须是XML或不能指定

使用-f参数指定运行程序将在其中运行的目录 保存生成的报告文件

使用此功能,您的
任务可以是:

//执行SOAPUI
任务执行器APUI(类型:SoapUITask){
//只需将项目路径作为参数传递,
//请注意,需要额外的
soapUIArgs='-f“path/of/outputreport”-R“JUnit样式的HTML报告”“/path/of/SOAPUI项目xml/src/PCDEMO SOAPUI项目.xml”
}

免责声明:我没有专业版,因此无法测试我在答案中给出的任何选项。我将此答案作为一篇单独的帖子发布,因为我认为这是一个适合没有专业版的人的好选项,而且足够好,可以有自己的空间

因此,可能的替代方法是生成JUnitXML报告文件,然后使用Xml报告和Xslt转换生成Html

要生成Junit Xml报告,可以使用
-j
参数,也可以使用
-f
指定文件夹

然后您可以创建一个gradle任务来执行XSLT转换(我的解决方案基于)

因此,您的
build.gradle
可以是:

repositories{
maven{url“http://repo.maven.apache.org/maven2" }
}
配置{
类路径
} 
//XMLResultAggregator任务的依赖项
依赖项{
antClasspath'org.apache.ant:ant junit:1.8.2'
} 
类SoapUITask扩展了Exec{
字符串soapUIExecutable='/SOAPUIpath/SoapUI-5.1.2/bin/testrunner.sh'
字符串soapUIArgs=“”
公共SoapUITask(){
超级()
此.setExecutable(soapUIExecutable)
}
公共void setSoapUIArgs(字符串soapUIArgs){
this.args=“$soapUIArgs.trim().split(“”)作为列表
}
}
//执行SOAPUI
任务执行器APUI(类型:SoapUITask){
def reportPath='path/of/outputreport'
soapUIArgs='-f“'+reportPath+'-j”/path/of/SOAPUI-project-xml/src/PCDEMO-SOAPUI-project.xml“
//执行xslt
多拉斯特{
soapuiXmlToHtml(报告路径)
}
}
//任务来执行XSLT
def soapuiXmlToHtml(结果目录){
def targetDir=新文件(resultsDir,'html')
蚂蚁任务定义(
名称:'junitreport',
classname:'org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator',
classpath:configurations.antClasspath.asPath
)
ant.junitreport(todir:resultsDir){
文件集(dir:resultsDir,