Word 报告模板

关于模板

使用 Word 报告模板创建自定义报告。该模板使用 Word 合并字段获取所需数据。该模板专为 docx 文件设计,不支持 doc。下面介绍一些入门技巧:
  • 要在 Microsoft Word 中插入合并字段,请单击插入 > 快速部件 > 字段 > 合并字段或单击 Ctrl+F9
  • 要编辑合并字段,请右键单击字段,然后选择编辑字段
  • 除了合并字段以外,您还能在报告中混合和匹配标准文本。
  • 合并字段采用以下形式:« value »

常规报告信息

下面是您可能要在报告标题中使用的数据:

字段 说明
${report.name} 报告的名称。
${report.projectName} 在其中执行报告的项目的名称。
${report.description} 报告的说明。
${report.executedBy} 执行报告的用户的登录名。
${report.generatedOn} 执行报告的日期和时间。
${report.generatedOnWeek} 执行报告的周数。

访问数据

以下部分介绍如何访问和显示报告的不同数据。

按索引
«${rows[0].cols[3]}»
按名称
«${rows[0].ReqName}»
在列表中
典型的使用案例可能是循环访问每行并显示每行的列信息。要获取数据列表,请执行以下操作:
«[#list rows as r]»
«${r.TestDefID}» - «${r.TestName}»
«[/#list]»

循环的开始由 [#list rows as r] 定义,而其结束由 [/#list] 定义。循环中的行数据使用 r 进行引用,这使您能够通过使用 ${r.TestName} 进行引用来获取循环中的 Test Name

上面的示例将循环访问所有行,并且呈现的报告将显示测试列表以及测试 ID 和名称。

在表中
在表行中定义循环开始和结束需要其他命令才能在表中继续迭代。您必须将循环的 list 命令放置在表中第一列并以 @before-row 开头。您需要使用 @after-row 完成列表。下表显示如何执行此操作。
«${headers[3]}»|«${headers[3].@name}» «${headers[4]}»|«${headers[4].@index}»
«@before-row[#list rows as r]»«${r.ReqName}»«@after-row[/#list]» «${r.ReqDescription.@html}»
标题和 HTML
  • 数据的标题可使用名为 headers 的合并字段进行访问。
  • 标题可通过附加 .@elementName.@name.@index 以不同方式显示。
  • 部分 Silk Central 数据(如许多说明字段)存储为 HTML。如果要根据标记显示 HTML 编码文本,请附加属性 .@html。如果不添加此属性,您仍然可以看到文本,但它将包含 HTML 标记。例如:如果源数据是<b>我的报告说明</b>,并且使用 .@html,您将看到我的报告说明。否则,您将看到:<b>我的报告说明</b>。支持的 HTML 标记如下:<b>, <strong>, <i>, <u>, <br>, <p>, and <a>
子报告
可以用关键字 sub 来访问子报告。附加您要访问的子报告的编号,例如 sub1sub2 等。
示例:如果 ProjectID 位于主报告的第一列,那么使用 «${rows[0].ProjectID}» 来引用。如果 TestID 位于第一个子报告的第一列,那么使用 «${sub1.rows[0].TestID}» 来引用。循环访问第一个子报告的所有行,并显示 TestID 列及第二列:
«[#list sub1.rows as sr]» 
  «${sr.TestID}» «${sr.cols[1]}»
«[/#list]» 

疑难解答

我的报告为什么显示数据错误?
您是否按索引引用列?如果是,请注意第一列使用索引 0 而非 1 进行引用。
下载我的报告时,我为何收到提及特定字段的错误?我并未在我的模板中看到此字段?

您可能已更改字段的标签,但邮件合并引用仍然是其原始值。例如,您可能收到错误消息,表明字段 ${r.requirementName} 不存在。在您的文档中,您看到了字段 ${r.reqName}。当您右键单击此字段并选择编辑字段时,您将看到引用仍然是 ${r.requirementName}。请不要忘记通过编辑字段更改邮件合并字段。

示例报告

以下示例 Word 报告显示具有包含步骤的手动测试的报告。

注: 您不能按原样复制和粘贴此实例。其目的是向您展示将报告代码用于报告中各部分的不同方法。以下示例在报告模板中包括为 ManualTestResults.docx
Report generated: «${report.generatedOn}» «${report.generatedOnWeek}»
«${report.name}»

Project Name          «${report.projectName}»
Report Description    «${report.description}»
Report Executed By    «${report.executedBy}»

«[#list rows as r]»«[#assign firstRow=(r_index==0 || rows[r_index-1].ManualTestDefID != r.ManualTestDefID)]»«[#if firstRow]»

«${r.TestDefinitionName}»
«${r.TestDefinitionDescription.@html}»

Status: «${r.StatusName}» 

Planned Time [hh:mm]: «[#if r.PlannedTime!="null"]»«${r.PlannedTime}»«[#else]»00:00«[/#if]»
Used Time [hh:mm]: «[#if r.UsedTime!="null"]»«${r.UsedTime}»«[#else]»00:00«[/#if]»
Build: «${r.BuildName}»
Version: «${r.VersionName}»
Execution Plan: «${r.ExecDefName}»
Changed By: «${r.ChangedBy.@text}»
Changed On: «${r.ChangedAt.@text}»

«[/#if]»«[#if r.StepName != "null"]»«[#if firstRow]» Test Step Details:«[/#if]»
Step Name: «${r.StepName}»
Description: «${r.StepDescr.@html}»
Status: «${r.StepStatus}»
Result Info: «${r.StepResultInfo.@html}» 
Expected Result: «${r.ExpectedResult.@html}» 
«[/#if]»«[/#list]»