SOAPUI中文教程---生成测试报告

soapUI有高度的定制可能性; soapUI Pro中可打印的报告基于非常灵活的JasperReports报告引擎。 这些报告是从JasperReports生成的特定的基于XML的模板,可以在项目和全局层面进行定制,从而使您在创建的所有报告中都能轻松获得通用的外观和感觉。

在soapUI中创建可打印报告很容易; 只需从Report对话框中的 Report Type 下拉列表中选择相应的报告,则所选报告将自动编译并按配置生成。

Quick tip: 要充分了解soapUI Pro中的报告基础架构,您应该很好地掌握JasperReports及其模板语言的工作原理,否则下面的一些解释可能很难放在内容中

1. 报告管理

soapUI项目窗口包含一个报告选项卡,其中所有全局和项目级报告都可用:

不同的子选项卡可让您访问主报表,子报表和模板以及项目级报表参数的底层XML。 可以根据需要创建,删除和编辑项目级别项目,但不能在soapUI中修改全局项目。 它们必须在文件系统中进行修改,并重新加载顶部工具栏中的“重新加载”按钮以进行更新(稍后再进行更改)。

2. 报告结构

soapUI结构报告如下:

  • Main Reports是reporting对话框中显示的顶层模板,可在上面的 Available Reports选项卡中显示。 主报表模板是一个标准的jasperReport模板,它接收报表范围特定的模型项作为其DataSource,例如生成LoadTest报表时,传递给报表的数据对象是WsdlLoadTest,其属性可以定义为 报告和已使用。
  • 主报表可以通过标准的JasperReports子报表机制结合soapUI特定的URL前缀(“subreport:”),包括任何数量的子报表(在“子报表”选项卡中显示)。 子报表从生成报表时可用的指定DataSource获取其数据。 看看Subreports选项卡,我们可以看到所有可用的子报表及其相应的DataSource:

    例如,MetricsReport子报表从ReportMetrics获取其数据,并包含在所有主要报告中,并具有以下语法:

     y="98" width="535" height="30" isRemoveLineWhenBlank="true"> $P{IncludeResults} ... $P{TestSuiteMetrics} "subreport:MetricsReport"

    您可以看到subreportExpression使用soapUI特定的“subreport:”URL语法,soapUI用于查找指定的SubReport模板。 TestSuiteMetrics暴露的字段在MetricsReport模板中相对定义:

    ... ...
  • Templates 允许管理模板XML的公共块。 选项卡如下所示:

    然后可以使用熟悉的属性扩展语法将上述示例模板插入到任何报表中:

  • 最后,参数允许对报告内容进行参数化,而无需重新编译底层模板。 参数选项卡允许您根据需要添加参数值:

Quick tip: 标准soapUI属性扩展可用于上述任何模板或参数值。 例如,如果要在报表中显示当前用户名,您可以在模板中的相应位置添加$ {#System#user.name}。 这提供了非常灵活的报告,但可能降低报告性能,因为soapUI缓存编译报告模板以供重用。 每当报表模板中的属性扩展中的值更改时,soapUI将需要重新编译包含的模板。

3. 报告存储

所有全局报告模板都存储在soapUI-Pro \ bin \ reports文件夹下的文件系统中:

The base folders are:

  • logos : 包含使用 logo: protocol图像标识引用的任何图像
  • reports : 包含所有全局主要报告模板,每个子文件夹对应于“ Available Reports”选项卡中的“Report Type”列
  • subreports : 包含所有全局子报表模板,每个子文件夹对应于“子报表”选项卡中的报表类型列
  • templates :

Opening one of these folders reveals the following:

在这里可以看到,每个模板都保存为两个文件:

  1. 一个* .jrxml文件,它是一个jasper模板,可以在任何JasperReports编辑器或任何文本编辑器中进行编辑
  2. 一个* -config.xml文件(以jrxml命名),其中包含soapUI使用的模板的元数据。

如果要更改任何全局项目的模板内容,请直接在文件系统(通过修改jrxml文件)中执行此操作,然后在保存更改后按“报告”选项卡工具栏中的“Reload”按钮:

样式和图像

默认报告使用名为styles.jrtx的通用样式模板(见上面的截图)。 报告中包含以下内容:

该文件包含许多标题的样式定义等:

修改此文件将更改所有报告的一般外观。

相应地,图标和图像可以在存储图标文件夹中替换:

自定义全局报告

如果要自定义全局报告的外观而不修改默认的报表,则可以使用“自定义全局报告”功能;

  1. Create a copy of the global reports folder locally
  2. Apply desired customizations to the templates in this folder
  3. Specify the path to the folder in the global soapUI Pro Preferences:

  4. Reports and templates created here will be shown as global reports in the different Reporting Tabs and used as such.

项目级别报告存储

当您在项目级别创建自定义报告时,这些报告将与项目数据的其余部分一起存储在项目文件中,以便轻松重新分配。 如果将项目保存为soapUI Pro中的复合项目,则报告将保存在类似于Composite Project文件夹中的全局文件结构的文件结构中,从而允许您使用外部工具编辑这些报告,就像全局报告一样。

Customizing Templates

soapUI Pro允许高度的报告定制。 您可以根据需要创建任意数量的报表和子报表模板。 这些可以包含内部DataSet和任何外部源(数据库等)公开的数据 - 就像任何JasperReport一样。 我们来看看如何在项目级别创建一个简单的自定义报告,以及如何使用不同的自定义机制。

1. 创建自定义模板

  1. 我们首先在项目层面增加一个全新的报告; 按可用报告工具栏中的添加报告模板按钮:

  2. 将名称设置为“属性”,将类型设置为COMMON(意味着它将在所有级别都可用)。 按OK可以给我们:
  3. 这里我们可以选择我们想要自动包含在报表中的子报表。 选择PropertiesReport子报表,然后按OK。 生成的模板可以在编辑器中看到:

  4. 如果我们现在转到“项目概述”选项卡并添加一个属性:
  5. Press the Create Report button in the toolbar:
  6. Selecting our newly created Properties and clicking OK gives us the following report:
  7. 字符串null不完全符合。 我们来看看属性SubReport,在模板中我们可以看到以下内容:

  8. 看来,Type作为参数传递给报表。 我们为此添加一个硬编码的值:
  9. If we now recreate the report we get:

2. 添加参数

generating the report now gives us:

  1. 我们添加一个参数来设置报告标题(而不是Sample Project)。 返回模板并添加:
  2. 现在使用默认值将参数添加到Parameters选项卡:

  3. 这个参数可以在soapUI Pro中的任何级别覆盖,因为这是一个Common报告,我们可以生成它,无论我们想要什么,例如; 对于TestCase,我们可以设置ReportTitle:

1. 报表定制对象

参数对象

params对象是一个标准的StringToObjectMap,用于保存所有定义的报告参数的值,包括要填充在报告模板中定义的和“Report Parameters”选项卡中定义的那些参数。 设置参数值为:

params.<parametername> = <value>

例如在我们的定制文档中,我们定义了一个“ReportTitle”参数,在我们的脚本中,我们可以通过编程方式将当前日期添加到标题中:

报告对象

报告对象有两个主要用途:

  1. 添加要显示在报表的指标部分的指标
  2. 添加/修改子报表数据

2. 向report添加指标

soapUI附带的每个默认报告都包含一个指标部分,显示MetricsReport模板呈现的相关执行指标:

指标被分组并可以在左边可选的显示。 添加指标非常简单:

report.addMetric( "user.name", System.getProperty( "user.name" ))

将“用户名”指标添加到Base Metrics category类别,然后在主报表中显示为:

如果我们想把它们放在我们自己的类别之下; 让我们做:

report.addMetric( "System Properties", "user.name", System.getProperty( "user.name" ), null )

which gives us:

嗯...为什么不添加所有的? 脚本是:

for( name in System.properties.propertyNames() ) {    report.addMetric( "System Properties", name, System.getProperty( name ), null ) }

and the result:

(and on it went for another 5 pages...)

时间: 2024-10-27 14:07:36

SOAPUI中文教程---生成测试报告的相关文章

SOAPUI中文教程---转移属性

Property Transfer TestSteps用于在TestSteps和它们包含的TestCase,TestSuite和Project之间传递属性.它们在许多情况下非常有用,特别是当涉及包含XML的属性时,例如 从XML消息中提取值,例如来自SOAP Response的sessionID 将值写入XML消息,例如保存的sessionID或认证数据 在属性之间传输复杂的XML内容 1. The Property-Transfer Window 创建或双击现有的Property-Transf

SOAPUI中文教程---脚本和脚本库

SoapUI为脚本编写提供了广泛的选择,使用Groovy或Javascript(由SoupUI 3.0开发)作为脚本语言,使用哪些选项可在左下方的项目详细信息选项卡中设置项目级别. 这里提供的大部分文档将适用于Groovy语言,因为它可以大大简化Java API的脚本(您可以在Groovy网站上获取更多信息,教程等). 本文档将进一步介绍如何使用JavaScript的概述. 脚本可以在了SoapUI以下地方使用: Groovy Script TestStep 运行测试之前和之后运行一个TestC

SOAPUI中文教程---soapUI的模块对象

所有的东西都是ModelItems 在soapUI的所有与项目相关的物件(项目,请求,测试套件等)是ModelItems,其接口在com.eviware.soapui.model包和子包都定义(例如com.eviware.soapui.model.iface封装接口/操作/请求相关的类). modelItems的名称,描述,图标等等都可以通过相应的访问,例如 log.info project.name 将打印项目变量的名称. ModelItem的一般模型有如下(XX =子类型): int get

soapui中文教程---DataSink TestStep

The Data Sink是用来从测试中解析值,并将其存储在外部文件.这可以让你集中soapUI中测试中的不同部分的数据,并将它们输出到Excel文件,CSV,数据库等, Getting Started 我们将测试案例已经配置了一个DataSource循环.现在你可以添加一个DataSink step在例子中. 有很多种方法来创建一个DataSink测试步骤,您可以点击TestCase的概述页面上的DataSink图标图标.在导航窗口中的TestCase您也可以单击鼠标右键,单击添加步骤,然后选

SOAPUI中文教程---基于表单的身份验证

Web表单身份验证 某些Web服务需要基于表单的认证.为了能够使用API调用,您通常需要启动浏览器,在Web表单登录,然后建立会话session. Example: 这要求进行身份验证凭据的表单可能看起来像这样的形式 <form method="post" action="/login"> Username: <input type="text" name="username" required> Pa

soapui中文教程---DataGen TestStep

1. DataGen TestStep The DataGen TestStep可以用于生成要用作在输入TestCases的数据,例如数字或日期序列,随机选择等.所产生的数据可作为属性用,也可以像任何其他属性做属性转移和扩展. 通过创建一个空的TestCase并添加DataGen Step将其启动,你会看到下面的编辑器: 顶部的表将包含其公共设置所定义的DataGen属性,并且在表中选择一个显示在底部的相应配置面板的属性. 让我们通过创建一个属性开始;选择将打开下面的"添加..."对话

SOAPUI中文教程---数据驱动测试

在你想测试存储在文本或XML文件的一些测试实例包含不同的请求.做使用类型为"目录"的数据源驱动的测试数据. The step-by-step guide: 1. Create DataSource 由于数据驱动测试指南中,有从公开可用的CurrencyConverter WSDL(http://www.webservicex.com/CurrencyConvertor.asmx?wsdl)创建SoapUI项目,再加入一个TestSuite和一个TestCase,并打开其编辑器: 现在加

iOS App上架发布到app store市场最新中文教程

iOS -App发布Appstore最新中文教程 这个教程教你怎么把开发好的ios应用上架到appstore市场,一步一步带截图,包括最新的appstore后台系统itunesconnect使用,证书创建和管理,应用id创建和管理,上传ipa等都将一步一步详细介绍. 下面从七个步骤进行详细介绍! 1.创建唯一标示符App IDs 2.申请发布证书 3.申请发布描述文件 4.到iTunes Connect创建App并填写信息 5.Windows下选择证书编译打包 6.Windows下上传IPA到A

struts2官方 中文教程 系列十二:控制标签

介绍 struts2有一些控制语句的标签,本教程中我们将讨论如何使用 if 和iterator 标签.更多的控制标签可以参见 tags reference. 到此我们新建一个struts2 web 项目:struts_basic2 本帖地址:struts2官方 中文教程 系列十二:控制标签 即 http://www.cnblogs.com/linghaoxinpian/p/6941683.html 下载本章节代码 struts2 if标签 我们在thankyou.jsp中添加如下代码: <s:i