TTCN3学习笔记--转载

TTCN3学习笔记1--转载
2009-08-26 23:27

       TTCN-3可以用做多种通信端口上的各种响应系统测试的描述语言。典型的应用领域是协议测试(包括移动协议和互连网协议)、服务测试(包括增补服务)、模块测试、基于平台、APIs等的CORBA测试。TTCN-3并不仅仅局限于一致性测试,它可用于多种类型的测试,如互操作性测试(Interoperability Testing)、健壮性测试(Robustness Testing)、回归测试(Regression Testing)、系统和集成测试(System and Integration Testing)
TTCN-3意在用做独立于测试方法、层和协议的测试套的描述

TTXP(TTCN-3 Express)是一个简单的TTCN3编译器(TTCN3是ETSI的一个语言标准,具体的编译器由各个厂商自己开发).在上面的网址可以找到下载地址与安装方法,这里不详细介绍了.

1.Hello World
下面是一个非常简单的TTCN3模块,我们把这个模块存放到HelloWorld.ttcn3文件中

  1. module HelloWorld {
  2. control {
  3.    log("Hello World");
  4. }
  5. }

这个模块只有一个Control部分,Contorl部分只有一条log语句,这条语句是打印一条信息.

2. TTXP命令

ttxp /run HelloWorld

编译并且运行HelloWorld, 运行结果: "Hello World"
这条命令包含了编译和运行两个步骤, 但如果你已经编译过,ttxp /run就会直接运行Hello World
但是如果你后来又修改了文件, ttxp /run会重新编译运行

假如你仅仅想编译文件,而不用运行,用ttxp /compile
ttxp /compile HelloWorld

你也可以用文件名进行编译,
ttxp /compile HelloWorld.ttcn3

运行
ttxp /run HelloWorld.ttcn3

模块名称必须和文件名称保持一致,比如M.ttcn3中只能包含Module M, 一个文件只能有一个Module
A command

ttxp /run M

or
ttxp /run M.ttcn3

会执行模块M的Control部分

模块中也可以不包含Cotrol, 我们可以单独写一些函数库并且分别编译
下面是LibraryModule.ttcn3. 这个文件包含了LibraryModule模块,里面提供了一个HelloWorld函数

  1. module LibraryModule
  2. {
  3. function HelloWorld()
  4. {
  5.    log("Hello World");
  6. }
  7. }

用下面的命令编译这个文件
ttxp /compile LibraryModule

下面是一个MainModule模快(文件名MainModule.ttcn3), 在这个Module中导入LibraryModule, 并且调用HelloWorld函数,如下

  1. module MainModule
  2. {
  3. import from LibraryModule all;
  4. control
  5. {
  6.    HelloWorld();
  7. }
  8. }

用下面的命令编译并且执行:
ttxp /run MainModule

返回结果:Hello World



这章里面主要介绍了TTXP的一些常用命令, 另外里面很多地方提到了模块Module, 下面我们简单介绍一下:

Module – Top-level unit of TTCN-3
模块- TTCN3中SCOPE最大的单元(其他的都需要包含在Module中).
一个Module包含两个部分:Module定义和Module控制,这两个部分都是可选的,也就是说一个Module中可以是空的,没有任何东西

  1. module MyModule {
  2. : // Definitions part
  3. control {
  4. : // Control part
  5. }
  6. }

Module可以Import 其他Module,这个类似于C中的Include

控制部分类似与C语言中的Main函数,用来控制测试用例的执行

Module还有更多的内容, 等以后接触到更多TTCN内容的时候再介绍


TTCN3学习笔记2--转载
2009-08-26 23:28

TTCN实践入门(二)Test Suites

Test Suites
(测试套件或者测试对象)
一个TTCN 测试套件由多个测试用例组成,比如所有测试Attach的用例可以组成一个测试套件, 主要是为了方便管理与组织测试用例

下面是一个显示Hello的测试用例
  1. testcase Hello() runs on EmptyComponentType
  2. {
  3.    log("Hello");
  4. }
测试用例由关键字testcase定义,必须定义在Module的定义部分
一个测试用例必须运行在一个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想象为一个网络结点,测试环境就会清晰很多.
  1. type component EmptyComponentType {}
下面是一个含有两个测试用例的测试套件:
  1. module Suite {
  2. type component EmptyComponentType {}
  3. testcase Hello() runs on EmptyComponentType
  4. {
  5.    log("Hello");
  6. }
  7. testcase GoodBye() runs on EmptyComponentType
  8. {
  9.    log("Good Bye");
  10. }
  11. control {
  12.    execute( Hello() );
  13.    execute( GoodBye() );
  14. }
  15. }
可以通过下面的命令来编译运行
ttxp /run Suite

Module控制部分执行了两个测试用例,所以结果是Hello 和Good Bye

如果你只想执行一个测试用例,用下面的命令
ttxp /run Suite Hello

这条命令仅仅运行Hello这个测试用例

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
TTCN3核心语言 原版 英文版 协议测试分为一致性测试、互操作性测试、性能测试和鲁棒性测试。其中一致性测试用于确定系统或者设备是否与标准规范一致,是互操作性测试和性能测试的基础,它的结果直接影响测试的效果。协议的一致性测试是指在一定的网络环境下,利用一组测试序列,对被测实现(Implementation Under Test,IUT)进行黑盒测试;通过比较IUT的输出与协议标准中所规定的预期输出的异同,来判断待测设备是否与协议所描述的相一致。 目前国际上较流行的协议测试语言为TTCN-3(Testing and Test Control Notation version 3),它是由欧洲电信联盟ETSI发布的标准测试语言。其典型应用是协议测试、服务测试、模块测试等 TTCN-3测试系统可被看作是相互作用的实体集合,每个实体完成系统中某一特定功能,这些实体管理着测试执行、解释或执行编译的TTCN-3代码、实现与IUT的正确通信、执行外部函数、处理时钟等操作。TTCN-3测试系统由测试管理(Test Management,TM)、TTCN-3执行器(TTCN-3 Executable,TE),TTCN-3日志管理器(TTCN-3 Logging,TL),组件管理(Component Handing,CH),编解码器(Coding and Decoding,CD),系统适配器(System Adapter,SA)和平台适配器(Platform Adapter,PA)6部分组成。TTCN-3控制接口TCI定义了TE与TM、CD、CH和TL之间的交互;TTCN-3运行时接口TRI定义了TE与SA和PA之间的交互。其中TRI接口中TE与SA之间的接口称为TRI通信子接口,TE与PA之间的接口称为TRI平台子接口,TCI接口中TE与CD之间的接口称TCI-CD接口。 系统适配器SA负责与IUT的通信细节,即抽象服务原语(Abstract Service Primitive,ASP)和协议数据单元PDU(Protocol Data Unit,PDU)的发送和接收。编解码器CD负责TTCN-3数据和ASP/PDU之间的双向转换。组件管理器CH记录测试组件的分布情况,实现测试组件间的通信转发。测试执行器TE是整个系统的核心,它实现TTCN-3语言的操作语义,借助其它部分提供的功能,完成TTCN-3模块的执行,例如当需要发送ASP/PDU时,测试执行器首先利用编解码的编码功能,把TTCN-3数据转换为ASP/PDU,然后交给系统适配器SA,完成发送功能。
### 回答1: 答:可以使用TTCN-3语言,编写以下脚本来测试HLR9820路由功能:module HLR9820_Router_Test { //定义测试组件 testcomponent Routing_Test { //测试用例 testcase TC1() runs on HLR9820 { //测试步骤 altstep routing_test() { //配置路由器 configure_router(HLR9820); //发出测试报文 send_test_packet(); //检查响应 check_response(); } } } } ### 回答2: HLR9820是一个用于测试移动通信网络中HLR(Home Location Register,家庭位置寄存器)的设备。为了测试HLR9820的路由功能,可以编写一个TTcn(Testing and Test Control Notation)脚本来进行测试。 首先,我们需要定义脚本中的变量和数据结构,以便于执行测试。这些变量可能包括: 1. sim_card:测试用的SIM卡号码 2. hlr_ip:HLR9820的IP地址 3. hlr_port:与HLR9820通信的端口号 4. routing_table:HLR9820中的路由表,用于确定目标号码的位置 然后,我们可以编写一系列的测试用例来测试HLR9820的路由功能。这些测试用例可以包括以下内容: 1. 向HLR9820添加新的路由规则:在脚本中模拟一个请求,向HLR9820发送添加路由规则的命令,并验证规则是否被成功添加。 2. 删除现有的路由规则:模拟一个请求,向HLR9820发送删除路由规则的命令,并验证规则是否被成功删除。 3. 查询目标号码的位置:根据目标号码,在HLR9820的路由表中查找对应的位置,并验证查找结果的准确性。 在编写这些测试用例时,需要使用TTcn的语法和指令来实现与HLR9820的通信和操作。例如,可以使用send/receive指令向HLR9820发送命令并接收响应,使用alt/repeat指令重复执行某个操作直到达到预期结果。 最后,可以在脚本中添加一些断言,以确保测试结果的正确性。这些断言可以用于验证正确的路由规则是否被添加、删除或查找,并且验证返回结果是否与预期一致。 总之,编写一个测试HLR9820路由功能的TTcn脚本涉及定义变量、编写测试用例,使用TTcn指令与HLR9820进行通信和操作,并添加断言进行结果验证。 ### 回答3: 编写一个测试HLR9820的路由功能的TTCN脚本的步骤如下: 1. 首先,导入TTCN-3的库和HLR9820相关的库。 2. 声明测试用例模块,并定义测试用例。 3. 在测试用例模块中,创建一个系统组件用于模拟HLR9820,并定义其行为和功能。 4. 设置测试用例中需要的变量和参数,例如手机号码、路由信息等。 5. 编写测试用例的具体步骤,包括: - 发送路由请求到HLR9820模拟组件。 - 检查HLR9820是否正确响应了路由请求,并返回了正确的路由信息。 - 比较HLR9820返回的路由信息是否与期望的一致。 6. 编写测试用例的预期结果,即判断HLR9820的路由功能测试是否通过。 7. 运行测试用例并输出测试结果。 需要注意的是,TTCN脚本的编写可能与具体的HLR9820版本和功能要求有关,以上步骤仅作为一般性的参考。具体验证路由功能的测试脚本编写还需根据HLR9820的具体文档和要求进行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值