TestStand​ 報告​生成​和​自​定義【5】


概覽

自動​化​測試​系統​的​一個​常見​要求​是​生成​一份​完整​的​報表,​其中​包含​所有​結果​信息,​可​解答​以下​問題:“什么​是​序列​測試?”和“每​個​待​測​設備​(UUT)​的​測試​結果​是​什么?”。

本文​檔​提供​有關​TestStand​報表​的​信息,​包括​配置​不同​的​報表​格式,​在​報表​中​添加​其他​數據,​以及​自​定義​報表。

內容

  • TestStand​如何​生成​報表
  • 自​定義​TestStand​報表
  • 結論​

TestStand​如何​生成​報表

在​了解​TestStand​報表​自​定義​提供​的​選項​之前,​請​務必​先​了解​TestStand​報表​的​生成​方式。

TestStand​使用​兩​步​方法​來​生成​測試​報表:

  1. 結果​收集:在​執行​測試​的​同時,​TestStand​會​收集​測試​執行​期間​的​結果​數據。​這些​整合​結果​可​用於​所有​結果​處理​操作,​包括​報表​生成​和​數據​庫​記錄。
  2. 報表​生成:TestStand​報表​生成​器​使用​結果​收集​過程​中​所​收集​的​數據​來​生成​報表​文件。

下​圖​為此​過程​的​示意​圖:

TestStand​在​ResultList​變量​中​收集​測試​結果,​報表​生成​器​使用​該​變量​創建​可讀​的​測試​報表


​結果​收集

TestStand​執行​序列​時,​會​收集​步驟​結果​和​其他​信息,​以​在​報表​中​體現。​結果​收集​直接​由​TestStand​引擎​實現,​並且​獨立​於​結果​處理​(如​報表​生成​或​數據​庫​記錄)​進行。


​Locals.ResultList​屬性

序列​使用​所有​新​序列​中​自動​創建的Locals.ResultList來​存儲​結果​數據。​TestStand​在​序列​執行​期間​填充​ResultList,​並​將​其​存儲​在​內存​(RAM)​中。

ResultList​局部​變量​最初​是​一個​空​的​容器​數​組。​執行​完​每​個​步驟​后,​TestStand​會​在​數​組​末尾​附加​一個​新的​容器​元素,​用​來​存儲​已​執行​步驟​的​結果,​並​使用​以下​兩​個​數據​源​來​填充​數據:

  • 自​定義​結果​屬性:從​已​執行​步驟​的​Step.Result​容器​中​獲取。
  • 標准​結果​屬性:從​TestStand​引擎​中​獲取。


​自​定義​結果​屬性

ResultList​中的​某些​數據​是​從​步驟​屬性​中​獲取​的。 默認​狀態​下,​結果​收集​中​僅​包含​步驟​屬性“結果​(Result)”容器​中的​屬性。​例如,​步驟​結果​容器​中的​兩​個​重要​元素​是:

  • Result.Status:一個​字符​串​元素,​表示​該​步驟​的​測試​結果。
  • Result.Error:一種​容器,​用於​存儲​該​步驟​的​錯誤​信息。

步驟​屬性​會​因​步驟​類型​而​異,​並且​許多​步驟​屬性​僅​針對​特定​步驟​類型​存在。​例如,Step.Result.Numeric屬性​特定​於“數值​限度​測試​(Numeric Limit Test)”步驟​類型。


​標准​結果​屬性

除了​將​步驟​屬性​復制​到​ResultList​之外,​TestStand​還​會​向​每​個​步驟​添加​一組標准​結果​屬性。​TestStand​引擎​將​這些​結果​作為Step.Result.TS屬性​的​子​屬性​添加。 這些​屬性​包括​該​步驟​的​識別​信息,​如​步驟​名稱、​類型​和​定​時​信息。

下​圖​顯示​了​如何​使用​步驟​結果​屬性​和​標准​結果​屬性​來​填充​ResultList。

結果​數據​基於​以下​兩​方面​生成:​取決​於​步驟​類型​的​自​定義​結果​屬性;​所有​步驟​都​相同​的​標准​結果​屬性

 

配置​結果​收集

在​結果​收集​中​添加​其他​屬性

您​可以​使用Execution.AddExtraResult方法​向​ResultList​中​添加​某些​步驟​屬性。​利用​此​方法,​您​可以​指定​屬性​查找​字符​串​(如“Step.myStepData”),​並​將​該​屬性​納入​具有​該​屬性​的​所有​執行​步驟​的​結果​列表​中。 此外,​也可以​在​ResultList​中​指定​用於​該​屬性​的​名稱。

例如,​過程​模型​調​用​Execution.AddExtraResult​方法,​以便​在​ResultList​中​添加Step.Limits和Step.Comp值。​由於​這些​屬性​不在​Step.Result​容器​中,​默認​狀態​下​不會​收集​此類​屬性。​由於​此​調​用​操作,​這些​屬性​將​被​添加​到​執行​中​包含​這些​屬性​的​所有​步驟​的​ResultList​中。

使用​AddExtraResult​向​結果​列表​中​添加​其他​步驟​屬性

 

有關​其他​報表​屬性​的​更多​信息,​請​參閱​TestStand​幫助​中的自​定義​結果​屬性主題。


​配置​結果​收集​時間

TestStand​結果​收集​與​是否​生成​報表​或​數據​庫​記錄​無關。 在​某些​情況​下,​如果​不需要​記錄​結果,​則​可能​要​對​某些​步驟​或​序列​禁用​結果​收集。 以下​設置​可​用於​控制​記錄​哪些​結果:

  • 禁用​所有​序列​的​結果​記錄​(Disable result recording for all sequences):位於​測試​站​選項​的“執行​(Execution)”選項​卡​中,​此​設置​將​完全​禁用​所有​結果​收集。 如果​您​未​使用​TestStand​結果​處理​功能​記錄​任何​數據,​請​使用​此​設置。
  • 禁用​所有​步驟​的​結果​記錄​(Disable result recording for all steps):位於“序列​屬性​(Sequence Properties)”中,​此​設置​將​禁用​特定​序列​的​結果​記錄。
  • 步驟​結果​記錄​選項​(Step Result Recording Option):位於“步驟​(Step)”屬性​窗​格​的“運行​選項​(Run Options)”中,​您​可以​使用​此​選項​來​禁用​特定​步驟​的​結果​記錄。 默認​狀態​下,​上述“序列​(Sequence)”設置​將​覆蓋​此​設置。​但是,​您​可以​選擇啟用​(覆蓋​序列​設置)​(Enabled (Override Sequence Setting))來​記錄​已​禁用​結果​記錄​的​序列​中​某​個​步驟​的​結果。

如果​顧慮​測試​系統​性能​或​系統​內存​使用​情況,​請​考慮​對​頻繁​執行​的​步驟​禁用​結果​記錄,​以​防止​不必要​的​結果​存儲。

 

報表​生成

與​作為​TestStand​引擎​一部分​的​結果​收集​過程​不同,​報表​生成​器​由​TestStand​過程​模型​通過​報表​生成​插​件​來​實現。​有關​實施​報表​生成​器​的​詳細​信息,​請​參閱《報表​生成​說明》一文。

報表​生成​器​使用​結果​收集​過程​生成​的​ResultList​變量​中的​結果​數據​(有關​更多​信息,​請​參閱​本文​檔​的“結果​收集”一節)​來​生成​報表。 本​節​概述​了​TestStand​中的​默認​報表​生成​器。


​標記​要​添加​到​報表​中的​數據

報表​生成​器​使用​ResultList​中​收集​的​結果​屬性​的​屬性​標志,​來​確定​這些​屬性​是否​應​添加​到​報表​中。​利用​屬性​標志,​可​配置​PropertyObjects​的​行為,​包括​如何​將​其​添加​到​測試​報表​中。

可以​通過​以下​兩​種​方式​之一​來​查看​和​配置​PropertyObject​的​標志:

  1. 使用​序列​編輯​器:右​鍵​單擊​一個​屬性,​然后​選擇高級​(Advanced) » 編輯​標志​(Edit Flags),​查看“編輯​標志​(Edit Flags)”對話​框。 “新​標志​(New Flags)”字​段​會​顯示​當前​所有​選定​標志​的​總和。


​使用“編輯​標志​(Edit Flags)”對話​框​來​配置​PropertyObject​標志

  1. 使用​TestStand API:PropertyObject.GetFlags​和​PropertyObject.SetFlags​方法​可​分別​用於​獲取​標志​狀態​和​設置​標志​狀態。

每​個​標志​都有​一個​唯一​值,​並且​屬性​當前​的​標志​狀態​是​所有​標志​值​的​總和。 例如,​啟用PropFlags_IsLimit(值:​0x1000)​標志和PropFlags_IncludeInReport(值:​0x2000)​標志​的​屬性,​標志​值​為​0x3000。​有關​每​個​標志​的​其他​信息,​請​參閱PropertyFlags​常量幫助​主題。

報表​生成​器​使用​以下​標志​來​確定​是否​應​將​收集​的​結果​添加​到​報表​中。 有關​更多​信息,​請​參閱影響​報表​的​屬性​標志

  • PropFlags_IncludeInReport標志​表示​報表​中​始終​包含​該​屬性。
  • PropFlags_IsLimit標志或PropFlags_IsMeasurementValue標志​表示​應​基於​當前​的​報表​選項​添加​數據。


​TestStand​報表​格式

TestStand​提供​了​許多​報表​格式,​每​種​格式​都​各有​優​缺點。 報表​生成​器​調​用​特定​於​格式​的​序列​文件​來​生成​報表​文本​(例如​ReportGen_ATML.seq)。​下表​顯示​了​有關​每​種​報表​格式​的​更多​信息。

報表​格式 可讀性 文件​大小 性能 解析1 自​定義
ASCII (.txt)
基本​文本​報表​格式
基本 很小 最快 中等 - 需要​自​定義​解析​器,​但​格式​信息​受限
HTML (.html)
富​文本​報表​格式
富​文本 中等
XML (.xml)
使用​XSL​樣式​表​生成​富​文本​的​純​數據​文件​格式
富​文本 簡單 - 使用​標准​XML​架構,​可​使用​XML API​輕松​解析 中等 - 使用​樣式​表​自​定義​格式,​不​改變​過程​模型
ATML (.xml) - 自動​測試​標記​語言 富​文本 中等 快速 簡單 - 使用​標准​XML​架構,​可​使用​XML API​輕松​解析 中等 - 使用​樣式​表​自​定義​格式,​不​改變​過程​模型

1您​可以​使用​報表​文件​進行​自動​報表​分析,​尤其是​XML​和​ATML​報表​文件,​但​使用​數據​庫​進行​自動​分析​通常​會​更加​有效。 請​參閱數據​庫​記錄幫助​主題,​詳細​了解​數據​庫​記錄​的​TestStand​功能。


​有關​為​您​的​應用​選擇​最佳​報表​生成​策略​的​更多​詳細​信息,​請​參閱《選擇​適當的​NI TestStand​報表​生成​策略》


​即時​生成​報表

如果​在“報表​選項​(Report Options)”對話​框​的“目錄​(Contents)”選項​卡​上​啟用“即時​報表​生成​(On-​The-​Fly Reporting)”選項,​過程​模型​將​在​執行​的​同時​逐步​生成​報表,​而​不必​等到​UUT​測試​完成。​使用​即時​報表​生成​時,​可以​單擊“執行​(Execution)”窗口​中的“報表​(Report)”窗​格,​在​執行​過程​中​查看​報表。​由於​報表​在​測試​執行​時​更新,​因此​報表​視圖​會​在​執行​測試​序列​時​定期​更新,​顯示​新​結果。

通常,​對於​歷時​較​久​的​測試,​如果​內存​使用​和​數據​丟失​防護​的​重要​程度​高於​測試​吞吐量,​即時​報表​生成​則​是​更好​的​選擇。  

優點 缺點
  • 可在​運行​測試​時​查看​測試​結果
  • 如果​在​測試​過程​中​意外​關閉,​報表​文件​不會​丟失
  • 長​時間​運行​測試​時​不會​導致​內存​增加1
  • 在​某些​情況​下,​由於​測試​期間​產生​報表​生成​開銷,​可能​會​降低​測試​性能2
  • 報表​生成​器​的​自​定義​難度​較大

 


1要​防止​內存​增加,​需要​采用​其他​配置。​請​參閱《解決​TestStand​中​報表​生成​的​內存​問題》,​詳細​了解​如何​在​報表​生成​過程​中​防止​內存​增加。

2此​問題​在​TestStand 2012​及​更高​版本​中​已​得到​改善,​這些​版本​提供​了​相關​設置​功能,​可​配置​即時​報表​生成​器​重新​生成​報表​的​頻率。 有關​這些​設置​的​更多​信息,​請​參閱高級​結果​處理​設置​對話框幫助​主題。 默認​狀態​下,​TestStand 2012​及​更高​版本​會​在​收集​了​500​個​步驟​結果​之后​或​每​執行​1.5​秒​之后​(以​先到​者​為​准)​生成​並​保留​即時​報表。 在​TestStand 2010 SP1​和​之前​的​版本​中,​報表​會​在​每​個​步驟​之后​重新​生成。


​異步​報表​生成

在​TestStand 2012​及​更高​版本​中,​報表​生成​器​(和​其他​結果​處理​插​件)​可以​異步​執行,​提高​測試​吞吐量。 要​配置​此​選項,​請​選擇配置​(Configure) » 結果​處理​(Result Processing),​然后​選中顯示​更多​選項​(Show More Options)復​選​框。 新​線程列​表示​每​個​插​件​的​當前​設置。

使用​此​功能​時,​執行​程序​可以​立即​開始​測試​下​一個​UUT,​同時​為​當前​的​UUT​生成​報表,​如下​圖​所​示。

注意:即時​生成​報表​時,​異步​報表​生成​則​不可​用。

異步​結果​處理​可​提高​測試​吞吐量​的​速度,​因為​下​個​設備​的​測試​可以​立即​開始

 

自​定義​TestStand​報表

TestStand​報表​生成​過程​的​自​定義​程度​很高,​您​可以​根據​TestStand​應用​程序​的​需求​定制​生成​的​報表。 自​定義​報表​時,​請​使用​以下​方法:

  • 配置​報表​選項,​在​不​更改​代碼​的​情況​下​進行​自​定義。
  • 使用​內​置​的​TestStand​功能,​將​其他​數據​記錄​到​報表​中。
  • 修改​樣式​表​和/​或​覆蓋​報表​生成​回​調,​對​報表​外觀​進行​更​重要​的​更改。

使用“報表​選項​(Report Options)”對話框

借助​通過“報表​選項​(Report Options)”對話​框​訪問​的​報表​生成​選項,​可以​在​不​更改​代碼​的​情況​下​自​定義​TestStand​報表。​要​訪問​TestStand 2012​及​更高​版本​中的​對話​框,​請​導航到配置​(Configure) » 結果​處理​(Result Processing)以​啟動“報表​選項​(Report Options)”對話​框,​然后​選擇​報表​生成​插​件​的​設置​圖​標。 在​TestStand 2010 SP1​及​之前​的​版本​中,​請​選擇配置​(Configure) » 報表​選項​(Report Options)。

您​可以​通過​以下​方式​使用​報表​選項​對話​框​來​配置​報表:

  • 更改​報表​的​格式
  • 篩選​報表​以​添加​特定​類型​的​步驟​結果
  • 配置​報表​的​外觀
  • 啟用​即時​報表​生成


以下​各節​詳細​介紹​了​每​種​配置​類型。

“報表​選項​(Report Options)”對話​框 –“目錄​(Content)”選項卡


報表​格式

利用“報表​選項​(Report Options)”對話​框,​可​選擇​報表​的​格式。 有關​可用​報表​格式​的​更多​信息,​請​參閱​本文檔報表​生成​部分的“報表​格式”一節。 某些​報表​選項​僅​適用​於​特定​的​報表​格式。


ASCII​和​HTML​特定​報表​選項

ASCII​和​HTML​報表​可以​通過​以下​兩​種​方式​之一​生成:

  • 使用​序列​(Using sequences):報表由ReportGen_txt.seq或ReportGen_html.seq序列​文件​中的​序列​生成。​利用​此​方法,​您​可以​通過​修改​或​覆蓋​報表​生成​序列,​更​輕松​地​自​定義​報表​生成​器,​但​執行​速度​較​慢。​如果​您​計划​自​定義​報表​生成​器,​則​建議​使用​此​選項。
  • 使用​DLL (Using a DLL):報表​使用modelsupport2.dll生成,​性能​更​快,​但​自​定義​更​困難。 如果​您​計划​使用​需要​很少​或​不需要​自​定義​的​默認​報表​生成​器,​則​建議​使用​此​選項。
XML​和​ATML​特定​報表​選項

與​HTML​報表​不同,​XML​和​ATML​報表​不​包含​任何​格式​信息。​為了​在​可讀​報表​中​呈現​XML​格式​的​原始​數據,​需要​使用​XSL​樣式​表。 該​樣式​表​定義​了​報表​的​樣式,​並從​XML​文件​中​提取​數據。 使用​樣式​表,​您​可以​更改​報表​的​外觀,​而無​需​對​XML​數據​文件​進行​任何​修改。​例如,​下​圖​顯示​了​使用​TestStand​提供​的​兩​個​不同​樣式​表​的​同一​XML​報表​示例。

TestStand​提供​了​多種​樣式​表,​可​用於​以​不同​方式​顯示​XML​和​ATML​報表​數據,​您​可以​在“報表​選項​(Report Options)”對話​框​中​具體​指定。​您​還​可以​創建​自​定義​樣式​表​以​配合​使用​TestStand​報表。 有關​樣式​表​自​定義​的​更多​信息​和​示例,​請​參閱《自​定義​TestStand XML​和​ATML​報表​的​格式​和​外觀》一文。


使用​水平​樣式​表​的“ATML​報表”部分
 

使用​報表​樣式​表​的“ATML​報表”部分


篩選​結果

您​可以​選擇​在“報表​選項​(Report Options)”對話​框​中​篩選​特定​步驟​結果​類型​的​信息,​例如:

  • 測試​限度值
  • 測試​測量值
  • 代碼​模​塊​執行​次數

此外,​您​還​可以​使用​結果​篩選​表達​式​來​創建​自​定義​篩選​條件。​TestStand​會​針對​每​個​步驟​結果​對​該​表達​式​進行​求值,​如果​表達​式​求值​為​True,​會​在​報表​中​添加​該​步驟。​使用“結果​篩選​(Result Filtering)”下​拉​列表​輸入​控​件​選擇​常用​表達​式,​如​排除​流​控制​步驟​(如下​圖​所​示)。

注意:如果​使用​XML​格式,​或者​結合​使用​ATML​格式​與​TestStand 2010 SP1​或​更​早​版本,​則​結果​篩選​表達​式​不可​用。 在​這些​情況​下,​您​可以​通過​修改​報表​樣式​表​來​篩選​結果。

 

更改​報表​外觀

報表​選項​對話​框​提供​相關​設置,​用於​自​定義​報表​外觀,​包括:

  • 報表​顏色​(Report Colors):您​可以​更改​各種​屬性​相關​的​顏色​(不適​用於​ASCII​報表)。
  • 默認​數值​格式​(Default Numeric Format):配置​數值​數據​如何​在​報表​中​顯示。
  • 數​組​數據​格式​(Array Data Format):選擇​是在​報表​中​以​表格、​圖表​形式​添加​數​組,​還是​將​其​完全​省略。

注意:TestStand​報表​使用​ActiveX​控​件​將​數​組​數據​生成​圖表。 如果​在​查看​報表​時​此​控​件​不可​用,​數據​仍​將​以​表格​形式​顯示。


配置​報表​文件​路徑名

在“報表​選項​(Report Options)”對話​框的報表​文件​路徑​名​(Report File Pathname)選項​卡​上,​您​可以​配置​報表​文件​的​名稱​及其​存儲​路徑。 使用“文件/​目錄​(File/​Directory)”選項​來​選擇​存儲​報表​的​位置,​然后​根據​您​選擇​的​選項​使用“UUT​報表​(UUT Report)”字​段​來​預​覽​報表​文件​名。

通過​選擇“文件/​目錄​選項​(File/​Directory Options)”控​件​中的按​表達​式​指定​報表​文件​路徑​(Specify Report File Path by Expression)選項,​進一步​控制​報表​文件​的​名稱​和​路徑。 可以​使用​此​設置​來​創建​一個​表達​式,​TestStand​會對​表達​式​進行​求值,​從而​確定​報表​的​存儲​位置。​此​表達​式​可以​包括​預​定義​宏,​可在“報表​文件​路徑​(Report File Path)”控​件​的“菜單​(Menu)”中​訪問。

注意:在​配置​報表​表達​式​時,​請​使用“已​評估​報表​文件​路徑​(Evaluated Report File Path)”字​段​和​預​覽​圖像​來​查看​當前​表達​式​的​行為。

 

根據​UUT​結果​對​報表​文件​進行​排序

您​可以​使用​報表​文件​路徑​表達​式​中的UUTStatus宏,​為​成功​報表​和​失敗​報表​創建​單獨​的​文件​位置。 例如,​您​可以​在​自己​的​文件​路徑​中​使用​此​宏,​為​成功​報表​和​失敗​報表​創建​不同​的​位置。​當​使用​此​宏​時,​TestStand​會​在​測試​執行​完成后,​重新​對​報表​文件​路徑​表達​式​求值,​因為​在此​之前,​UUT​狀態​是​未知​的。

根據​UUT​結果​配置​其他​報表​文件​路徑名

對於​使用​批處理​模型​的​測試,​您​可以​進一步​配置​批處理​和​批處理​中​各個​UUT​的​報表​文件​路徑​行為。 要​訪問​這些​設置,​請在“模型​類型​(Type of Model)”字​段中​選擇​批處理。 例如,​您​可以​使用​每​個​批處理​設置的新​UUT​報表​(New UUT Report)為​每​個​批處理​創建​單獨​的​報表​文件。 有關​所有​可用​設置​的​更多​信息,​請​參閱“報表​選項​(Report Options)”對話框幫助​主題。

有關​向​報表​添加​自​定義​數據​的​功能

在​許多​情況​下,​除​TestStand​默認​記錄​的​結果​之外,​測試​應用​程序​還​需要​您​在​報表​中​記錄​其他​數據。​為了​滿足​此​需求,​TestStand​提供​了​多種​內​置​功能,​可​輕松​將​自​定義​數據​記錄​到​報表​中:

  • 參數​記錄
  • 其他​結果
  • ReportText​屬性
  • 配置​自​定義​步驟​類型​的​報表​數據

以下​各節​詳細​介紹​了​這些​功能。


參數​記錄

配置​代碼​模​塊​參數​時,​選擇模​塊​(Module)選項​卡​中的記錄​(Log)框,​可以​輕松​記錄​測試​步驟​的​參數​數據,​如下所示。​啟用​此​復​選​框​將​配置​選定​的​參數,​使​其​自動​顯示​在“報表​(Reports)”或“數據​庫​記錄​(Database Logs)”中,​無​需​進一步​配置。


代碼​模​塊 - 啟用​記錄​復​選框


其他​結果


您​可以​使用“步驟​設置​(Step Settings)”窗​格​中“屬性​(Properties)”選項​卡​的“其他​結果​(Additional Results)”面板,​添加​任意​步驟​結果​的​其他​自​定義​數據。

配置​其他​結果


TestStand​提供​了​一些​預​配置​的​其他​結果​來​記錄​通用​屬性,​如​步驟​注釋​和​需求​信息。 要​訪問​這些​預​配置​的​結果,​請​選擇從​列表​添加​結果​(Add Result From List)按鈕,​然后​從​列表​中​選擇​一個​項目。​您​還​可以​為​每​個​其他​結果​條目​指定​條件​表達​式。 僅​當​表達​式​求值​為​True​時,​才​會​記錄​結果。


有關​其他​結果​設置​的​更多​信息,​請​參閱​TestStand​幫助​中的“其他​結果​編輯​(Additional Results Edit)”選項卡主題。


使用​Result.ReportText

Result.ReportText是“結果​(Result)”容器​中的​附加​字符​串​元素,​用於​存儲​步驟​的​自​定義​信息。​如果​字符​串​不為​空,​報表​生成​器​會​將​ReportText​字符​串​作為​字​段​添加​到​報表​中。​ReportText​字​段​支持​所有​報表​格式​(除​ASCII​以外)​的​HTML​標簽,​因此​您​可以​使用​此​字​段​添加​富​文本​元素,​如​相關​的​圖像​或​超​鏈​接。

下​圖​顯示​了​在​ReportText​屬性​中​使用​HTML​將​圖像​嵌入​步驟​結果​中的​示例。

在​Result.ReportText​中​顯示​圖像​的​報表


向​報表​中​添加​自​定義​步驟​類型​屬性

使用​TestStand,​您​可以​創建​自己​的​自​定義​步驟​類型​以​實現​特定​功能。​在​這種​情況​下,​通常​需要​將​自​定義​步驟​類型​數據​記錄​到​報表​中。

注意:如果​您​不​熟悉​TestStand​中的​自​定義​步驟​類型,​請在​閱讀​本​節​之前​參閱《自​定義​步驟​類型​開發​的​最佳​實踐》一文,​以​獲得​更多​信息。

若要​創建​報表​中​即將​顯示​的​自​定義​步驟​屬性,​請​按照​下列​步驟​操作:

  1. 在“類型​(Types)”窗​格​中,​將​自​定義​屬性​添加​到​該​步驟​的“結果​(Result)”容器​中。 執行​此​操作,​可​確保​通過​結果​收集​過程​向​ResultList​中​添加​該​屬性。
  2. 啟用​屬性的IncludeInReport標志,​以便​報表​生成​器​將​數據​添加​到​報表​中:
  • 右​鍵​單擊​該​屬性,​然后​選擇屬性​(Properties)...
  • 單擊“高級​(Advanced)”按鈕,​然后​選擇標志​(Flags)...
  • 選中IncludeInReport選項,​然后​單擊​兩​個​對話​框的確定​(OK)

覆蓋​報表​回調

此​過程​模型​提供​了​許多​回​調,​您​可以​覆蓋​這些​回​調​以​更改​特定​客戶​端​序列​文件​的​模型​功能。 該​機制​對於​自​定義​報表​生成​器​也​很有​用。 本​節​介紹​了​以下​常見​的​自​定義​方法:

  • 以​編​程​方式​設置​報表​選項
  • 向​報表​中​添加​其他​UUT​和​測試​站​數據
  • 直接​自​定義​報表​生成器

注意:如果​您​不​熟悉​過程​模型​回​調,​請在​繼續​學習​本​節​之前​參閱使用​回​調​序列​修改​過程​模型幫助​主題。

以​編​程​方式​設置​報表​選項

除了​使用“報表​選項​(Report Options)”對話​框​外,​您​還​可以​通過​覆蓋​測試​序列​中的ReportOptions回​調,​以​編​程​方式​設置​報表​選項。 要​覆蓋​序列​文件​中的​回​調,​請​按照​下列​步驟​操作:

  1. 在​序列​窗​格​中​右​鍵​單擊,​然后​選擇序列​文件​回​調​(Sequence File Callbacks)...
  2. 選擇​ReportOptions​回​調,​然后​單擊添加​(Add)。
  3. 單擊確定​(OK)關閉​對話​框。 請​注意,​新的​ReportOptions​序列​已​創建,​如下所示。



執行​序列​時,​過程​模型​將​在​加​載​報表​選項​對話​框​中​設置​的​當前​報表​選項​后​立即​調​用​此​回​調​序列。 Parameters.ReportOptions變量​中​包含​了​當前​報表​選項。 您​可以​修改​這些​屬性​的​值​以​更改​當前​執行​的​報表​選項。 這些​選項​不會​影響“報表​選項​(Report Options)”對話​框​中的​設置​或​任何​其他​執行​的​設置。​例如,​要​為​序列​文件​啟用​即時​報表​生成,​您​可以​使用​以下​表達​式​創建​一個​聲明​步驟:

Parameters.ReportOptions.UseOnTheFlyReporting =True


將​其他​UUT​和​測試​站​數據​記錄​到​報表​頁​眉​中​(TestStand 2013​及​更高​版本)

測試​應用​程序​可能​需要​您​提供​有關​UUT​的​其他​識別​信息,​如​制造​商​所在地。 有關​UUT​和​測試​站​的​數據​由​過程​模型​存儲​在​Parameters.UUT​和​Parameters.ModelData.StationInfo​變量​中。 您​創建​的​大​多數​模型​回​調​都會​將​這些​屬性​作為​參數​包含​在內,​從而​允許​您​在​回​調​中​訪問​此​數據。​在​TestStand 2013​及​更高​版本​中,​UUT​和​StationInfo​屬性​包含​非​結構​化​容器​AdditionalData​子​屬性。 您​可以​在​運行​時​向​此​屬性​中​添加​數據,​而無​需​對​UUT​和​StationInfo​數據​類型​進行​任何​更改。

要​使用AdditionalData容器​以​編​程​方式​向​頁​眉​添加​自​定義​UUT​數據,​請​按照​下列​步驟​操作:

  1. 覆蓋​客戶​端​序列​文件​中的PreUUT​回調。 請​注意,​新的​回​調​序列​包含Parameters.UUT屬性
  2. 添加​一個​聲明​步驟,在Parameters.UUT.AdditionalData容器​中​動態​添加​屬性。​例如,​此​表達​式​創建​兩​個​字符​串​數據​子​屬性:

Parameters.UUT.AdditionalData.SetValString("Manufacturer.Name",​1,"National Instruments"),
Parameters.UUT.AdditionalData.SetValString("Manufacturer.Location",​1,"Debrecen, Hungary"),

注意:1​使用​SetValString​方法,​因為​PropertyOption​會​創建​一個​屬性​(如果​該​屬性​不存在)

  1. 添加​一個​聲明​步驟,​為​AdditionalData​屬性​設置​IncludeInReport​標志,​以便​將​所有​子​屬性​添加​到​報表​中:

Parameters.UUT.AdditionalData.SetFlags("",​0,PropFlags_IncludeInReport)


以下​報表在AdditionalData容器​中​添加​了​自​定義​數據。 添加​自​定義​測試​站​數據​的​過程​類似,​但是​使用​的是Parameters.ModelData.StationInfo屬性,​而不是Parameters.UUT。


使用​UUT.AdditionalData​容器​向​報表​頁​眉​添加​制造​商​信息


注意:此外,​您​可以​在​編輯​時​手​動向​過程​模型​入口​點的Locals.UUT或Locals.ModelData.StationInfo容器​添加​數據​和​啟用IncludeInReport標志,​為​所有​客戶​端​序列​文件​添加​UUT​或​測試​站​數據。


直接​自​定義​報表​生成​器​功能​(HTML​和​ASCII​格式)

報表​生成​器​定義​了​許多​可以​在​客戶​端​序列​文件​中​覆蓋​的​回​調。​這些​回​調​中的​每​一個​都會​在​相應​的​報表​文本​生成​后​執行,​並且​您​可以​修改​報表​生成​器​的​默認​輸出。 僅​當​上述​方法​均​不可​行​時,​才​應​使用​這些​回​調來​添加​自​定義​數據。

僅​當​在“報表​選項​(Report Option)”對話​框​的“目錄​(Contents)”選項​卡​上​啟用“選擇​用於​生成​報表​正文​的​報表​生成​器​(Select a Report Generator for Producing the Report Body)”選項​的“序列​(Sequence)”選項​時,​才​執行​這些​回​調。 此​選項​可​用於​HTML​和​ASCII​報表。  

  • ModifyReportHeader: 報表​生成​器​結果​處理​組​件​從​其​Post​序列​中​調​用​此​回​調,​對​其​進行​覆蓋,​以​修改​報表​頁​眉。 Parameters.ReportHeader​屬性​包含​默認​的​報表​頁​眉。
  • ModifyReportEntry: 報表​生成​器​結果​處理​組​件​從​其​Post​序列​中​為​ResultList​中的​每​個​結果​調​用​此​回​調,​對​其​進行​覆蓋,​以​修改​為​每​個​結果​生成​的​報表​部分。​Parameters.ReportEntry​屬性​包含​為​當前​ResultList​條目​生成​的​報表​數據。
  • ModifyReportFooter:報表​生成​器​結果​處理​組​件​從​其​Post​序列​中​調​用​此​回​調,​對​其​進行​覆蓋,​以​修改​報表​頁​腳。​Parameters.ReportFooter​屬性​包含​默認​的​報表​頁​眉。


配置​報表​的​外觀

自​定義​報表​外觀​的​方法​與​報表​格式​密切​相關。 對於​ASCII​和​HTML​報表,​外觀​信息​和​報表​數據​緊密​結合。 因此,​更改​報表​的​外觀​需要​直接​修改​報表​生成​器​代碼,​這​需要​對​報表​生成​器​有​大概​的​了解,​本文​檔​對​這​部分​內容​不做​介紹。 有關​實施​報表​生成​器​的​更多​信息,​請​參閱《報表​生成​說明》一文。

如​本文​檔“報表​選項”部分​所述,​XML​和​ATML​報表​使用​樣式​表​通過​原始​報表​數據​生成​可讀​報表。 您​可以​通過​編輯​樣式​表​來自​定義​這些​報表​的​外觀,​而無​需​修改​報表​生成​器​本身。 有關​樣式​表​自​定義​的​更多​信息​和​示例,​請​參閱《自​定義​TestStand XML​和​ATML​報表​的​格式​和​外觀》一文。

 

結論​

在​TestStand​中​自​定義​報表​是​一項​常見​的​任務,​TestStand​提供​了​許多​功能​來自​定義​報表​的​內容、​功能​和​樣式。​請​參見​以下​流程​圖,​幫助​您​確定​如何​實施​自​定義​報表。

 

“選擇​正確​的​技術​以​自​定義​報表”的​流程​圖 “選擇​正確​的​技術​以​自​定義​報表”的​流程圖

 

本文轉自:https://www.ni.com/content/ni/locales/zh-cn/support/documentation/supplemental/08/teststand-report-generation-and-customization.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM