一种基于消息的自动化测试的系统和方法

文档序号:7962836阅读:204来源:国知局
专利名称:一种基于消息的自动化测试的系统和方法
技术领域
本发明涉及通信技术领域,尤其涉及通信领域的自动化测试方法及技术。
背景技术
目前的自动化测试中,基于消息的测试是一种非常通用的测试方法,该方 法的实现方式各不相同, 一般采用如下方法,图1是基于消息的测试系统的典 型结构。如图所示:测试系统110中包含脚本解释模块111、测试驱动模块112、
结果比较模块113和记录模块114。
被测系统与外界有SOCKET接口,可以通过该接口与被测系统120连接
接收外界消息;
测试驱动模块112从测试脚本模块111中读取测试脚本,通过SOCKET 接口,将测试消息发送给被测试系统120,被测试系统120按照测试消息,执 行相应操作,生成结果消息,发送回测试系统iio。
测试系统110中包含结果比较模块113,将收到的消息与预期消息进行比 较,输出测试结果,并将比较后的测试结果由记录模块114,进行记录。
从图1中可以看出,测试过程中,测试点的选择很重要,如果所选择的被 测对象与外界没有网络接口 ,则无法使用该方法进行测试。
在实际的测试应用中,常会遇到一些系统结构,该结构无法直接使用基于 消息的自动化测试方法,给自动化测试带来困难。该结构的一个典型示例如图 2所示。图2是部分子系统的自动化测试示意图,如图所示,该系统中至少包 括第一子系统210和第二子系统220,第二子系统220还可以与其他子系统 240连接。
由于第一子系统无测试接口 ,无法把整个系统做为被测试对象; 如果选用图中的测试点230,测试只能分能两个部分,分别对第一子系统
210及第二子系统220进行测试,必须进行两套测试,测试脚本也是2套,非
常麻烦。
有人采用丢弃第一子系统210,只对第二子系统220及以下进行自动化测 试的方法来完成自动化测试,如果第一子系统中包含重要的功能模块,很明显这种测试方法的有效性不好。

发明内容
为解决上述问题,本发明的目的在于提出一种基于消息的自动化测试方 法,为了扩展现有基于消息的测试技术的适用范围,解决由于第一子系统没有
接口,而无法把整个系统做为被测试对象;难以开展自动化测试的问题。
为实现上述目的,本发明提出了一种基于消息的自动化测试的系统,包括
测试系统,用于向被测试系统发送测试信息,并接收被测试系统生成的测
试结果,对测试结果进行处理;
被测试系统,用于根据接收的测试信息生成测试结果,并将测试结果发回 至所述测试系统;
其中,还包括
一转换模块,分别直接与所述测试系统和所述被测试系统连接,在测试系 统与被测试系统之间建立了一条测试通道,用于将所述测试信息转换成被测试 系统可接受的数据发送给所述被测试系统,并将所述测试结果转换成测试系统 可接受的数据发送给所述测试系统。
上述的基于消息的自动化测试的系统,其中,所述转换模块具体包括 一TCP接口,用于连接所述测试系统,接收所述测试系统发送的测试信
息;
一与被测试系统的接口;
一数据格式转换子模块,用于对测试系统和被测试系统之间交互的数据进 行格式转换。
上述的基于消息的自动化测试的系统,其中,所述测试系统具体包括 脚本解释模块,用于设置并保存测试脚本,输出包含测试信息和预期结果
的脚本数据;
测试驱动模块,与所述脚本解释模块连接,用于读取所述脚本数据,将测 试消息发送给所述测试系统,并接收所述发回的测试结果,将测试结果和预期 结果发送结果比较模块,接收判断结果发送记录模块;
结果比较模块,与所述测试驱动模块连接,用于根据从所述测试驱动模块 接收的测试结果和预期结果进行结果比较,生成判断结论,发送回所述测试驱
动模块;
上述的基于消息的自动化测试的系统,其中,所述测试系统还包括 记录模块,与所述测试驱动模块连接,用于接收判断结果,进行记录保存, 并输出显示。
上述的基于消息的自动化测试的系统,其中,所述被测试系统包括
第一子系统,通过所述曾用于连接用户界面模块的接口与所述转换模块连 接,用于根据测试信息进行相应的操作;
第二子系统,与所述第一子系统连接,用于根据测试信息进行相应的操作。
为实现上述目的,本发明还提出了一种基于消息的自动化测试的方法,其 中,包括以下步骤-
步骤一,设置一转换模块,用于将所述转换模块分别直接与所述测试系统 和所述被测试系统连接,在测试系统与被测试系统之间建立了一条测试通道;
步骤二,所述测试系统发送测试信息至所述转换模块,所述转换模块将所 述测试信息转换成所述被测试系统可接受的数据,发送给所述被测试系统;
步骤三,所述被测试系统根据所述测试信息执行相应操作,返回测试结果 至所述转换模块,所述转换模块将所述测试结果转换为测试系统可接受的数 据,发送至所述测试系统;
步骤四,所述测试系统对所述测试结果进行处理。
上述的基于消息的自动化测试的方法,其中,所述步骤二具体包括以下步

步骤71 ,测试驱动模块与所述转换模块建立TCP连接;
步骤72,所述测试驱动模块从脚本解释模块中读取脚本数据,并将所述
测试信息发送至所述转换模块。
上述的基于消息的自动化测试的方法,其中,所述步骤四具体包括以下步

步骤81,所述测试驱动模块接收所述测试结果,并将所述测试结果和脚 本数据中的预期结果,发送至结果比较模块;
步骤82,所述结果比较模块将所述测试结果和预期结果进行比较,生成 判断结论。
上述的基于消息的自动化测试的方法,其中,
所述步骤82之后还包括
所述结果比较模块将所述判断结论经所述测试驱动模块,转发至记录模 块,所述记录模块将所述判断结论记录到文件中输出显示的步骤。
上述的基于消息的自动化测试的方法,其中,所述步骤四之后还包括
所述测试系统通过所述转换模块向所述被测试系统发送査询信息,查询所 述被测试系统的相关状态,以验证被测试系统是否实现了预期结果的步骤。
采用本发明所述方法和装置,与现有技术相比,对原来不易进行自动化测
试的系统结构,通过采用转换模块,达到了可以对人机交互界面以外的整个系 统进行自动化测试的目的。用非常小的代价,大大提高了自动化测试的有效性。


图1是基于消息的测试系统的典型结构示意图; 图2是部分子系统的自动化测试示意图; 图3是本发明所涉及的系统示意图; 图4是本发明测试步骤示意图。
具体实施例方式
下面结合附图对本发明具体实施例进行详细说明。 图3是本发明所涉及的系统示意图,如图3所示
被测试系统中的第一子系统中,包括用户界面模块(其他人机交互模块), 通过接口设置在第一子系统中,用于实现人机交互,本发明中将该接口作为被 测试系统与外界连接的测试点320
本发明包括转换模块310,包括一与被测试系统的接口,替换原第一子系 统中的用户界面模块,利用用户界面模块与被测试系统连接的接口作为测试点 320,与第一子系统连接。转换模块中还设置有一 TCP (Transmission Control Protocol / Internet Protocol,传输控制协议)接口,转换模块可以通过该TCP 接口接收来自被测试系统以外的外部消息。本发明中,转换模块310通过该 TCP接口与测试系统110连接。通过上述的两个接口,转换模块310在测试系 统与被测试系统之间建立了一条测试通道。此外,转换模块310还包括一数据 格式转换子模块,用于对测试系统和被测试系统之间交互的数据进行格式转
换,测试系统110与转换模块310建立TCP连接后,通过TCP接口向转换模
块310发送测试信息,转换模块将收到测试信息转换成被测试系统可接受的数
据格式后,发给被测试系统120。
被测试系统120根据测试信息主动或被动的执行相对应的操作,生成并返
回测试结果后,转换模块310将其转换成测试系统可以接受的数据发给测试系
统IIO,用于结果比较。
转换模块310与被测试系统120的接口即为原人机交互部份与被测试系统
120的接口。因此,转换模块310可以设置在被测试系统120中。 图4是本发明测试步骤示意图。如图所示,具体包括以下步骤 测试系统110与转换模块310建立TCP连接,准备发送测试信息; 测试系统110中的测试驱动模块112从脚本解释模块111读取测试脚本数
据,通过SOCKET接口,将测试信息发送给转换模块310;
转换模块310将测试信息转换成被测试系统120可接受的数据格式后发给
被测试系统120;
被测试系统120执行指定的操作后,返回测试结果(成功或失败),转换 模块310将操作结果转换成测试系统可识别的数据流发送给测试系统110;
测试系统110收到返回的测试结果后,测试驱动模块将测试结果和脚本数 据中的预期结果一同发送至结果比较模块113,结果比较模块113对测试结果 和预期结果进行比较,得出判断结论,结果比较模块113将判断结论返送回测 试驱动模块112,测试驱动模块112将判断结论转发至记录模块114,记录模 块114将判断结论记录到文件中,显示或者打印;
测试系统110重新发送下一条测试信息,进行下一次测试。 下面,我们用一个配置的例子技术方案的实施作进一步的详细描述 步骤l,对测试数据的消息结构进行定义。 我们定义该配置操作的操作码为Oxll,需要的参数是paml、 para2…paraN;,则可以采用自定义的格式对操作码及参数进行编码。假设编 码后的数据为08 11 06 01 02 03 04 05 06,其中,第一个0x08为整条测试数据 的长度,第二位Oxll为操作码,第三位0x06为参数的个数,后面跟着6个参 数值。
步骤2,测试系统向转换模块发送打包好的测试信息。
步骤3,转换模块接收到测试信息后,根据操作码,调用被测第一子系统
的相应功能模块,并将各参数传给被测子系统。
步骤4,被测试子系统执行相关功能后,将返回值传给转换模块。(若无 返回值,此步略过)
步骤5,转换模块将返回值打包成数据流发给测试系统。假设返回值为1, 则打包数据为04 11 01 Ol(若无返回值,可定义一个特殊的值传给测试系统)。
步骤6,测试到此并未结束,还需要验证是否真的配置成功。测试系统通
过转换模块发送一个査询请求,查询被测试系统的相关状态,以验证被测试系 统是否实现了预期结果。 至此,该操作的测试结束。
在实际测试中,测试用例不可能如此简单,此时,只需如上依次执行用例 中的每一步操作,即可完成测试。
综上所述,可以看出,该方法简单易懂,且转换模块实现起来很简单,对
被测系统的影响非常小,不会给测试系统带来额外的不可信,适用于附图2
所描述的应用场合。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情 况下,熟悉本领域的普通技术人员当可根据本发明做出各种相应的改变和变 形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种基于消息的自动化测试的系统,包括测试系统,用于向被测试系统发送测试信息,并接收被测试系统生成的测试结果,对测试结果进行处理;被测试系统,用于根据接收的测试信息生成测试结果,并将测试结果发回至所述测试系统;其特征在于,还包括一转换模块,分别直接与所述测试系统和所述被测试系统连接,在测试系统与被测试系统之间建立了一条测试通道,用于将所述测试信息转换成被测试系统可接受的数据发送给所述被测试系统,并将所述测试结果转换成测试系统可接受的数据发送给所述测试系统。
2. 根据权利要求1所述的基于消息的自动化测试的系统,其特征在于,所述转换模块具体包括一TCP接口,用于连接所述测试系统,接收所述测试系统发送的测试信息;一与被测试系统的接口;一数据格式转换子模块,用于对测试系统和被测试系统之间交互的数据进 行格式转换。
3. 根据权利要求1所述的基于消息的自动化测试的系统,其特征在于, 所述测试系统具体包括脚本解释模块,用于设置并保存测试脚本,输出包含测试信息和预期结果的脚本数据;测试驱动模块,与所述脚本解释模块连接,用于读取所述脚本数据,将测 试消息发送给所述测试系统,并接收所述发回的测试结果,将测试结果和预期 结果发送结果比较模块,接收判断结果发送记录模块;结果比较模块,与所述测试驱动模块连接,用于根据从所述测试驱动模块 接收的测试结果和预期结果进行结果比较,生成判断结论,发送回所述测试驱 动模块。
4. 根据权利要求3所述的基于消息的自动化测试的系统,其特征在于, 所述测试系统还包括记录模块,与所述测试驱动模块连接,用于接收判断结果,进行记录保存, 并输出显示。
5. 根据权利要求1所述的基于消息的自动化测试的系统,其特征在于, 所述被测试系统包括第一子系统,通过所述曾用于连接用户界面模块的接口与所述转换模块连 接,用于根据测试信息进行相应的操作;第二子系统,与所述第一子系统连接,用于根据测试信息进行相应的操作。
6. —种基于消息的自动化测试的方法,其特征在于,包括以下步骤 步骤一,设置一转换模块,用于将所述转换模块分别直接与所述测试系统和所述被测试系统连接,在测试系统与被测试系统之间建立了一条测试通道; 步骤二,所述测试系统发送测试信息至所述转换模块,所述转换模块将所述测试信息转换成所述被测试系统可接受的数据,发送给所述被测试系统;步骤三,所述被测试系统根据所述测试信息执行相应操作,返回测试结果至所述转换模块,所述转换模块将所述测试结果转换为测试系统可接受的数据,发送至所述测试系统;步骤四,所述测试系统对所述测试结果进行处理。
7. 根据权利要求6所述的基于消息的自动化测试的方法,其特征在于,所述步骤二具体包括以下步骤步骤71 ,测试驱动模块与所述转换模块建立TCP连接;步骤72,所述测试驱动模块从脚本解释模块中读取脚本数据,并将所述测试信息发送至所述转换模块。
8. 根据权利要求6所述的基于消息的自动化测试的方法,其特征在于, 所述步骤四具体包括以下步骤步骤81,所述测试驱动模块接收所述测试结果,并将所述测试结果和脚 本数据中的预期结果,发送至结果比较模块;步骤82,所述结果比较模块将所述测试结果和预期结果进行比较,生成 判断结论。
9. 根据权利要求8所述的基于消息的自动化测试的方法,其特征在于, '所述步骤82之后还包括 所述结果比较模块将所述判断结论经所述测试驱动模块,转发至记录模 块,所述记录模块将所述判断结论记录到文件中输出显示的步骤。
10.根据权利要求6所述的基于消息的自动化测试的方法,其特征在于, 所述步骤四之后还包括所述测试系统通过所述转换模块向所述被测试系统发送査询信息,査询所 述被测试系统的相关状态,以验证被测试系统是否实现了预期结果的步骤。
全文摘要
本发明提出了一种基于消息的自动化测试的系统,包括测试系统和被测试系统;其中,还包括转换模块,分别直接与测试系统和被测试系统连接,用于将测试信息转换成被测试系统可接受的数据发送给被测试系统,并将测试结果转换成测试系统可接受的数据发送给测试系统。此外,本发明还提出了一种基于消息的自动化测试的方法,包括将转换模块分别与测试系统和被测试系统连接;测试系统发送测试信息至转换模块,转换模块将测试信息转换成被测试系统可接受的数据,发送给被测试系统;被测试系统根据测试信息执行相应操作,返回测试结果至转换模块,转换模块将测试结果转换为测试系统可接受的数据,发送至测试系统;测试系统对测试结果进行处理。
文档编号H04L12/26GK101098207SQ20061008943
公开日2008年1月2日 申请日期2006年6月26日 优先权日2006年6月26日
发明者虹 南, 张学英, 苏春梅 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1