|
TTCN實踐入門(二)Test Suites
(測試套件或者測試對象)
一個TTCN 測試套件由多個測試用例組成,比如所有測試Attach的用例可以組成一個測試套件, 主要是爲了方便管理與組織測試用例
下面是一個顯示Hello的測試用例
- testcase Hello() runs on EmptyComponentType
- {
- log("Hello");
- }
一個測試用例必須運行在一個component(本文翻譯爲組件)上(本例中是runs on EmptyComponentType,如果沒有寫runs on就是默認爲運行在Main Test Component上)
這裏我們需要定義EmptyComponentType組件,如下(這個Component的內容爲空)
先簡單介紹一下Component(組件)的概念
Component一般分爲兩種:MTC和PTC
MTC: Main Test Component,主測試組件,當測試用例執行的時候,測試執行環境(TTCN環境,這裏是TTXP)會自動創建一個MTC, 在測試運行過程,只會有唯一的MTC.如果沒有指明runs on某個Component,默認就是MTC; 在測試代碼中,不能控制MTC的建立與停止;
PTC: Parallel Test Component, 並行測試組件, PTC是由測試代碼控制的,可以創建,停止等.PTC的銷燬(release)是由系統自動完成的
測試組件之間的通訊是通過Ports來進行.PTC與MTC都可以與SUT(System Under Test,測試對象)通訊.
爲什麼要利用組件這個概念呢? 最大的好處就是可以用組件來模擬通訊網絡結點,
比如MSC(Mobile Switch Center)可以是一個組件, NodeB(基站)可以是一個組件, SUT是RNC(無線網絡控制器), 這三者之間消息的交互用測試用例來模擬, MSC與NodeB的組件可以設計爲PTC,作爲並行運行的進程,在MTC中調用這兩個PTC進行消息發送與回覆等操作.把每一個PTC想象爲一個網絡結點,測試環境就會清晰很多.
- type component EmptyComponentType {}
- module Suite {
- type component EmptyComponentType {}
- testcase Hello() runs on EmptyComponentType
- {
- log("Hello");
- }
- testcase GoodBye() runs on EmptyComponentType
- {
- log("Good Bye");
- }
- control {
- execute( Hello() );
- execute( GoodBye() );
- }
- }
ttxp /run Suite
excute:執行
如果你只想執行一個測試用例,用下面的命令
ttxp /run Suite Hello
這條命令僅僅運行Hello這個測試用例
TTCN-3模塊定義 module
其他模塊的定義引入 import
組定義 group
數據類型定義 type
通信端口定義 port
測試成分定義 component
特徵定義 signature
外部函數/常量定義 external
常量定義 const
數據/特徵模板定義 template
函數定義 function
可選步定義 altstep
測試例定義 testcase
變量聲明 var
定時器聲明 timer