CN100358302C - 一种使用状态机测试网元接口的方法 - Google Patents
一种使用状态机测试网元接口的方法 Download PDFInfo
- Publication number
- CN100358302C CN100358302C CNB200410077328XA CN200410077328A CN100358302C CN 100358302 C CN100358302 C CN 100358302C CN B200410077328X A CNB200410077328X A CN B200410077328XA CN 200410077328 A CN200410077328 A CN 200410077328A CN 100358302 C CN100358302 C CN 100358302C
- Authority
- CN
- China
- Prior art keywords
- state machine
- network element
- element interface
- machine
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种使用状态机测试网元接口的方法,包括步骤:由不同状态机对象表示相应的网元接口,所述状态机对象为分层描述,其通过适配器与一个状态机模板对象对应,状态机执行器加载不同的状态机对象来模拟不同的网元接口行为,不同网元在所述状态机执行器中以相应网元对象表示,由各个网元对象实例共享所述状态机模板对象;所述状态机执行器的触发器根据接收消息切换到另一层状态机执行。在状态机描述文本中对状态机描述表、消息信元回填映射表和测试消息集合进行描述,采用本发明的技术方案,由于在状态机描述文本中对状态机分层描述,使状态机更清晰,状态机和状态机执行器分离,测试系统易于实现,易于维护。
Description
技术领域
本发明涉及网元接口的测试方法,具体涉及一种使用状态机测试网元接口的方法。
背景技术
系统的业务自动化测试中,如协议一致性测试、业务功能测试等,需要对协议的消息流程或业务流程建立模型,而状态机技术适用于面向过程的应用,适用于系统的动态建模。如果对象的行为必须响应异步激发,或它的当前行为依赖于过去,用状态机可以简单、高效地描述系统的行为,而且便于理解。在业务测试中,需要模拟被测试设备的外部接口的行为,用于测试设备的设计功能完备性。现有的网元接口的测试方法之一,是将模拟网元接口的状态机以代码的形式置于测试程序或脚本中,这种方法的缺点是没有区分状态机和状态机执行器,描述方法复杂,需要写测试代码,应用的技术难度高,不易于维护。另外一种测试方法是将模拟网元接口的状态机和状态机执行器分开设计,但是这种方法的缺点是状态机描述方法简单,没有执行过程中的用户需要的资源检查等定制的功能的描述;状态机不分层次,子状态机没有进行模块化,不能充分共享;状态机执行器没有扩展接口给用户使用。
发明内容
本发明要解决的技术问题是提供一种使用状态机测试网元接口的方法,克服现有技术中状态机不分层次,子状态机没有进行模块化,不能充分共享,以及状态机执行器没有扩展接口给用户使用,不能进行用户需要的资源检查的缺点。
为解决上述技术问题,本发明采用如下的技术方案:
一种使用状态机测试网元接口的方法,包括以下步骤:采用面向对象技术,由不同状态机对象表示相应的网元接口,所述状态机对象为分层描述,其通过适配器与一个状态机模板对象对应,状态机执行器加载不同的状态机对象来模拟不同的网元接口行为,不同网元在所述状态机执行器中以相应网元对象表示,由各个网元对象实例共享所述状态机模板对象;所述状态机执行器的触发器根据接收消息切换到另一层状态机执行。
在状态机描述文本中对状态机描述表、消息信元回填映射表和测试消息集合进行描述,所述状态机描述文本以属性的方式与状态机模板对象对应,测试系统根据所述状态机描述文本创建所述状态机模板对象的相应实例。
在所述状态机描述文本中根据子状态机名对状态机进行分层描述。
同一网元对象实例的多个状态机层次以单向链表的方式表达,形成调用栈的关系,所述测试系统的用户流程根据状态机描述的要求维护所述单向链表的创建、处理和释放。
所述状态机执行器的触发器对象根据测试需要启动并发流程或检查当前的资源状态。
所述测试系统初始化时建立缺省的公用流程,其它用户流程根据接收消息建立,当一个流程中包含不止一个协议层消息时,每一协议层对应一个状态机对象实例,其通过适配器与一个状态机模板对象绑定。
采用本发明的技术方案,由于在状态机描述文本中对状态机分层描述,使复杂的状态机更清晰,状态机和状态机执行器分离,使测试系统易于实现,易于维护。
附图说明
图1是本发明的测试系统内部实体关系图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明:
状态机描述文本是以FSM(Finite State Machine,有限状态机)为扩展名的文件,其中包括状态机描述、消息信元(IE,Information Element)回填映射表和测试消息文件名列表,状态机描述的标识关键字为FSM;回填消息IE映射表的标识关键字为MSGIE;消息文件名称列表的标识关键字为MSGLIST。注释和说明文字以逗号开头。测试消息文件名以扩展名MSG结尾。
业务状态机以表驱动,以“FSM:”作为表的起始标识,表的每一行包含序号、状态名、接收消息名、发送消息名、等待延时时长、超时迁移目的状态名、正常迁移目的状态名、下一层状态机名、触发器名和状态说明等十项,各项以逗号分开,当某一项可以有多项时,以引号包含,各子项以空格分隔。当表中某项为“”时表示没有相应的值或为空。状态序号是唯一的不会重复。延时时长以毫秒为单位。状态机表的第一行是状态机启动入口, 头一条接收消息和发送消息需要安排第一行,其它的状态行可以任意安排。以下说明状态行中各项的用法。
1、状态行序号
序号是唯一标识一个状态,不能为空,序号为1或0的状态并不一定是头一个状态,状态机表的第一行的状态才是头一个处理的状态。
2、状态名
状态名表示是状态名称,不能为空,当在相同状态下需要接收不同的消息时,可以描述成多行具有相同状态名的状态,但状态序号不同。
3、接收消息名
表示是在本状态下准备接收的消息名称,该消息是用ASN.1(AbstractSyntaxNotation No.1,抽象语法记号1)描述的消息文件,作为消息模板应在消息文件目录中保存,状态机执行引擎运行时加载。若没有需要接收的消息,此项填“”。
4、发送消息名
表示是在本状态下准备发送的消息名称,该消息的消息模板应在消息文件目录中保存,状态机执行引擎运行时加载,根据接收消息来回填相应的信元。若没有需要发送的消息,此项填“”,发送消息可以有多个,各个消息以空格来分开。
5、等待延时时长
表示是在本状态下等待接收消息的延时,以毫秒为单位,若没有延时要求时,此项填0。
6、超时迁移目的状态名
表示是在本状态下在规定的时间内没有收到相应的消息时,状态机迁移的目标状态。“ERROR”、“OVER”、“SUCCESS”、“FAIL”是保留状态名,表示状态机的结果状态。最顶层状态机返回以上保留状态,表示用户实例执行完毕。
7、正常迁移目的状态名
表示是在本状态下在规定的时间内收到相应的消息时,状态机迁移的目标状态。“ERROR”、“OVER”、“SUCCESS”、“FAIL”是保留状态名,表示状态机的结果状态。最顶层状态机返回以上保留状态,表示用户实例执行完毕。
8、下一层状态机名
表示是执行另一个状态机的名称,在当前状态下在规定的时间内收到相应的消息后,在发送相应的消息之前,若有下一层状态机名不为空时,暂停当前状态机,启动执行另一个状态机,再根据这个状态机返回的状态来决定本层状态机的状态迁移。
9、触发器名称
表示在当前状态下,需要通过触发器类来启动另一个并发的流程,一般是被叫流程,当前流程继续运行。或者是启动一个资源检查过程, 用来核查当前状态下的资源,这需要OM(Operation Maintenance操作维护)资源查询模块的配合。最终用户可以根据需要扩展触发器类,以实现不同的测试需求,系统默认提供实现启动被叫流程的触发器类(CalleeTrigger)。
10、状态说明
表示在当前状态下,系统处于何种逻辑状况,如等待用户接入、链路建立完成、小区建立完成等等。
消息信元回填映射表
消息信元回填映射表保存了从接收消息中指定的信元和准备填入的发送消息,以“MSGIE:”作为表的起始标识,表中各行没有依赖关系,可以任意安排。表的每一行包含接收消息名、接收信元的路径、发送消息名、发送信元的路径等四项,各项以逗号分开,信元路径用引号包含,信元路径各部分以空格分隔。
当消息信元回填映射表中某项为“”时表示没有相应的值或为空。当回填映射表发送消息和发送信元的路径都为“”时,表示接收消息是状态机头一条消息,并且需要从中取出标识信元ID,如IMSI或UEID。
当回填映射表中接收消息为“”接收信元为“ID”、“IMSI”时,表示需要向寻呼消息填入被叫的ID(UEID、IMSI等)。
从用户易用性考虑,当需要回填的信元是一个序列(SEQUENCE OF)时,在信元路径的最后标注序列的数量来代替信元路径最后的偏移,则系统会依次回填所有的序列项。例如IMSI有15位数字,则用SimRNC-15表示。ISDN有11位,则用SimRNC-11表示,以此类推。例如:
MSGIE:
;主叫用于创建用户实体
{″RRC_RRC_CONNECT_REQ″,″dllMsg struMsgChoice struRrc-Msg
struUU-RRC-CONN-SETUP-STRU struInitUeId u struImsi aucImsi
SimRNC-15″,″″,″″}
;正常
{RRC_RRC_CONNECT_REQ,″ulInstId″,RRC_RRC_CONNECT_SETUP,
″ulInstId″}
;被呼
{″″,″ID″,Paging,″ulInstId″}
{″″,″IMSI″,Paging,″dllMsg struMsgChoice struRrc-Msg
struUU-RRC-CONN-SETUP-STRU struInitUeId u struImsi aucImsi
SimRNC-15″}
针对状态机描述的需求和并发执行的需求,需要模拟的有设备在执行器中以一个设备对象形式存在,每一个设备对象模拟一个设备,可以相同类的设备也可以不同类的设备,状态机采用模板设计模式,状态机描述文本作为只读的数据源,以对象实例的方式创建状态机模板,由各个设备实例共享状态机模板对象。其次,针对多层状态机描述,同一设备实例的多个状态机层次通过单向链表的方式表达,形成一个调用栈的关系,体现多层协议栈的实现需求,呼叫中的实例对象根据状态机描述的要求维护该链表资源的创建、处理和释放,链表中的对象则是代表某一个状态机的实现实例的数据对象。再者,各个实例的状态机链表对象通过适配对象与状态机对象建立非排他性的一对一的绑定关系。最后,主控模块通过消息泵接收前台消息,根据消息类型进行分发和调度,实现多实例分时共享的目的。
系统划分为执行引擎消息泵模块,用户对象模块,状态机实体模块,状态机适配模块,协议层切换与测试检查模块和状态机描述模块,各个模块用一个类来描述其功能和需要维护的数据,用户的测试脚本启动执行引擎消息泵,然后根据接收的消息来创建用户对象,用户对象根据接收的消息来确定如何与状态机、状态机适配等配合构成一个状态机执行的实体。结构图如图1所示。
初始化时建立的系统用户对象是包含缺省的公用流程,其它用户对象是根据接收消息建立,例如它包含手机的呼叫流程。当流程中包含不止一个协议层消息时,每一层拥有一个状态机实体(数据对象Entity),它通过适配器(Adapter)与某一个状态机模板(TMSGFSM)绑定;状态机模板对象拥有状态机的描述表、测试消息集和消息信元回填映射表等状态机的固有属性,适配器(Adapter)保存状态机的运行信息。这样划分的目的是只要更新状态机描述表即可以扩充状态机执行引擎的执行能力,模拟不同的网元实体。触发器(Trigger)是各层状态机的转接点,测试执行过程中的检查点,Trigger的实例可以根据测试需要检查当前的资源状态,根据接收消息启动并切换到另一层状态机执行,或根据状态机流程需要创建被叫实体,由状态机实体解析状态机描述表后,根据需要来创建,完成任务后随即释放。执行器提供一般通用的触发器功能,触发器也作为一个外部接口。提供给用户,状态机描述表中只需要给予新的触发器名称即可。在以TCL脚本语言实现执行器时,把触发器作为一个模板类和规则,提供给用户根据实际需要定制个性化的实现。
虽然通过参照本发明的优选实施例,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。
Claims (9)
1、一种使用状态机测试网元接口的方法,包括以下步骤:采用面向对象技术,由不同状态机对象表示相应的网元接口,所述状态机对象为分层描述,其通过适配器与一个状态机模板对象对应,状态机执行器加载不同的状态机对象来模拟不同的网元接口行为,不同网元在所述状态机执行器中以相应网元对象表示,由各个网元对象实例共享所述状态机模板对象;所述状态机执行器的触发器根据接收消息切换到另一层状态机执行。
2、根据权利要求1所述的使用状态机测试网元接口的方法,其特征在于:在状态机描述文本中对状态机描述表、消息信元回填映射表和测试消息集合进行描述,所述状态机描述文本以属性的方式与状态机模板对象对应,测试系统根据所述状态机描述文本创建所述状态机模板对象的相应实例。
3、根据权利要求2所述的使用状态机测试网元接口的方法,其特征在于:在所述状态机描述文本中根据子状态机名对状态机进行分层描述。
4、根据权利要求3所述的使用状态机测试网元接口的方法,其特征在于:同一网元对象实例的多个状态机层次以单向链表的方式表达,形成调用栈的关系,所述测试系统的用户流程根据状态机描述的要求维护所述单向链表的创建、处理和释放。
5、根据权利要求4所述的使用状态机测试网元接口的方法,其特征在于:所述状态机执行器的触发器对象根据测试需要启动并发流程或检查当前的资源状态。
6、根据权利要求5所述的使用状态机测试网元接口的方法,其特征在于:设置所述触发器类为测试脚本语言的模板类。
7、根据权利要求6所述的使用状态机测试网元接口的方法,其特征在于:设置所述状态机描述文本为只读文本。
8、根据权利要求7所述的使用状态机测试网元接口的方法,其特征在于:所述测试系统初始化时建立缺省的公用流程,其它用户流程根据接收消息建立,当一个流程中包含不止一个协议层消息时,每一协议层对应一个状态机对象实例,其通过适配器与一个状态机模板对象绑定。
9、根据权利要求8所述的使用状态机测试网元接口的方法,其特征在于:所述适配器保存状态机对象的运行信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410077328XA CN100358302C (zh) | 2004-12-06 | 2004-12-06 | 一种使用状态机测试网元接口的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410077328XA CN100358302C (zh) | 2004-12-06 | 2004-12-06 | 一种使用状态机测试网元接口的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1787461A CN1787461A (zh) | 2006-06-14 |
CN100358302C true CN100358302C (zh) | 2007-12-26 |
Family
ID=36784783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200410077328XA Expired - Fee Related CN100358302C (zh) | 2004-12-06 | 2004-12-06 | 一种使用状态机测试网元接口的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100358302C (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100420210C (zh) * | 2006-09-22 | 2008-09-17 | 华为技术有限公司 | 状态机构建方法和设备测试系统及设备模拟器 |
CN101212357B (zh) * | 2006-12-31 | 2010-09-15 | 亿阳信通股份有限公司 | 一种接口的测试方法和装置 |
CN101141359B (zh) | 2007-10-24 | 2010-06-09 | 中兴通讯股份有限公司 | 统一业务接入系统和接入方法 |
CN102098665B (zh) * | 2011-02-21 | 2013-10-09 | 北京汇泰沃德科技有限公司 | 号码回填的补充方法和通信监测系统 |
CN102098667B (zh) * | 2011-02-21 | 2013-10-09 | 北京汇泰沃德科技有限公司 | 应用于3g网络的号码回填方法和通信监测系统 |
CN106535219B (zh) * | 2015-09-10 | 2019-07-19 | 上海大唐移动通信设备有限公司 | 一种用户信息回填方法及装置 |
CN108804271A (zh) * | 2018-06-28 | 2018-11-13 | 北京潘达互娱科技有限公司 | 接口容错测试方法及装置 |
CN110825428A (zh) * | 2019-11-06 | 2020-02-21 | 政采云有限公司 | 一种状态机配置方法、装置、设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997020439A1 (en) * | 1995-11-30 | 1997-06-05 | Excel, Inc. | Telecommunications switch having a universal applications program interface for stantardized interactive call processing communications |
CN1193859A (zh) * | 1996-11-20 | 1998-09-23 | 埃克斯塞尔开关公司 | 在数据交换网络中的信令信息处理器 |
CN1516840A (zh) * | 2001-04-25 | 2004-07-28 | �ź㴫 | 自适应多协议通信系统 |
-
2004
- 2004-12-06 CN CNB200410077328XA patent/CN100358302C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997020439A1 (en) * | 1995-11-30 | 1997-06-05 | Excel, Inc. | Telecommunications switch having a universal applications program interface for stantardized interactive call processing communications |
CN1193859A (zh) * | 1996-11-20 | 1998-09-23 | 埃克斯塞尔开关公司 | 在数据交换网络中的信令信息处理器 |
CN1516840A (zh) * | 2001-04-25 | 2004-07-28 | �ź㴫 | 自适应多协议通信系统 |
Non-Patent Citations (3)
Title |
---|
"有限状态机设计与实现方法" 张国庆,霍国义.电脑编程技巧与维护,第4期 2004 * |
基于面向对象技术的自动状态机实现 吴峥涛,齐欢.计算机与现代化,第3期 2003 * |
有限状态程序模型及其应用 邓志洪,张治国.五邑大学学报(自然科学版),第15卷第4期 2001 * |
Also Published As
Publication number | Publication date |
---|---|
CN1787461A (zh) | 2006-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100385864C (zh) | 协议一致性测试装置及测试方法 | |
CN111367818B (zh) | 基于动态数据返回的系统组件测试方法及装置 | |
CN110942387A (zh) | 基于微服务的电票业务功能构建方法和系统 | |
CN110071822A (zh) | 一种针对5g核心网基础设施的测试装置及测试方法 | |
CN112463211A (zh) | 一种兼容多种开发架构的系统架构改造方法及系统架构 | |
CN105637478A (zh) | 原生移动应用代码的计算机辅助开发 | |
CN105450476A (zh) | 一种回归测试系统及测试方法 | |
CN109597604B (zh) | 基于iOS平台的APP模块化开发方法、装置和设备 | |
CN104461531B (zh) | 一种报表系统自定义函数的实现方法 | |
CN106648556A (zh) | 前后端集成开发测试的方法及装置 | |
CN100358302C (zh) | 一种使用状态机测试网元接口的方法 | |
CN101777023B (zh) | 一种测试用例的生成方法和装置 | |
CN109995643A (zh) | 业务邮件推送方法及装置 | |
CN110347445A (zh) | Sdk调用方法、装置、服务器及存储介质 | |
CN101046746B (zh) | 分布式软件开发环境中的代码管理 | |
CN113918637A (zh) | 一种基于bpmn2.0规范的流程引擎平台创建方法及系统 | |
CN110083366B (zh) | 应用运行环境的生成方法、装置、计算设备及存储介质 | |
CN112016256A (zh) | 一种集成电路开发平台、方法、存储介质及设备 | |
CN106294037A (zh) | 拷机测试方法及装置 | |
CN101141767A (zh) | 一种网络管理平台测试系统及方法 | |
CN110471745A (zh) | 一种服务编排方法及装置 | |
CN112650815B (zh) | 环境数据的同步方法及装置、存储介质及电子装置 | |
CN100502318C (zh) | 网元设备接入网管系统时的兼容性检测方法及网管系统 | |
CN103176904A (zh) | 一种仿真测试平台软件架构及基于该架构的测试方法 | |
CN110417978A (zh) | 菜单配置方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071226 Termination date: 20121206 |