一种测试方法及系统的制作方法

文档序号:9754351阅读:296来源:国知局
一种测试方法及系统的制作方法
【技术领域】
[0001]本申请涉及通信技术领域,特别涉及一种测试方法。本申请同时还涉及一种被测试系统。
【背景技术】
[0002]随着人们网上活动的日益多样化,大型分布式架构系统成为运营商所不可或缺的工具。在大型分布式架构系统中,存在着大量的系统依赖关系,如网站交易系统需要同时依赖会员系统、账务系统等。通常在进行此类系统的自动化测试时,需要搭建一个完整的测试环境。目前,自动化测试过程通常使用以下方法对服务依赖关系进行简化处理:
[0003](一 )搭建一个通用的服务,用来模拟被测试系统对外围系统的依赖关系,一般称为Mock服务。
[0004](二)针对自动化测试的数据,在Mock服务中添加特定的返回值,用于模拟被测试系统远程调用依赖服务的结果。
[0005](三)将被测试系统的依赖关系指向Mock服务。
[0006](四)对被测试系统使用特定的测试数据进行自动化或手工测试。
[0007]在实现本申请的过程中,发明人发现以上现有的测试系统存在着如下的缺点:
[0008]1、服务模拟系统与自动化测试用例需要采用一致的数据,需要人工进行维护;
[0009]2、服务模拟系统虽然解决了被测试系统的外部依赖问题,但是又引入了模拟系统本身的依赖;
[0010]3、服务模拟系统需要人工输入所有数据;
[0011]由此可见,随着系统依赖复杂度的提高,对某个被测试系统进行测试需要更多的服务器成本与人力成本,因此如何在测试过程中使被测试系统摆脱对其外围系统的数据依赖,有效地提高被测试系统的测试效率,成为本领域技术人员亟待解决的技术问题。

【发明内容】

[0012]本申请提供了一种测试方法,用以解决现有的测试过程中被测试系统对外围系统的依赖性,避免了由该依赖性所带来的不可靠因素。该方法应用于包括被测试系统以及外围系统的分布式架构中,包括:
[0013]当所述被测试系统当前处于回放模式时,根据所述被测试系统所请求的参数,在已存储的记录数据中进行匹配及查找,所述已记录数据是根据所述被测试系统在录制模式下与所述外围系统之间的交互数据生成;
[0014]将与所述参数对应的数据返回至所述被测试系统,以使所述被测试系统进行测试。
[0015]相应地,本申请还提出了一种被测试系统,应用于包括所述被测试系统以及外围系统的分布式架构中,所述被测试系统包括被测设备以及代理模块,所述代理模块包括:
[0016]匹配子模块,用于当所述被测试系统当前处于回放模式时,根据所述被测试系统所请求的参数,在已存储的记录数据中进行匹配及查找,所述已记录数据是根据所述被测试系统在录制模式下与所述外围系统之间的交互数据生成;
[0017]接口子模块,用于将与所述参数对应的数据返回至所述被测试系统,以使所述被测试系统进行测试。
[0018]由此可见,通过应用本申请的技术方案,根据被测试系统在录制模式下述外围系统之间的交互数据生成已记录数据,当被测试系统当前处于回放模式时,根据该被测试系统所请求的参数在已存储的记录数据中进行匹配及查找,将与所述参数对应的数据返回至所述被测试系统,从而实现了模拟被测试系统对外围系统的数据的调用,简化测试过程中各系统之间的依赖关系,进一步提高了测试的效率。
【附图说明】
[0019]图1为本申请提出的一种测试方法的流程示意图;
[0020]图2为本申请具体实施例所提出的一种测试方法的示意图;
[0021]图3为本申请提出的一种被测试系统的结构示意图。
【具体实施方式】
[0022]如【背景技术】所述,由于外围系统的测试数据获取原因,现有技术中的被测试系统无法独立地自发进行测试。本申请通过录制系统触发事件与外围依赖系统调用数据,从而能够模拟被测试系统对依赖服务的调用,简化系统之间的依赖关系,并能够直接生成自动化测试用例,进行自动化回归测试。
[0023]如图1所示,本申请实施例提供了一种测试方法,所述方法应用于包括被测试系统以及外围系统的分布式架构中,该方法包括以下步骤:
[0024]步骤101、当所述被测试系统当前处于回放模式时,根据所述被测试系统所请求的参数,在已存储的记录数据中进行匹配及查找,所述已记录数据是根据所述被测试系统在录制模式下与所述外围系统之间的交互数据生成。
[0025]具体的,当所述被测试系统处于录制模式下时,获取所述被测试系统发送至所述外围系统的请求数据,以及所述外围系统根据所述请求数据向所述被测试系统返回的响应数据;并在获取到了请求数据和响应数据之后,将所述请求数据以及所述响应数据作为所述被测试系统在录制模式下与所述外围系统之间的交互数据,生成所述记录数据并进行存储。
[0026]步骤102、将与所述参数对应的数据返回至所述被测试系统,以使所述被测试系统进行测试。
[0027]为了实现被测试系统的自动测试,在将与所述参数对应的数据返回至所述被测试系统之后,该方法还可以获取并记录对所述被测试系统在所述录制模式下进行测试时输入的原始数据;根据所述原始数据以及所述交互数据生成自动化测试用例。
[0028]这样,在根据所述原始数据以及所述交互数据生成自动化测试用例之后,本步骤还将所述被测试系统设定处于所述回放模式之下,指示所述被测试系统执行所述自动化测试用例,以使所述被测试系统根据所述自动化测试用例中的原始数据以及交互数据自动进行测试。
[0029]需要指出的是,在以上步骤实施过程中,原始数据应至少包括http请求数据与返回数据、webservice服务调用参数与返回数据,在此基础上本领域技术人员可以采用更多的其他类型数据作为原始数据,这些都在本申请的保护范围之内。
[0030]为了进一步阐述本申请的技术思想,现结合如图2所示的具体结构示意图,对本申请的技术方案进行说明,本申请在被测试系统中嵌入了一个代理模块,其功能及流程如下:
[0031]1.代理拦截;
[0032]代理模块有两个主要功能:
[0033](I)录制功能,用来录制所依赖系统的交互数据,及测试过程中的请求和返回参数坐寸ο
[0034](2)回放功能,用来将录制的数据直接返回给被测试系统,从而可以模拟依赖服务调用。
[0035]在本装置中设置了两个代理模块:proxyA和proxyB ;
[0036]proxyA:主要用来拦截测试人员对系统进行测试时的原始数据,例如:http请求数据与返回数据,webservice服务调用参数与返回数据
[0037]proxyB:主要用来拦截被测试系统与外围系统的交互数据,在进行回放的时候proxyB会根据具体请求参数从已经录制的数据中进行匹配查找,找出最符合的数据直接返回给被测试系统。例如:在录制模式下,proxyB会录制webservice服务调用的参数与返回值;在回放模式下,proxyB通过请求参数计算出对应的返回值返回给被测试系统。
[0038]在Java语言中,代理模块可以使用aspectj等基于AOP的工具实现。但本装置不局限于特定开发语言。
[0039]2.数据存储;
[0040]数据存储模块主要用于存储录制获得的数据。被测试系统首先需要在正常依赖情况下进行人工或自动化测试,此时将代理设置为录制模式;代理拦截到的所有数据会以一定格式存储到文件中。在后面进行回放时,代理能够从文件中加载数据。
[0041]3.用例生成;
[0042]proxyA在录制请求数据时会录制下请求参数与返回内容,将这些数据进行转换可以生成自动化测试用例。这些测试用例回归了首次的手工或自动化测试。
[0043]4.自动化回归;
[0044]将代理模块设
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1