|
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