自動(dòng)化測試系統(tǒng)的一個(gè)常見要求是生成一份完整的報(bào)表,其中包含所有結(jié)果信息,可解答以下問題:“什么是序列測試?”和“每個(gè)待測設(shè)備(UUT)的測試結(jié)果是什么?”。
本文檔提供有關(guān)TestStand報(bào)表的信息,包括配置不同的報(bào)表格式,在報(bào)表中添加其他數(shù)據(jù),以及自定義報(bào)表。
內(nèi)容
· TestStand如何生成報(bào)表
· 自定義TestStand報(bào)表
· 結(jié)論
· 查閱TestStand高級(jí)架構(gòu)系列的其他章節(jié)
1 TestStand如何生成報(bào)表
在了解TestStand報(bào)表自定義提供的選項(xiàng)之前,請務(wù)必先了解TestStand報(bào)表的生成方式。
TestStand使用兩步方法來生成測試報(bào)表:
1. 結(jié)果收集:在執(zhí)行測試的同時(shí),TestStand會(huì)收集測試執(zhí)行期間的結(jié)果數(shù)據(jù)。這些整合結(jié)果可用于所有結(jié)果處理操作,包括報(bào)表生成和數(shù)據(jù)庫記錄。
2. 報(bào)表生成:TestStand報(bào)表生成器使用結(jié)果收集過程中所收集的數(shù)據(jù)來生成報(bào)表文件。
下圖為此過程的示意圖:

TestStand在ResultList變量中收集測試結(jié)果,報(bào)表生成器使用該變量創(chuàng)建可讀的測試報(bào)表
結(jié)果收集
TestStand執(zhí)行序列時(shí),會(huì)收集步驟結(jié)果和其他信息,以在報(bào)表中體現(xiàn)。結(jié)果收集直接由TestStand引擎實(shí)現(xiàn),并且獨(dú)立于結(jié)果處理(如報(bào)表生成或數(shù)據(jù)庫記錄)進(jìn)行。
Locals.ResultList屬性
序列使用所有新序列中自動(dòng)創(chuàng)建的Locals.ResultList來存儲(chǔ)結(jié)果數(shù)據(jù)。TestStand在序列執(zhí)行期間填充ResultList,并將其存儲(chǔ)在內(nèi)存(RAM)中。
ResultList局部變量最初是一個(gè)空的容器數(shù)組。執(zhí)行完每個(gè)步驟后,TestStand會(huì)在數(shù)組末尾附加一個(gè)新的容器元素,用來存儲(chǔ)已執(zhí)行步驟的結(jié)果,并使用以下兩個(gè)數(shù)據(jù)源來填充數(shù)據(jù):
· 自定義結(jié)果屬性:從已執(zhí)行步驟的Step.Result容器中獲取。
· 標(biāo)準(zhǔn)結(jié)果屬性:從TestStand引擎中獲取。
自定義結(jié)果屬性
ResultList中的某些數(shù)據(jù)是從步驟屬性中獲取的。 默認(rèn)狀態(tài)下,結(jié)果收集中僅包含步驟屬性“結(jié)果(Result)”容器中的屬性。例如,步驟結(jié)果容器中的兩個(gè)重要元素是:
· Result.Status:一個(gè)字符串元素,表示該步驟的測試結(jié)果。
· Result.Error:一種容器,用于存儲(chǔ)該步驟的錯(cuò)誤信息。
步驟屬性會(huì)因步驟類型而異,并且許多步驟屬性僅針對(duì)特定步驟類型存在。例如,Step.Result.Numeric屬性特定于“數(shù)值限度測試(Numeric Limit Test)”步驟類型。
標(biāo)準(zhǔn)結(jié)果屬性
除了將步驟屬性復(fù)制到ResultList之外,TestStand還會(huì)向每個(gè)步驟添加一組標(biāo)準(zhǔn)結(jié)果屬性。TestStand引擎將這些結(jié)果作為Step.Result.TS屬性的子屬性添加。 這些屬性包括該步驟的識(shí)別信息,如步驟名稱、類型和定時(shí)信息。
下圖顯示了如何使用步驟結(jié)果屬性和標(biāo)準(zhǔn)結(jié)果屬性來填充ResultList。

結(jié)果數(shù)據(jù)基于以下兩方面生成:取決于步驟類型的自定義結(jié)果屬性;所有步驟都相同的標(biāo)準(zhǔn)結(jié)果屬性
配置結(jié)果收集
在結(jié)果收集中添加其他屬性
您可以使用Execution.AddExtraResult方法向ResultList中添加某些步驟屬性。利用此方法,您可以指定屬性查找字符串(如“Step.myStepData”),并將該屬性納入具有該屬性的所有執(zhí)行步驟的結(jié)果列表中。 此外,也可以在ResultList中指定用于該屬性的名稱。
例如,過程模型調(diào)用Execution.AddExtraResult方法,以便在ResultList中添加Step.Limits和Step.Comp值。由于這些屬性不在Step.Result容器中,默認(rèn)狀態(tài)下不會(huì)收集此類屬性。由于此調(diào)用操作,這些屬性將被添加到執(zhí)行中包含這些屬性的所有步驟的ResultList中。

使用AddExtraResult向結(jié)果列表中添加其他步驟屬性
有關(guān)其他報(bào)表屬性的更多信息,請參閱TestStand幫助中的自定義結(jié)果屬性主題。
配置結(jié)果收集時(shí)間
TestStand結(jié)果收集與是否生成報(bào)表或數(shù)據(jù)庫記錄無關(guān)。 在某些情況下,如果不需要記錄結(jié)果,則可能要對(duì)某些步驟或序列禁用結(jié)果收集。 以下設(shè)置可用于控制記錄哪些結(jié)果:
· 禁用所有序列的結(jié)果記錄(Disable result recording for all sequences):位于測試站選項(xiàng)的“執(zhí)行(Execution)”選項(xiàng)卡中,此設(shè)置將完全禁用所有結(jié)果收集。 如果您未使用TestStand結(jié)果處理功能記錄任何數(shù)據(jù),請使用此設(shè)置。
· 禁用所有步驟的結(jié)果記錄(Disable result recording for all steps):位于“序列屬性(Sequence Properties)”中,此設(shè)置將禁用特定序列的結(jié)果記錄。
· 步驟結(jié)果記錄選項(xiàng)(Step Result Recording Option):位于“步驟(Step)”屬性窗格的“運(yùn)行選項(xiàng)(Run Options)”中,您可以使用此選項(xiàng)來禁用特定步驟的結(jié)果記錄。 默認(rèn)狀態(tài)下,上述“序列(Sequence)”設(shè)置將覆蓋此設(shè)置。但是,您可以選擇啟用(覆蓋序列設(shè)置)(Enabled (Override Sequence Setting))來記錄已禁用結(jié)果記錄的序列中某個(gè)步驟的結(jié)果。
如果顧慮測試系統(tǒng)性能或系統(tǒng)內(nèi)存使用情況,請考慮對(duì)頻繁執(zhí)行的步驟禁用結(jié)果記錄,以防止不必要的結(jié)果存儲(chǔ)。
報(bào)表生成
與作為TestStand引擎一部分的結(jié)果收集過程不同,報(bào)表生成器由TestStand過程模型通過報(bào)表生成插件來實(shí)現(xiàn)。有關(guān)實(shí)施報(bào)表生成器的詳細(xì)信息,請參閱《報(bào)表生成說明》一文。
報(bào)表生成器使用結(jié)果收集過程生成的ResultList變量中的結(jié)果數(shù)據(jù)(有關(guān)更多信息,請參閱本文檔的“結(jié)果收集”一節(jié))來生成報(bào)表。 本節(jié)概述了TestStand中的默認(rèn)報(bào)表生成器。
標(biāo)記要添加到報(bào)表中的數(shù)據(jù)
報(bào)表生成器使用ResultList中收集的結(jié)果屬性的屬性標(biāo)志,來確定這些屬性是否應(yīng)添加到報(bào)表中。利用屬性標(biāo)志,可配置PropertyObjects的行為,包括如何將其添加到測試報(bào)表中。
可以通過以下兩種方式之一來查看和配置PropertyObject的標(biāo)志:
1. 使用序列編輯器:右鍵單擊一個(gè)屬性,然后選擇高級(jí)(Advanced) ? 編輯標(biāo)志(Edit Flags),查看“編輯標(biāo)志(Edit Flags)”對(duì)話框。 “新標(biāo)志(New Flags)”字段會(huì)顯示當(dāng)前所有選定標(biāo)志的總和。
使用“編輯標(biāo)志(Edit Flags)”對(duì)話框來配置PropertyObject標(biāo)志
2. 使用TestStand API:PropertyObject.GetFlags和PropertyObject.SetFlags方法可分別用于獲取標(biāo)志狀態(tài)和設(shè)置標(biāo)志狀態(tài)。
每個(gè)標(biāo)志都有一個(gè)唯一值,并且屬性當(dāng)前的標(biāo)志狀態(tài)是所有標(biāo)志值的總和。 例如,啟用PropFlags_IsLimit(值:0x1000)標(biāo)志和PropFlags_IncludeInReport(值:0x2000)標(biāo)志的屬性,標(biāo)志值為0x3000。有關(guān)每個(gè)標(biāo)志的其他信息,請參閱PropertyFlags常量幫助主題。
報(bào)表生成器使用以下標(biāo)志來確定是否應(yīng)將收集的結(jié)果添加到報(bào)表中。 有關(guān)更多信息,請參閱影響報(bào)表的屬性標(biāo)志。
· PropFlags_IncludeInReport標(biāo)志表示報(bào)表中始終包含該屬性。
· PropFlags_IsLimit標(biāo)志或PropFlags_IsMeasurementValue標(biāo)志表示應(yīng)基于當(dāng)前的報(bào)表選項(xiàng)添加數(shù)據(jù)。
TestStand報(bào)表格式
TestStand提供了許多報(bào)表格式,每種格式都各有優(yōu)缺點(diǎn)。 報(bào)表生成器調(diào)用特定于格式的序列文件來生成報(bào)表文本(例如ReportGen_ATML.seq)。下表顯示了有關(guān)每種報(bào)表格式的更多信息。

1您可以使用報(bào)表文件進(jìn)行自動(dòng)報(bào)表分析,尤其是XML和ATML報(bào)表文件,但使用數(shù)據(jù)庫進(jìn)行自動(dòng)分析通常會(huì)更加有效。 請參閱數(shù)據(jù)庫記錄幫助主題,詳細(xì)了解數(shù)據(jù)庫記錄的TestStand功能。
從TestStand 2019版本開始,每種報(bào)告格式都可以生成PDF報(bào)告,但ASCII (.txt)除外。有關(guān)更多信息,請參見“ PDF報(bào)告生成”部分。
有關(guān)為您的應(yīng)用選擇最佳報(bào)表生成策略的更多詳細(xì)信息,請參閱《選擇適當(dāng)?shù)腘I TestStand報(bào)表生成策略》。
即時(shí)生成報(bào)表
如果在“報(bào)表選項(xiàng)(Report Options)”對(duì)話框的“目錄(Contents)”選項(xiàng)卡上啟用“即時(shí)報(bào)表生成(On-The-Fly Reporting)”選項(xiàng),過程模型將在執(zhí)行的同時(shí)逐步生成報(bào)表,而不必等到UUT測試完成。使用即時(shí)報(bào)表生成時(shí),可以單擊“執(zhí)行(Execution)”窗口中的“報(bào)表(Report)”窗格,在執(zhí)行過程中查看報(bào)表。由于報(bào)表在測試執(zhí)行時(shí)更新,因此報(bào)表視圖會(huì)在執(zhí)行測試序列時(shí)定期更新,顯示新結(jié)果。
通常,對(duì)于歷時(shí)較久的測試,如果內(nèi)存使用和數(shù)據(jù)丟失防護(hù)的重要程度高于測試吞吐量,即時(shí)報(bào)表生成則是更好的選擇。

1要防止內(nèi)存增加,需要采用其他配置。請參閱《解決TestStand中報(bào)表生成的內(nèi)存問題》,詳細(xì)了解如何在報(bào)表生成過程中防止內(nèi)存增加。
2此問題在TestStand 2012及更高版本中已得到改善,這些版本提供了相關(guān)設(shè)置功能,可配置即時(shí)報(bào)表生成器重新生成報(bào)表的頻率。 有關(guān)這些設(shè)置的更多信息,請參閱高級(jí)結(jié)果處理設(shè)置對(duì)話框幫助主題。 默認(rèn)狀態(tài)下,TestStand 2012及更高版本會(huì)在收集了500個(gè)步驟結(jié)果之后或每執(zhí)行1.5秒之后(以先到者為準(zhǔn))生成并保留即時(shí)報(bào)表。 在TestStand 2010 SP1和之前的版本中,報(bào)表會(huì)在每個(gè)步驟之后重新生成。
異步報(bào)表生成
在TestStand 2012及更高版本中,報(bào)表生成器(和其他結(jié)果處理插件)可以異步執(zhí)行,提高測試吞吐量。 要配置此選項(xiàng),請選擇配置(Configure) ? 結(jié)果處理(Result Processing),然后選中顯示更多選項(xiàng)(Show More Options)復(fù)選框。 新線程列表示每個(gè)插件的當(dāng)前設(shè)置。
使用此功能時(shí),執(zhí)行程序可以立即開始測試下一個(gè)UUT,同時(shí)為當(dāng)前的UUT生成報(bào)表,如下圖所示。
注意:即時(shí)生成報(bào)表時(shí),異步報(bào)表生成則不可用。

異步結(jié)果處理可提高測試吞吐量的速度,因?yàn)橄聜€(gè)設(shè)備的測試可以立即開始
2 自定義TestStand報(bào)表
TestStand報(bào)表生成過程的自定義程度很高,您可以根據(jù)TestStand應(yīng)用程序的需求定制生成的報(bào)表。 自定義報(bào)表時(shí),請使用以下方法:
· 配置報(bào)表選項(xiàng),在不更改代碼的情況下進(jìn)行自定義。
· 使用內(nèi)置的TestStand功能,將其他數(shù)據(jù)記錄到報(bào)表中。
· 修改樣式表和/或覆蓋報(bào)表生成回調(diào),對(duì)報(bào)表外觀進(jìn)行更重要的更改。
使用“報(bào)表選項(xiàng)(Report Options)”對(duì)話框
借助通過“報(bào)表選項(xiàng)(Report Options)”對(duì)話框訪問的報(bào)表生成選項(xiàng),可以在不更改代碼的情況下自定義TestStand報(bào)表。要訪問TestStand 2012及更高版本中的對(duì)話框,請導(dǎo)航到配置(Configure) ? 結(jié)果處理(Result Processing)以啟動(dòng)“報(bào)表選項(xiàng)(Report Options)”對(duì)話框,然后選擇報(bào)表生成插件的設(shè)置圖標(biāo)。 在TestStand 2010 SP1及之前的版本中,請選擇配置(Configure) ? 報(bào)表選項(xiàng)(Report Options)。
您可以通過以下方式使用報(bào)表選項(xiàng)對(duì)話框來配置報(bào)表:
· 更改報(bào)表的格式
· 篩選報(bào)表以添加特定類型的步驟結(jié)果
· 配置報(bào)表的外觀
· 啟用即時(shí)報(bào)表生成
以下各節(jié)詳細(xì)介紹了每種配置類型。

“報(bào)表選項(xiàng)(Report Options)”對(duì)話框 –“目錄(Content)”選項(xiàng)卡
報(bào)表格式
利用“報(bào)表選項(xiàng)(Report Options)”對(duì)話框,可選擇報(bào)表的格式。 有關(guān)可用報(bào)表格式的更多信息,請參閱本文檔報(bào)表生成部分的“報(bào)表格式”一節(jié)。 某些報(bào)表選項(xiàng)僅適用于特定的報(bào)表格式。
ASCII和HTML特定報(bào)表選項(xiàng)
ASCII和HTML報(bào)表可以通過以下兩種方式之一生成:
· 使用序列(Using sequences):報(bào)表由ReportGen_txt.seq或ReportGen_html.seq序列文件中的序列生成。利用此方法,您可以通過修改或覆蓋報(bào)表生成序列,更輕松地自定義報(bào)表生成器,但執(zhí)行速度較慢。如果您計(jì)劃自定義報(bào)表生成器,則建議使用此選項(xiàng)。
· 使用DLL (Using a DLL):報(bào)表使用modelsupport2.dll生成,性能更快,但自定義更困難。 如果您計(jì)劃使用需要很少或不需要自定義的默認(rèn)報(bào)表生成器,則建議使用此選項(xiàng)。
XML和ATML特定報(bào)表選項(xiàng)
與HTML報(bào)表不同,XML和ATML報(bào)表不包含任何格式信息。為了在可讀報(bào)表中呈現(xiàn)XML格式的原始數(shù)據(jù),需要使用XSL樣式表。 該樣式表定義了報(bào)表的樣式,并從XML文件中提取數(shù)據(jù)。 使用樣式表,您可以更改報(bào)表的外觀,而無需對(duì)XML數(shù)據(jù)文件進(jìn)行任何修改。例如,下圖顯示了使用TestStand提供的兩個(gè)不同樣式表的同一XML報(bào)表示例。
TestStand提供了多種樣式表,可用于以不同方式顯示XML和ATML報(bào)表數(shù)據(jù),您可以在“報(bào)表選項(xiàng)(Report Options)”對(duì)話框中具體指定。您還可以創(chuàng)建自定義樣式表以配合使用TestStand報(bào)表。 有關(guān)樣式表自定義的更多信息和示例,請參閱《自定義TestStand XML和ATML報(bào)表的格式和外觀》一文。

使用水平樣式表的“ATML報(bào)表”部分
篩選結(jié)果
您可以選擇在“報(bào)表選項(xiàng)(Report Options)”對(duì)話框中篩選特定步驟結(jié)果類型的信息,例如:
· 測試限度值
· 測試測量值
· 代碼模塊執(zhí)行次數(shù)
此外,您還可以使用結(jié)果篩選表達(dá)式來創(chuàng)建自定義篩選條件。TestStand會(huì)針對(duì)每個(gè)步驟結(jié)果對(duì)該表達(dá)式進(jìn)行求值,如果表達(dá)式求值為True,會(huì)在報(bào)表中添加該步驟。使用“結(jié)果篩選(Result Filtering)”下拉列表輸入控件選擇常用表達(dá)式,如排除流控制步驟(如下圖所示)。
注意:如果使用XML格式,或者結(jié)合使用ATML格式與TestStand 2010 SP1或更早版本,則結(jié)果篩選表達(dá)式不可用。 在這些情況下,您可以通過修改報(bào)表樣式表來篩選結(jié)果。

更改報(bào)表外觀
報(bào)表選項(xiàng)對(duì)話框提供相關(guān)設(shè)置,用于自定義報(bào)表外觀,包括:
· 報(bào)表顏色(Report Colors):您可以更改各種屬性相關(guān)的顏色(不適用于ASCII報(bào)表)。
· 默認(rèn)數(shù)值格式(Default Numeric Format):配置數(shù)值數(shù)據(jù)如何在報(bào)表中顯示。
· 數(shù)組數(shù)據(jù)格式(Array Data Format):選擇是在報(bào)表中以表格、圖表形式添加數(shù)組,還是將其完全省略。
注意:TestStand報(bào)表使用ActiveX控件將數(shù)組數(shù)據(jù)生成圖表。 如果在查看報(bào)表時(shí)此控件不可用,數(shù)據(jù)仍將以表格形式顯示。
配置報(bào)表文件路徑名
在“報(bào)表選項(xiàng)(Report Options)”對(duì)話框的報(bào)表文件路徑名(Report File Pathname)選項(xiàng)卡上,您可以配置報(bào)表文件的名稱及其存儲(chǔ)路徑。 使用“文件/目錄(File/Directory)”選項(xiàng)來選擇存儲(chǔ)報(bào)表的位置,然后根據(jù)您選擇的選項(xiàng)使用“UUT報(bào)表(UUT Report)”字段來預(yù)覽報(bào)表文件名。


通過選擇“文件/目錄選項(xiàng)(File/Directory Options)”控件中的按表達(dá)式指定報(bào)表文件路徑(Specify Report File Path by expression)選項(xiàng),進(jìn)一步控制報(bào)表文件的名稱和路徑。 可以使用此設(shè)置來創(chuàng)建一個(gè)表達(dá)式,TestStand會(huì)對(duì)表達(dá)式進(jìn)行求值,從而確定報(bào)表的存儲(chǔ)位置。此表達(dá)式可以包括預(yù)定義宏,可在“報(bào)表文件路徑(Report File Path)”控件的“菜單(Menu)”中訪問。
注意:在配置報(bào)表表達(dá)式時(shí),請使用“已評(píng)估報(bào)表文件路徑(evaluated Report File Path)”字段和預(yù)覽圖像來查看當(dāng)前表達(dá)式的行為。
根據(jù)UUT結(jié)果對(duì)報(bào)表文件進(jìn)行排序
您可以使用報(bào)表文件路徑表達(dá)式中的UUTStatus宏,為成功報(bào)表和失敗報(bào)表創(chuàng)建單獨(dú)的文件位置。 例如,您可以在自己的文件路徑中使用此宏,為成功報(bào)表和失敗報(bào)表創(chuàng)建不同的位置。當(dāng)使用此宏時(shí),TestStand會(huì)在測試執(zhí)行完成后,重新對(duì)報(bào)表文件路徑表達(dá)式求值,因?yàn)樵诖酥?,UUT狀態(tài)是未知的。

根據(jù)UUT結(jié)果配置其他報(bào)表文件路徑名
對(duì)于使用批處理模型的測試,您可以進(jìn)一步配置批處理和批處理中各個(gè)UUT的報(bào)表文件路徑行為。 要訪問這些設(shè)置,請?jiān)凇澳P皖愋?Type of Model)”字段中選擇批處理。 例如,您可以使用每個(gè)批處理設(shè)置的新UUT報(bào)表(New UUT Report)為每個(gè)批處理創(chuàng)建單獨(dú)的報(bào)表文件。 有關(guān)所有可用設(shè)置的更多信息,請參閱“報(bào)表選項(xiàng)(Report Options)”對(duì)話框幫助主題。
有關(guān)向報(bào)表添加自定義數(shù)據(jù)的功能
在許多情況下,除TestStand默認(rèn)記錄的結(jié)果之外,測試應(yīng)用程序還需要您在報(bào)表中記錄其他數(shù)據(jù)。為了滿足此需求,TestStand提供了多種內(nèi)置功能,可輕松將自定義數(shù)據(jù)記錄到報(bào)表中:
· 參數(shù)記錄
· 其他結(jié)果
· ReportText屬性
· 配置自定義步驟類型的報(bào)表數(shù)據(jù)
以下各節(jié)詳細(xì)介紹了這些功能。
參數(shù)記錄
配置代碼模塊參數(shù)時(shí),選擇模塊(Module)選項(xiàng)卡中的記錄(Log)框,可以輕松記錄測試步驟的參數(shù)數(shù)據(jù),如下所示。啟用此復(fù)選框?qū)⑴渲眠x定的參數(shù),使其自動(dòng)顯示在“報(bào)表(Reports)”或“數(shù)據(jù)庫記錄(Database Logs)”中,無需進(jìn)一步配置。

代碼模塊 - 啟用記錄復(fù)選框
其他結(jié)果
您可以使用“步驟設(shè)置(Step Settings)”窗格中“屬性(Properties)”選項(xiàng)卡的“其他結(jié)果(Additional Results)”面板,添加任意步驟結(jié)果的其他自定義數(shù)據(jù)。

配置其他結(jié)果
TestStand提供了一些預(yù)配置的其他結(jié)果來記錄通用屬性,如步驟注釋和需求信息。 要訪問這些預(yù)配置的結(jié)果,請選擇從列表添加結(jié)果(Add Result From List)按鈕,然后從列表中選擇一個(gè)項(xiàng)目。您還可以為每個(gè)其他結(jié)果條目指定條件表達(dá)式。 僅當(dāng)表達(dá)式求值為True時(shí),才會(huì)記錄結(jié)果。
有關(guān)其他結(jié)果設(shè)置的更多信息,請參閱TestStand幫助中的“其他結(jié)果編輯(Additional Results Edit)”選項(xiàng)卡主題。
使用Result.ReportText
Result.ReportText是“結(jié)果(Result)”容器中的附加字符串元素,用于存儲(chǔ)步驟的自定義信息。如果字符串不為空,報(bào)表生成器會(huì)將ReportText字符串作為字段添加到報(bào)表中。ReportText字段支持所有報(bào)表格式(除ASCII以外)的HTML標(biāo)簽,因此您可以使用此字段添加富文本元素,如相關(guān)的圖像或超鏈接。
如需了解如何將圖片插入到報(bào)告中,請查看“如何在TestStand報(bào)告中插入圖片”部分。
下圖顯示了在ReportText屬性中使用HTML將圖像嵌入步驟結(jié)果中的示例。

在Result.ReportText中顯示圖像的報(bào)表
向報(bào)表中添加自定義步驟類型屬性
使用TestStand,您可以創(chuàng)建自己的自定義步驟類型以實(shí)現(xiàn)特定功能。在這種情況下,通常需要將自定義步驟類型數(shù)據(jù)記錄到報(bào)表中。
注意:如果您不熟悉TestStand中的自定義步驟類型,請?jiān)陂喿x本節(jié)之前參閱《自定義步驟類型開發(fā)的最佳實(shí)踐》一文,以獲得更多信息。
若要?jiǎng)?chuàng)建報(bào)表中即將顯示的自定義步驟屬性,請按照下列步驟操作:
1. 在“類型(Types)”窗格中,將自定義屬性添加到該步驟的“結(jié)果(Result)”容器中。 執(zhí)行此操作,可確保通過結(jié)果收集過程向ResultList中添加該屬性。
2. 啟用屬性的IncludeInReport標(biāo)志,以便報(bào)表生成器將數(shù)據(jù)添加到報(bào)表中:
· 右鍵單擊該屬性,然后選擇屬性(Properties)...
· 單擊“高級(jí)(Advanced)”按鈕,然后選擇標(biāo)志(Flags)...
· 選中IncludeInReport選項(xiàng),然后單擊兩個(gè)對(duì)話框的確定(OK)

覆蓋報(bào)表回調(diào)
此過程模型提供了許多回調(diào),您可以覆蓋這些回調(diào)以更改特定客戶端序列文件的模型功能。 該機(jī)制對(duì)于自定義報(bào)表生成器也很有用。 本節(jié)介紹了以下常見的自定義方法:
· 以編程方式設(shè)置報(bào)表選項(xiàng)
· 向報(bào)表中添加其他UUT和測試站數(shù)據(jù)
· 直接自定義報(bào)表生成器
注意:如果您不熟悉過程模型回調(diào),請?jiān)诶^續(xù)學(xué)習(xí)本節(jié)之前參閱使用回調(diào)序列修改過程模型幫助主題。
以編程方式設(shè)置報(bào)表選項(xiàng)
除了使用“報(bào)表選項(xiàng)(Report Options)”對(duì)話框外,您還可以通過覆蓋測試序列中的ReportOptions回調(diào),以編程方式設(shè)置報(bào)表選項(xiàng)。 要覆蓋序列文件中的回調(diào),請按照下列步驟操作:
1. 在序列窗格中右鍵單擊,然后選擇序列文件回調(diào)(Sequence File Callbacks)...
2. 選擇ReportOptions回調(diào),然后單擊添加(Add)。
3. 單擊確定(OK)關(guān)閉對(duì)話框。 請注意,新的ReportOptions序列已創(chuàng)建,如下所示。

執(zhí)行序列時(shí),過程模型將在加載報(bào)表選項(xiàng)對(duì)話框中設(shè)置的當(dāng)前報(bào)表選項(xiàng)后立即調(diào)用此回調(diào)序列。 Parameters.ReportOptions變量中包含了當(dāng)前報(bào)表選項(xiàng)。 您可以修改這些屬性的值以更改當(dāng)前執(zhí)行的報(bào)表選項(xiàng)。 這些選項(xiàng)不會(huì)影響“報(bào)表選項(xiàng)(Report Options)”對(duì)話框中的設(shè)置或任何其他執(zhí)行的設(shè)置。例如,要為序列文件啟用即時(shí)報(bào)表生成,您可以使用以下表達(dá)式創(chuàng)建一個(gè)聲明步驟:
Parameters.ReportOptions.UseonTheFlyReporting =True
將其他UUT和測試站數(shù)據(jù)記錄到報(bào)表頁眉中(TestStand 2013及更高版本)
測試應(yīng)用程序可能需要您提供有關(guān)UUT的其他識(shí)別信息,如制造商所在地。 有關(guān)UUT和測試站的數(shù)據(jù)由過程模型存儲(chǔ)在Parameters.UUT和Parameters.ModelData.StationInfo變量中。 您創(chuàng)建的大多數(shù)模型回調(diào)都會(huì)將這些屬性作為參數(shù)包含在內(nèi),從而允許您在回調(diào)中訪問此數(shù)據(jù)。在TestStand 2013及更高版本中,UUT和StationInfo屬性包含非結(jié)構(gòu)化容器AdditionalData子屬性。 您可以在運(yùn)行時(shí)向此屬性中添加數(shù)據(jù),而無需對(duì)UUT和StationInfo數(shù)據(jù)類型進(jìn)行任何更改。
要使用AdditionalData容器以編程方式向頁眉添加自定義UUT數(shù)據(jù),請按照下列步驟操作:
1. 覆蓋客戶端序列文件中的PreUUT回調(diào)。 請注意,新的回調(diào)序列包含Parameters.UUT屬性
2. 添加一個(gè)聲明步驟,在Parameters.UUT.AdditionalData容器中動(dòng)態(tài)添加屬性。例如,此表達(dá)式創(chuàng)建兩個(gè)字符串?dāng)?shù)據(jù)子屬性:
Parameters.UUT.AdditionalData.SetValString("Manufacturer.Name",1,"National Instruments"),
Parameters.UUT.AdditionalData.SetValString("Manufacturer.Location",1,"Debrecen, Hungary"),
注意:1使用SetValString方法,因?yàn)镻ropertyOption會(huì)創(chuàng)建一個(gè)屬性(如果該屬性不存在)
3. 添加一個(gè)聲明步驟,為AdditionalData屬性設(shè)置IncludeInReport標(biāo)志,以便將所有子屬性添加到報(bào)表中:
Parameters.UUT.AdditionalData.SetFlags("",0,PropFlags_IncludeInReport)
以下報(bào)表在AdditionalData容器中添加了自定義數(shù)據(jù)。 添加自定義測試站數(shù)據(jù)的過程類似,但是使用的是Parameters.ModelData.StationInfo屬性,而不是Parameters.UUT。

使用UUT.AdditionalData容器向報(bào)表頁眉添加制造商信息
注意:此外,您可以在編輯時(shí)手動(dòng)向過程模型入口點(diǎn)的Locals.UUT或Locals.ModelData.StationInfo容器添加數(shù)據(jù)和啟用IncludeInReport標(biāo)志,為所有客戶端序列文件添加UUT或測試站數(shù)據(jù)。
直接自定義報(bào)表生成器功能(HTML和ASCII格式)
報(bào)表生成器定義了許多可以在客戶端序列文件中覆蓋的回調(diào)。這些回調(diào)中的每一個(gè)都會(huì)在相應(yīng)的報(bào)表文本生成后執(zhí)行,并且您可以修改報(bào)表生成器的默認(rèn)輸出。 僅當(dāng)上述方法均不可行時(shí),才應(yīng)使用這些回調(diào)來添加自定義數(shù)據(jù)。
僅當(dāng)在“報(bào)表選項(xiàng)(Report Option)”對(duì)話框的“目錄(Contents)”選項(xiàng)卡上啟用“選擇用于生成報(bào)表正文的報(bào)表生成器(Select a Report Generator for Producing the Report Body)”選項(xiàng)的“序列(Sequence)”選項(xiàng)時(shí),才執(zhí)行這些回調(diào)。 此選項(xiàng)可用于HTML和ASCII報(bào)表。
· ModifyReportHeader: 報(bào)表生成器結(jié)果處理組件從其Post序列中調(diào)用此回調(diào),對(duì)其進(jìn)行覆蓋,以修改報(bào)表頁眉。 Parameters.ReportHeader屬性包含默認(rèn)的報(bào)表頁眉。
· ModifyReportEntry: 報(bào)表生成器結(jié)果處理組件從其Post序列中為ResultList中的每個(gè)結(jié)果調(diào)用此回調(diào),對(duì)其進(jìn)行覆蓋,以修改為每個(gè)結(jié)果生成的報(bào)表部分。Parameters.ReportEntry屬性包含為當(dāng)前ResultList條目生成的報(bào)表數(shù)據(jù)。
· ModifyReportFooter:報(bào)表生成器結(jié)果處理組件從其Post序列中調(diào)用此回調(diào),對(duì)其進(jìn)行覆蓋,以修改報(bào)表頁腳。Parameters.ReportFooter屬性包含默認(rèn)的報(bào)表頁眉。
配置報(bào)表的外觀
自定義報(bào)表外觀的方法與報(bào)表格式密切相關(guān)。 對(duì)于ASCII和HTML報(bào)表,外觀信息和報(bào)表數(shù)據(jù)緊密結(jié)合。 因此,更改報(bào)表的外觀需要直接修改報(bào)表生成器代碼,這需要對(duì)報(bào)表生成器有大概的了解,本文檔對(duì)這部分內(nèi)容不做介紹。 有關(guān)實(shí)施報(bào)表生成器的更多信息,請參閱《報(bào)表生成說明》一文。
如本文檔“報(bào)表選項(xiàng)”部分所述,XML和ATML報(bào)表使用樣式表通過原始報(bào)表數(shù)據(jù)生成可讀報(bào)表。 您可以通過編輯樣式表來自定義這些報(bào)表的外觀,而無需修改報(bào)表生成器本身。 有關(guān)樣式表自定義的更多信息和示例,請參閱《自定義TestStand XML和ATML報(bào)表的格式和外觀》一文。
3 結(jié)論
在TestStand中自定義報(bào)表是一項(xiàng)常見的任務(wù),TestStand提供了許多功能來自定義報(bào)表的內(nèi)容、功能和樣式。請參見以下流程圖,幫助您確定如何實(shí)施自定義報(bào)表。

“選擇正確的技術(shù)以自定義報(bào)表”的流程圖 “選擇正確的技術(shù)以自定義報(bào)表”的流程圖





廣告






















































