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

teststand 中的一個例子
teststand&labview /CVI使用初步教程
安裝多個teststand版本,如何切換?
請教一個關(guān)于Teststand調(diào)用LABVIEW程序的問題
分享一個關(guān)于在TestStand中,無法直接編輯和創(chuàng)建新的VI的解決辦法
打開Teststand2016后關(guān)閉再打開Teststand2010報錯×
基于NI TestStand和LabVIEW的模塊化測試軟件架構(gòu)
TestStand和LabVIEW軟件架構(gòu)
NI TestStand介紹
關(guān)于TestStand自帶用戶界面無法正常運行的問題解決經(jīng)驗分享!
使用TestStand仿真LabView教程資料分享

評論