CN1735252A - 一种通用自动化测试装置及方法 - Google Patents
一种通用自动化测试装置及方法 Download PDFInfo
- Publication number
- CN1735252A CN1735252A CN 200410056120 CN200410056120A CN1735252A CN 1735252 A CN1735252 A CN 1735252A CN 200410056120 CN200410056120 CN 200410056120 CN 200410056120 A CN200410056120 A CN 200410056120A CN 1735252 A CN1735252 A CN 1735252A
- Authority
- CN
- China
- Prior art keywords
- frame
- module
- message
- test
- type
- 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.)
- Granted
Links
Images
Landscapes
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明涉及自动化测试装置和测试方法。该装置包括:消息类型处理模块、消息格式转换模块、缓冲区消息队列模块、消息类型接口模块和控制模块。该方法包括:S1、构造测试消息帧;S2、将测试消息帧封装成内部封装帧,并根据测试帧属性设置封装帧的帧头;S3、将封装帧存储到缓冲区消息队列;S4、解封装成测试消息帧并发送到被测模块;S5、接收响应消息帧;S6、封装内部封装帧,并设置内部封装帧的帧头;S7、解封装响应消息帧,并产生测试结果。本发明可以构造一个通用的基于消息的自动化测试工具,避免了测试多消息接口被测对象时,测试工具庞大、复杂,不利实现和性能低的问题。而且通过消息池,实现测试消息的构造和发送分离,满足性能测试的需要。
Description
技术领域
本发明涉及测试领域,由其涉及一种通用的自动化测试装置和测试方法。
技术背景
自动化测试现在已经广泛的应用到各种测试活动中,通过工具化测试和自动化测试不仅能方便的模拟各种异常情况测试,而且由于测试用例的自动执行可以节省大量的人力。测试工具和被测对象之间的一种重要纽带就是消息。
消息是各个模块、子系统间通讯的一种基本形式。一般在被测对象的边界可以清晰的划分出各种消息接口,从而构造测试驱动模块和测试桩模块对被测对象进行测试。如图1所示。其中驱动模块根据测试用例的需要构造对被测模块输入测试消息,桩模块用来支撑被测模块运行。
由于消息类型多,往往造成驱动模块和桩模块有各自的独立性。对于自动化测试来说这种独立性会增加工具复杂性和控制难度。如果测试工具本身是分布式的,那么相应的工具内部通讯和控制成本会更大。
自动化测试工具还有一个通病:往往功能测试工具和性能测试工具不能合二为一。功能测试工具要求尽可能测试的细致,而忽略了性能方面;性能测试工具往往要求尽可能的快,往往顾及不到功能细节。
现有测试自动化测试模型往往是根据不同消息类型构造分离的处理模块,分别处理各种不同的消息,或分别对消息进行预处理,然后再传给控制模块分析结果。如图2所示,即是这种情况下测试模型示意图。
进行测试时,控制模块控制不同的驱动模块根据测试用例需要构造出不同的消息,然后发送给被测试模块,引起被测模块做相应的动作或状态转换。同时控制模块需要控制桩模块对被测模块的动作提供支持(如构造其运行所需要的数据)。被测模块执行的最终结果被记录下来,并通过与预期值的比较来确定其功能是否正常,从而完成对被测模块的测试。
由于上述各模块可能位于不同的应用程序中或不同的机器上,通讯控制的难度较大。测试工具系统内部(如驱动模块和桩模块)沟通协调能力也有限。因为驱动消息是实时构造并发送给被测模块,所以无法进行流控和性能测试。
发明内容
本发明的目的就是提供一种测试装置和测试方法,使得在测试过程中,可以统一消息处理过程和测试控制,同时完成功能测试和性能测试,为此,本发明采用如下技术方案:
一种通用自动化测试装置,其特征在于包括:
消息类型处理模块、消息格式转换模块、缓冲区消息队列模块、消息类型接口模块和控制模块;
所述的消息类型处理模块接受输入脚本控制,构造测试消息帧;并接收被测模块的应答消息,解释处理该应答消息;
所述的消息格式转换模块与消息类型处理模块相连,将其构造的各种消息帧封装成固定格式的内部封装帧,或将内部封装帧解封装还原成消息帧;
所述的缓冲区消息队列模块与消息格式转换模块相连,存储封装帧,并且在接到发送控制命令时将存储的封装帧发送给消息格式转换模块解封装;
所述的消息类型接口模块与消息格式转换模块相连,将其还原的测试消息帧加载到被测模块,或者接收被测模块的响应并将响应消息帧发送给消息格式转换模块;
所述的控制模块与上述各模块相连,并发送控制信号给各模块。
所述的测试装置还包括流量控制模块,与缓冲区消息队列模块及控制模块相连,发送流量控制信号给缓冲区消息队列模块。
所述的消息类型处理模块为多个。
所述的消息类型接口模块为多个。
一种通用自动化测试方法,其特征在于包括:
S1、根据测试用例构造测试消息帧;
S2、将测试消息帧封装成内部封装帧,并根据测试帧属性设置封装帧的帧头;
S3、将封装帧存储到缓冲区消息队列;
S4、将封装帧解封装成测试消息帧并发送到被测模块;
S5、从被测模块接收响应消息帧;
S6、将响应消息帧封装成内部封装帧,并根据响应消息帧属性设置内部封装帧的帧头;
S7、将内部封装帧解封装成原来的响应消息帧,并产生测试结果。
所述的步骤S2或S6中,该帧头中包括消息类型、ID、命令码等信息。
所述的步骤S3中,所述的缓冲区消息队列,是通过链表或者哈西表实现的。
所述的方法还包括记录测试日志的步骤。
所述的方法还包括显示测试状态的步骤。
本发明可以构造一个通用的基于消息的自动化测试工具,避免了测试多消息接口被测对象时,测试工具庞大、复杂,不利实现和性能低的问题。而且通过消息池,实现测试消息的构造和发送分离,满足性能测试的需要。
本发明的测试方法,可以实现测试消息的构造和发送分离,可以同时满足性能测试和功能测试的需要。
附图说明
图1是现有技术中测试消息驱动的测试模型示意图;
图2是现有技术中分离处理测试消息的自动化模型示意图;
图3是本发明统一测试消息驱动的测试装置示意图;
图4是本发明实施例中测试方法的流程图;
图5是本发明的封装帧示意图。
具体实施方式
下面结合说明书附图来说明本发明的具体实施方式。
如图3所示,是本发明测试装置的结构示意图,从图中可以看到,该测试装置主要包括以下组成部分:
消息类型处理模块、消息格式转换模块、缓冲区消息队列模块、流量控制模块、消息类型接口模块和控制模块。
其中,消息类型处理模块与测试脚本控制器等脚本输入装置相连,接受输入脚本控制,构造不同类型的测试消息帧,并发送给消息格式转换模块,由消息格式转换模块将该测试消息帧按照固定的帧格式封装形成封装帧,并存入缓冲区消息队列模块。比如本发明的内容中,该消息类型处理模块设置了4个,那么就可以构造出4种类型的测试消息帧。
同时,该消息类型处理模块还要接收被测模块应答的相应类型的消息,解释处理该应答消息;
缓冲区消息队列模块存储消息格式转换模块封装后的封装帧,并发送封装帧给消息格式转换模块,由消息格式转换模块将封装帧还原成原来的测试消息帧,通过消息类型接口模块将该测试消息帧发送到被测试模块,并接收被测试模块的响应消息帧,完成测试。
上述各模块的连接、动作过程中,由控制模块发送并接收信号给上述各模块,对各模块进行控制。
在本实施例中,消息类型处理模块和消息类型接口模块分别设置了4个,这可以依据实际需要而定,根据不同的测试用例设置不同的消息类型处理模块,相对应的设置不同的消息类型接口模块,这种设置方式,使得本发明的测试装置可以灵活的处理测试需求。
控制模块在测试开始时首先启动,然后负责加载其它模块(在这里并不是每个测试过程都需要启动所有的消息处理模块,且消息类型接口模块也是根据实际的连接需要建立的,这些都可以通过控制模块进行控制)。测试过程中,控制模块负责管理缓冲区消息队列模块,分发测试帧到对应的接口模块,同时把被测模块的应答消息帧分发给不同的消息类型处理模块。此外,控制模块还负责监控各模块的状态,记录日志和显示当前测试状态等。测试结束时,控制模块负责卸载其它模块,释放占用的资源。
本实施例的测试装置设置一个通用的内部消息协议格式,通过把不同的测试消息帧都打包成内部消息格式,完成了不同消息帧格式的规整。正是由于这个消息规整过程,为统一测试控制、流量控制打下了基础。在同被测模块的接口处,该内部消息格式封装帧被解封装还原成原来的消息帧格式,从而不影响对被测对象的测试。
由于测试消息在内部采用统一的帧格式,可以在工具中构造一个消息缓冲区队列模块,实现测试消息的构造和发送分离。测试消息通过预先构造的方式存储在该缓冲池中,可以在测试时一次发送大量的测试消息(发送流量只受解封装和传递路径能力的限制),满足性能测试的需要。
缓冲区消息队列模块是一个内部封装帧的消息队列,可以使用链表、哈西表或其他的集合类实现,只要易于插入、删除和遍历即可。一般考虑到运行测试工具的计算机资源状况,应该限制缓冲区消息队列模块大小在一个合理的范围内,以免缓冲区消息队列模块过大造成系统不稳定。
如图4所示,是本发明测试方法的流程示意图,从图中可以看出,本发明的具体测试过程包括如下步骤:
S1、根据测试用例,测试脚本控制消息处理模块构造测试消息帧(假设是消息类型1、2二种消息格式)。
S2、消息格式转换模款将这些测试消息帧被封装成统一的内部帧格式,形成封装帧,并根据这个封装帧的各种属性填写好帧头(消息类型,ID,命令码等);
如图5所示,是本发明封装帧的一个示意图,从图中可见,该封装帧的帧头部分包括帧序号、帧类型、命令字、帧长度等相关信息。这些信息用来接封装测试消息帧。
这个过程是驱动消息构造过程,它同后面的测试消息帧发送过程是独立的,既可以提前构造这些封装帧,也可以边构造边发送这些封装帧。
S3、然后将构造好的封装帧存入缓冲区消息队列。该缓冲区消息队列的设置,可以使得测试帧在不需要测试的时候保存,需要构造的时候一次性或者大量的发送,达到性能测试的目的。
S4、在控制模块下达发送封装帧的命令后,封装帧就被从缓冲区消息队列中取出,根据帧头的信息解封装后,还原测试消息帧,并交给不同类型的消息接口处理。
在这里,封装帧发送的流量受流量控制步骤的控制,当接到流量控制命令后,缓冲区消息队列中存储的消息被发送给消息格式转换模块解封装,并发送。而消息接口直接把这些测试消息帧发送到被测模块,引起被测模块做相应的动作或状态转换。
S5、从被测模块接收响应消息帧;被测模块接收到测试消息帧后,要做相应的测试响应,这些测试响应即可收集以利于测试分析结果。
S6、将响应消息帧封装成内部封装帧,并根据响应消息帧属性设置内部封装帧的帧头;
S7、将内部封装帧解封装成原来的响应消息帧,并产生测试结果。
测试的最终结果通过其它接口(假设是消息类型4接口)反馈给测试工具,经对应的消息类型处理模块分析后记录成测试结果。这样就完成了对被测模块的某一功能点的测试。其间被测模块可能需要其它支持(如需要某一个状态值),可以通过其它接口(假设是消息3类型接口)反馈给测试工具,由测试工具直接构造其所需要的测试消息帧,并响应被测模块。
本发明的测试装置和测试方法,可以构造一个通用的基于消息的自动化测试工具。避免了测试多消息接口被测对象时,测试工具庞大、复杂,不利实现和性能低的问题。而且通过消息池,实现测试消息的构造和发送分离,满足性能测试的需要。
Claims (9)
1、一种通用自动化测试装置,其特征在于包括:
消息类型处理模块、消息格式转换模块、缓冲区消息队列模块、消息类型接口模块和控制模块;
所述的消息类型处理模块接受输入脚本控制,构造测试消息帧;并接收被测模块的应答消息,解释处理该应答消息;
所述的消息格式转换模块与消息类型处理模块相连,将其构造的各种消息帧封装成固定格式的内部封装帧,或将内部封装帧解封装还原成消息帧;
所述的缓冲区消息队列模块与消息格式转换模块相连,存储封装帧,并且在接到发送控制命令时将存储的封装帧发送给消息格式转换模块解封装;
所述的消息类型接口模块与消息格式转换模块相连,将其还原的测试消息帧加载到被测模块,或者接收被测模块的响应并将响应消息帧发送给消息格式转换模块;
所述的控制模块与上述各模块相连,并发送控制信号给各模块。
2、如权利要求1所述的测试装置,其特征在于还包括流量控制模块,与缓冲区消息队列模块及控制模块相连,发送流量控制信号给缓冲区消息队列模块。
3、如权利要求2所述的测试装置,其特征在于所述的消息类型处理模块为多个。
4、如权利要求2所述的测试装置,其特征在于所述的消息类型接口模块为多个。
5、一种通用自动化测试方法,其特征在于包括:
S1、根据测试用例构造测试消息帧;
S2、将测试消息帧封装成内部封装帧,并根据测试帧属性设置封装帧的帧头;
S3、将封装帧存储到缓冲区消息队列;
S4、将封装帧解封装成测试消息帧并发送到被测模块;
S5、从被测模块接收响应消息帧;
S6、将响应消息帧封装成内部封装帧,并根据响应消息帧属性设置内部封装帧的帧头;
S7、将内部封装帧解封装成原来的响应消息帧,并产生测试结果。
6、如权利要求5所述的测试方法,其特征在于所述的步骤S2或S6中,该帧头中包括消息类型、ID、命令码等信息。
7、如权利要求5所述的测试方法,其特征在于所述的步骤S3中,所述的缓冲区消息队列,是通过链表或者哈西表实现的。
8、如权利要求5所述的方法,其特征在于还包括记录测试日志的步骤。
9、如权利要求5所述的方法,其特征在于还包括显示测试状态的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410056120XA CN100456865C (zh) | 2004-08-12 | 2004-08-12 | 一种通用自动化测试装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410056120XA CN100456865C (zh) | 2004-08-12 | 2004-08-12 | 一种通用自动化测试装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1735252A true CN1735252A (zh) | 2006-02-15 |
CN100456865C CN100456865C (zh) | 2009-01-28 |
Family
ID=36077403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200410056120XA Expired - Fee Related CN100456865C (zh) | 2004-08-12 | 2004-08-12 | 一种通用自动化测试装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100456865C (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100520732C (zh) * | 2006-12-26 | 2009-07-29 | 中国电信股份有限公司 | 性能测试脚本生成方法 |
CN101212362B (zh) * | 2006-12-26 | 2010-05-19 | 中兴通讯股份有限公司 | 一种融合多类型测试工具的自动化测试装置及方法 |
CN101227349B (zh) * | 2008-02-03 | 2010-08-11 | 华为技术有限公司 | 一种系统变更的自动测试装置及方法 |
CN102185729A (zh) * | 2009-12-24 | 2011-09-14 | 爱德万测试株式会社 | 测试装置、测试方法及系统 |
CN102214140A (zh) * | 2011-06-21 | 2011-10-12 | 中兴通讯股份有限公司 | 软件自动测试的方法及系统 |
CN101645808B (zh) * | 2009-05-15 | 2012-01-04 | 天津七一二通信广播有限公司 | 采用模拟反馈框架测试通信终端的方法 |
CN106201810A (zh) * | 2016-06-30 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种测试方法、装置 |
WO2019109553A1 (zh) * | 2017-12-08 | 2019-06-13 | 平安科技(深圳)有限公司 | 功能及性能测试脚本的创建方法、装置、设备及存储介质 |
CN110213119A (zh) * | 2018-03-07 | 2019-09-06 | 财付通支付科技有限公司 | 测试桩生成方法、测试系统、测试方法及设备 |
CN111866148A (zh) * | 2020-07-23 | 2020-10-30 | 浪潮云信息技术股份公司 | 一种消息队列流量控制系统 |
CN113595966A (zh) * | 2020-04-30 | 2021-11-02 | 阿里巴巴集团控股有限公司 | 串口通信控制、配置、测试方法、装置、电子设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001090897A2 (en) * | 2000-05-19 | 2001-11-29 | Leung Wu Hon Francis | Methods and apparatus for preventing software modifications from invalidating previously passed integration tests |
CN1265569C (zh) * | 2002-07-23 | 2006-07-19 | 华为技术有限公司 | 一种使用脚本补丁的白盒测试系统及其测试方法 |
CN1265570C (zh) * | 2002-10-10 | 2006-07-19 | 华为技术有限公司 | 一种测试装置 |
CN1328689C (zh) * | 2002-11-22 | 2007-07-25 | 中兴通讯股份有限公司 | 一种系统产品的自动化测试方法 |
-
2004
- 2004-08-12 CN CNB200410056120XA patent/CN100456865C/zh not_active Expired - Fee Related
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212362B (zh) * | 2006-12-26 | 2010-05-19 | 中兴通讯股份有限公司 | 一种融合多类型测试工具的自动化测试装置及方法 |
CN100520732C (zh) * | 2006-12-26 | 2009-07-29 | 中国电信股份有限公司 | 性能测试脚本生成方法 |
CN101227349B (zh) * | 2008-02-03 | 2010-08-11 | 华为技术有限公司 | 一种系统变更的自动测试装置及方法 |
CN101645808B (zh) * | 2009-05-15 | 2012-01-04 | 天津七一二通信广播有限公司 | 采用模拟反馈框架测试通信终端的方法 |
CN102185729B (zh) * | 2009-12-24 | 2013-12-04 | 爱德万测试株式会社 | 测试装置、测试方法及系统 |
CN102185729A (zh) * | 2009-12-24 | 2011-09-14 | 爱德万测试株式会社 | 测试装置、测试方法及系统 |
CN102214140B (zh) * | 2011-06-21 | 2017-02-15 | 中兴通讯股份有限公司 | 软件自动测试的方法及系统 |
CN102214140A (zh) * | 2011-06-21 | 2011-10-12 | 中兴通讯股份有限公司 | 软件自动测试的方法及系统 |
CN106201810A (zh) * | 2016-06-30 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种测试方法、装置 |
WO2019109553A1 (zh) * | 2017-12-08 | 2019-06-13 | 平安科技(深圳)有限公司 | 功能及性能测试脚本的创建方法、装置、设备及存储介质 |
CN110213119A (zh) * | 2018-03-07 | 2019-09-06 | 财付通支付科技有限公司 | 测试桩生成方法、测试系统、测试方法及设备 |
CN110213119B (zh) * | 2018-03-07 | 2022-02-22 | 财付通支付科技有限公司 | 测试桩生成方法、测试系统、测试方法及设备 |
CN113595966A (zh) * | 2020-04-30 | 2021-11-02 | 阿里巴巴集团控股有限公司 | 串口通信控制、配置、测试方法、装置、电子设备和存储介质 |
CN113595966B (zh) * | 2020-04-30 | 2023-04-18 | 阿里巴巴集团控股有限公司 | 串口通信控制、配置、测试方法、装置、电子设备和存储介质 |
CN111866148A (zh) * | 2020-07-23 | 2020-10-30 | 浪潮云信息技术股份公司 | 一种消息队列流量控制系统 |
CN111866148B (zh) * | 2020-07-23 | 2022-05-31 | 浪潮云信息技术股份公司 | 一种消息队列流量控制系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100456865C (zh) | 2009-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1735252A (zh) | 一种通用自动化测试装置及方法 | |
CN103605709B (zh) | 一种分布式音视频处理装置及处理方法 | |
CN101064191A (zh) | 闪存装置和闪存的访问方法 | |
CN107749893A (zh) | 一种共享文件系统中实现快速接收和储存数据的方法 | |
CN101996265B (zh) | 一种存储器控制器验证系统及方法 | |
CN112947961A (zh) | 基于可视化图形配置的车辆刷写方法及设备 | |
CN102333210A (zh) | 一种视频数据存储方法及其设备 | |
CN1949203A (zh) | 小型计算机系统接口目标器的架构和数据传输方法 | |
CN1823355A (zh) | 用于控制运动平台的柔性接口 | |
CN1315067C (zh) | 具有内置驱动程序管理功能的外围设备及其管理方法 | |
CN1945478A (zh) | 仿真装置 | |
CN112468378A (zh) | 一种基于can总线的大容量数据传输设备及方法 | |
CN1838618A (zh) | 一种测试传输控制协议客户端的方法 | |
CN110069435B (zh) | 基于usb3.0转sccb的多摄像模组配置方法 | |
KR20200143881A (ko) | 제어기 통신 장치 및 그 방법 | |
CN114338270B (zh) | 数据通信方法、装置、电子设备及存储介质 | |
CN1445639A (zh) | 数据传输系统 | |
CN1764131A (zh) | 一种协议测试系统及方法 | |
CN112491620B (zh) | 一种基于srio的多通道数据传输控制器及调整方法 | |
CN1220940C (zh) | 邮箱通讯设备的仿真方法及测试主机和单板接口的方法 | |
CN1870505A (zh) | 一种嵌入式系统及其信息处理方法 | |
CN100337440C (zh) | 设备间的互通性测试方法及系统 | |
CN1719945A (zh) | 在帧结构上实现时分复用交换的电路及其交换方法 | |
CN112689223A (zh) | 汽车组合仪表语音播放系统和方法 | |
CN1574845A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090128 Termination date: 20200812 |