一、三種運行方式的區別
在這張圖中,我們可以看到三種主要運行方式分別是”Test UUTs”、”Single Pass”、”Run MainSequence”。大家不妨先嘗試一下看看同一個序列文件用三種運行方式運行有什么可以直接看出的區別。
最顯著的區別,使用Test UUTs時連續測試不同的UUT并且在測試結束時會彈出測試結果彈窗如下圖所示。
這不同于Single Pass,Single Pass沒有序列號彈窗和測試結果彈窗,它只會將整個序列文件完整執行一遍并生成測試報告。兩者都會將序列文件完整的執行一遍并生成測試報表來顯示測試結果,而與兩者不同的是Run MainSequence,這種運行方式只會運行序列文件中的主序列并且不會生成報表。 需要知道內在的區別并探究TestStand開放式架構我們需要引入三個概念:過程模型、執行入口點以及回調序列。
二、過程模型
作為標準自動化測試系統的最上層,測試管理軟件需要提供模塊化的測試框架,而在TestStand中,這個測試框架被稱為過程模型,而采用過程模型的序列文件被稱為客戶端序列文件。回顧一下我們在上一篇講到的自動化測試組成,測試軟件分為測試程序和測試框架。在過程模型中會有很多的通用操作,我們可以理解為過程模型將框架定義好,并預留位置給客戶端序列,對于開發人員而言只需要寫這一部分即可。
在使用過程模型之后,在啟動測試后,TestStand就能夠按照過程模型定義好的順序來執行序列文件TestStand將很多通用操作直接提供給開發人員,如序列號追蹤、流程控制、報表生成、數據存儲等等。也就是說TestStand已經幫助我們將這些通用操作已經準備好了,不需要我們去自己再去做這些功能的步驟。我們只需要完成測試系統需要的額外的步驟比如需要的各種測試項,可以使用在第一章中講到的一些測試步驟完成。這些我們自定義的步驟組成了客戶端序列MainSequence。過程模型其實很簡單,它的根本還是一個序列文件,它將各種通用操作和自定義操作以可自定義的順序組合在一起。TestStand提供了三種過程模型:順序過程模型、并行過程模型、批量過程模型。其中后兩種具有并行測試的作用,并行測試在后續的章節中我們會講到.
如果想要對過程模型進行自定義,可以打開TestStand后在菜單欄中選擇Edit->Sequence File Properties打開序列文件屬性窗口,在”Advance”中設置類型為Model就創建了新的過程模型如下圖所示。
提示:如果序列文件使用的是順序過程模型,在TestStand的最下方狀態欄中會顯示Model:SequentialModel.seq,雙擊即可打開順序過程模型文件,其他兩種過程模型也是類似的。
三、執行入口點
執行入口點為用戶提供了一種方式,可運用過程模型執行其測試代碼。默認的TestStand過程模型提供兩個執行入口點,即Test UUTs和Single Pass。每個入口點都在過程模型序列文件的序列中實現。在序列編輯器中,當活動窗口包含使用過程模型的序列文件時,“執行”(Execute)菜單將列出執行入口點。過程模型定義了測試框架和常用操作。
在實際應用中,不同的項目中包含的通用操作以及通用操作之間的執行順序都有不同的要求,因此每次都要修改過程模型,或者創建新的流程模型,隨著時間的推移,過程模型會越來越多。為了避免這個問題,TestStand引入了執行入口點的概念。
觀察上圖,我們發現執行入口點A和執行入口點B兩者的區別就是通用操作2和客戶端序列MainSequence執行的順序不同。而執行入口A和執行入口C兩者區別在于執行入口C將通用操作1和客戶端序列MainSequence自定義形成了一個循環。因此選擇不同的執行入口點并不會改變操作,而只將它們按不同應用程序的需求的順序重新排列。
現在回想Single Pass和Test UUTs就明白了它們其實就是同一個過程模型的兩種不同執行入口點,Test UUTs其實將需要的通用操作和特定操作形成了一個循環,所以會連續測試不同的UUT,而Single Pass只按順序完整運行一遍,就是這個道理。
四、回調序列
執行入口點允許我們定義自己的序列執行風格,但是執行入口點中包含的一般操作是預定義的,可能需要我們更改默認功能。以Test UUT為例,我們需要先輸入測試序列號,但在實際生產線上可能會被條碼槍直接掃描,不需要人工輸入,這就需要修改或重寫序列號輸入這個通用操作。我們能想到的最直接的方法是直接在入口點修改通用操作,但如果產品升級或完全更新,這些通用操作需要不斷更改以適應新產品,越改越多,系統維護就變得特別困難。為了避免這種情況,TestStand引入了回調序列。
TestStand將經常被修改的通用操作改為回調序列。每個回調序列都有一個定義的默認函數,但可以被客戶端序列文件覆蓋。如下圖所示,在執行入口點中定義了三個回調序列,在客戶端序列MainSequence中回調序列1和3在序列文件中被覆蓋。
當TestStand執行過程模型框架中的每個回調序列時,它檢查回調序列是否已被客戶端序列文件覆蓋。如果是,則執行客戶端序列文件中的定義,否則執行默認操作。這允許自定義常見操作,并且大部分工作也放在客戶端序列文件中,從而減少了修改流程模型和執行入口點的需要。
五、內容總結
從一開始的三種主要運行方式到過程模型、執行入口點以及回調序列,通過這三個不同層次的接口,TestStand就這樣將其開放式架構一步步展現出來。
在這一章節,我們從三種主要運行方式出發,以較為理論的視角通過過程模型、執行入口點以及回調序列逐步了解了TestStand的系統與架構。簡單總結一下,過程模型同樣由TestStand引擎支撐,序列文件也由TestStand引擎支撐,但是如果不使用過程模型,那么只會執行該序列文件包含的步驟,如果使用了過程模型,則會按照過程模型設定的方式進行序列文件的執行,并包含一系列通用操作,如生成報告、結果分析等,方便我們更好地使用TestStand。
審核編輯:劉清
-
數據存儲
+關注
關注
5文章
983瀏覽量
51055 -
UUT
+關注
關注
0文章
7瀏覽量
19122 -
TestStand
+關注
關注
5文章
7瀏覽量
11129
原文標題:知識分享 | 通過TestStand三種主要運行方式探究TestStand開放式架構
文章出處:【微信號:華穗科技,微信公眾號:華穗科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論