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