CN103544049A - 测试环境的自动处理方法、测试的自动化实现方法及装置 - Google Patents
测试环境的自动处理方法、测试的自动化实现方法及装置 Download PDFInfo
- Publication number
- CN103544049A CN103544049A CN201210238500.XA CN201210238500A CN103544049A CN 103544049 A CN103544049 A CN 103544049A CN 201210238500 A CN201210238500 A CN 201210238500A CN 103544049 A CN103544049 A CN 103544049A
- Authority
- CN
- China
- Prior art keywords
- test
- environment
- case
- script
- test environment
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种测试环境的自动处理方法、系统测试的自动化实现方法及装置,预先在测试环境所涉及的上游模块和下游模块的机器上部署远程调用服务;在系统测试过程中,当测试用例需要对测试环境进行操作时,生成对应的操作环境脚本,通过调用远程调用服务控制测试环境中的机器运行操作环境的脚本,并捕获运行结果。本发明针对系统测试时环境依赖多台机器的情形,将原本需要人工进行环境初始化、修复等对环境的操作通过远程调用服务的方式实现了自动化,有效地节约了人力成本,缩短了用例的运行周期。
Description
【技术领域】
本发明涉及计算机应用技术中的测试领域,特别涉及一种测试环境的自动处理方法、系统测试的自动化实现方法及对应装置。
【背景技术】
对于上下游模块配合工作的系统,在系统集成测试时,上有模块有时需要依赖下游模块的很多台机器同时提供服务以便测试上游模块的性能,下游模块在使用上游模块的服务时又需要调用上游模块相应的接口。目前这些接口一般是前端web系统基于某种语言以web service的方式提供的开放应用程序接口(API),自动化测试用例(case)也一般用相应的语言编写以方便实现。
本地的自动化测试case在运行之前往往需要检测测试环境中的上下游模块相关服务启动是否正常,配置环境是否正常,从而保证case能够正常运行,这一过程目前是通过人工完成的。同样,在一些特定功能下的测试,比如测试关闭或启动相应后台进程服务、压力测试后的服务重启等,这些在跨机器环境下的操作目前也是通过人工完成的。也就是说,目前针对这种上下游模块集成测试时环境依赖多台机器的情形,对应的自动化测试case对测试环境的初始化,采用人工的方式启动并初始化,对于压力测试导致的环境破坏,采用人工的方式重启来进行修复。这一方面增加了人力成本,另一方面导致case运行周期过长。
【发明内容】
有鉴于此,本发明提供了一种测试环境的自动处理方法、系统测试的自动化实现方法及对应装置,以便于针对系统测试时环境依赖多台机器的情形,实现测试环境的自动处理,节约人力成本,缩短case运行周期。
具体技术方案如下:
一种测试环境的自动处理方法,预先在测试环境所涉及的上游模块和下游模块的机器上部署远程调用服务;该方法包括:
在系统测试过程中,当测试用例需要对测试环境进行操作时,生成对应的操作环境脚本,通过调用远程调用服务控制测试环境中的机器运行所述操作环境的脚本,并捕获运行结果;
其中,所述操作为初始化环境,对应的操作环境脚本为初始化环境脚本;或者,所述操作为修改测试环境,对应的操作环境脚本为修改环境脚本;或者,所述操作为修复测试环境,对应的操作环境脚本为修复环境脚本;或者,所述操作为恢复测试环境,对应的操作环境脚本为恢复环境脚本。
根据本发明一优选实施例,所述通过调用远程调用服务控制测试环境中的机器运行所述操作环境的脚本为:指定远程调用服务在测试环境中机器的IP地址和端口,指定所述操作环境的脚本为待执行脚本,利用python的远程方法调用rpyc技术调用测试环境中的机器上部署的远程调用服务运行待执行脚本。
一种系统测试的自动化实现方法,该方法包括:
S1、确定待执行的功能测试用例;
S2、采用上述的测试环境的自动处理方法对测试环境进行初始化;
S3、依次或并发执行待执行的功能测试用例,其中在每次执行功能测试用例之前,如果需要的测试环境发生变化,则采用上述的测试环境的自动处理方法对测试环境进行初始化或修改。
根据本发明一优选实施例,所述并发执行待执行的功能测试用例为:预先将具有相同测试环境的待执行的功能测试用例划分为一个类别,按照预设的并发度并发执行一个类别中的多个功能测试用例。
根据本发明一优选实施例,预先按照待执行的功能测试用例按照所依赖的下游模块机器数量进行分组,各分组的功能测试用例分别独立执行;
如果分组中存在多个类别,则在该分组中依次执行各类别的功能测试用例,其中每一个类别中按照预设的并发度并发执行多个功能测试用例。
根据本发明一优选实施例,在所述步骤S3执行完所有的功能测试用例之后,还包括:
S4、确定待执行的压力测试用例;
S5、采用上述的测试环境的自动处理方法对测试环境进行修改,修改成压力测试用例需要的测试环境;
S6、执行待执行的压力测试用例。
根据本发明一优选实施例,在执行完本次系统测试的所有测试用例后,采用上述的测试环境的自动处理方法恢复测试环境。
根据本发明一优选实施例,所述步骤S2具体包括:
S21、运行待执行的功能测试用例的环境检查脚本,如果环境检查通过,则执行所述步骤S3;否则,执行步骤S22;
S22、采用上述的测试环境的自动处理方法对测试环境进行初始化或修复,转至步骤S21;
其中所述环境检查脚本为:包含针对待执行的功能测试用例的测试环境列表的初始化配置脚本。
根据本发明一优选实施例,在所述步骤S21中运行所述环境检查脚本的过程中,依据所述测试环境列表中的各检测项进行检测,如果所有检测项都通过检测,则确定环境检测通过,执行所述步骤S3;如果存在检测项没有通过检测,则执行步骤S22,并在步骤S22中针对没有通过检测的检测项生成修复环境脚本。
一种测试环境的自动处理装置,预先在测试环境所涉及的上游模块和下游模块的机器上部署远程调用服务,该装置包括:
脚本生成单元,用于在系统测试过程中,当测试case需要对测试环境进行操作时,生成对应的操作环境脚本;
远程调用单元,用于通过调用远程调用服务控制测试环境中的机器运行所述操作环境的脚本,并捕获运行结果;
其中,所述操作为初始化环境,对应的操作环境脚本为初始化环境脚本;或者,所述操作为修改测试环境,对应的操作环境脚本为修改环境脚本;或者,所述操作为修复测试环境,对应的操作环境脚本为修复环境脚本;或者,所述操作为恢复测试环境,对应的操作环境脚本为恢复环境脚本。
根据本发明一优选实施例,所述远程调用单元在通过调用远程调用服务控制测试环境中的机器运行所述操作环境的脚本时,指定远程调用服务在测试环境中机器的IP地址和端口,指定所述操作环境的脚本为待执行脚本,利用python的远程方法调用rpyc技术调用测试环境中的机器上部署的远程调用服务运行待执行脚本。
一种系统测试的自动化实现系统,该系统包括:
第一用例确定单元,用于确定待执行的功能测试用例;
上述的测试环境的自动处理装置,用于在所述第一用例确定单元确定待执行的功能测试用例后,对测试环境进行初始化,触发第一用例执行单元;在第一用例执行单元每次执行功能测试用例之前,如果需要的测试环境发生变化,则对测试环境进行初始化或修改;
第一用例执行单元,用于依次或并发执行待执行的功能测试用例。
根据本发明一优选实施例,所述第一用例执行单元在并发执行待执行的功能测试用例时,预先将具有相同测试环境的待执行的功能测试用例划分为一个类别,按照预设的并发度并发执行一个类别中的多个功能测试用例。
根据本发明一优选实施例,所述第一用例执行单元预先按照待执行的功能测试用例所依赖的下游模块机器数量进行分组,各分组的功能测试用例分别独立执行;如果分组中存在多个类别,则在该分组中依次执行各类别的功能测试用例,其中每一个类别中按照预设的并发度并发执行多个功能测试用例。
根据本发明一优选实施例,该系统还包括:
第二用例确定单元,用于在所述第一用例执行单元执行完所有的功能测试用例之后,确定待执行的压力测试用例;
所述测试环境的自动处理装置,还用于在所述第二用例确定单元确定待执行的压力测试用例后,对测试环境进行修改,修改成压力测试用例需要的测试环境,触发第二用例执行单元;
第二用例执行单元,用于受到触发后执行待执行的压力测试用例。
根据本发明一优选实施例,所述测试环境的自动处理装置,还用于在本次系统测试的所有测试用例都执行完毕后,恢复测试环境。
根据本发明一优选实施例,该系统还包括:
环境检查单元,用于在所述第一用例确定单元确定待执行的功能测试用例后,运行待执行的功能测试用例的环境检查脚本,如果环境检查通过,则控制所述测试环境的自动处理装置不进行环境初始化,触发第一用例执行单元;如果环境检查不通过,则控制所述测试环境的自动处理装置对测试环境进行初始化或修复后,重新运行所述环境检查脚本;
其中所述环境检查脚本为:包含针对待执行的功能测试用例的测试环境列表的初始化配置脚本。
根据本发明一优选实施例,所述环境检查单元在运行所述环境检查脚本的过程中,依据所述测试环境列表中的各检测项进行检测,如果所有检测项都通过检测,则确定环境检测通过;如果存在检测项没有通过检测,则控制所述测试环境的自动处理装置在对测试环境进行修复时针对没有通过检测的检测项生成修复环境脚本。
由以上技术方案可以看出,本发明针对系统测试时环境依赖多台机器的情形,将原本需要人工进行环境初始化、修复等对环境的操作通过远程调用服务的方式实现了自动化,有效地节约了人力成本,缩短了case的运行周期。
【附图说明】
图1为本发明实施例一提供的系统测试的自动化实现方法流程图;
图2为本发明实施例一提供的一个功能测试case并发执行的实例图;
图3为本发明实施例二提供的系统测试的自动化实现方法流程图;
图4为本发明实施例三提供的测试环境的自动化处理装置结构图;
图5为本发明实施例四提供的系统测试的自动化实现系统结构图;
图6为本发明实施例四提供的系统测试的自动化实现系统另一结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
预先在测试环境的机器(包括上游模块和下游模块)上部署远程调用服务,当自动化测试case需要对测试环境进行初始化时,生成初始化环境的脚本,通过调用远程调用服务控制测试环境中的机器运行初始化环境的脚本,并捕获机器的运行结果,从而完成测试环境的启动或重启的初始化需求。
如果仅需要对测试环境中的部分进行修改,则生成修改环境的脚本,通过调用远程调用服务控制测试环境中的机器运行修改环境的脚本,并捕获机器的运行结果,从而完成测试环境的修改需求。
有些诸如环境检查异常的情况下自动测试case需要对测试环境进行修复,此时可以生成修复环境的脚本,通过调用远程调用服务控制测试环境中的机器运行修复环境的脚本,并捕获机器的运行结果,从而完成修复环境的需求。
在测试完成后自动测试case需要对测试环境进行恢复,此时可以生成恢复环境的脚本,通过调用远程调用服务控制测试环境中的机器运行恢复环境的脚本,并捕获机器的运行结果,从而完成恢复环境的需求。
其中远程调用服务可以基于python的远程方法调用(rpyc,RemotePython Call)技术实现,当用户需要对测试环境中的机器进行控制时,通过指定远程调用服务的机器IP和端口以及待执行脚本,利用rpyc技术调用测试环境中的机器上部署的远程调用服务运行待执行脚本,为了便于case的编写和规范化每台及其可以按照相同端口开启服务。
python是一种面向对象、直译式计算机程序设计语言,拥有丰富和强大的类库,具有简单、易学、可移植性强等优点而越来越被广泛使用。rpyc是一个python的库用来实现RPC和分布式计算的工具,能够支持同步和异步操作、回调和远程服务以及透明的对象代理。
在获取测试环境中机器对脚本的运行结果时,可以采用对运行结果进行封装并通过远程管道的方式捕获到测试系统本地。也可以基于安全通信协议的安全外壳(SSH)协议、安全传输协议(SCP)对运行结果进行封装的方式捕获到测试系统本地。
下面通过实施例一针对上下游模块集成测试时环境依赖多台机器的情形,对执行自动化测试case的过程进行描述。
实施例一、
图1为本发明实施例一提供的系统测试的自动化实现方法流程图,如图1所示,该方法包括以下步骤:
步骤101:确定待执行的功能测试case。
步骤102:调用远程调用服务对测试环境进行初始化。
步骤103:依次或并发执行待执行的功能测试case。
如果依次执行待执行的功能测试case,则在每次执行待执行的功能测试case之前,如果需要的测试环境与当前的测试环境相同的话,则无需进行初始化;如果需要的测试环境与当前的测试环境部分相同的话,则可以通过调用远程调用服务对测试环境进行部分修改;如果需要的测试环境与当前的测试环境完全不同的话,则可以通过调用远程调用服务对测试环境重新进行初始化。
上述针对功能测试case的执行流程中,依次执行的方式效率较低,资源利用率也较低。优选地,可以控制各类依赖于相同测试环境的功能测试case并发执行。
具体地,可以预先将待执行的功能测试case进行分类,各类别的case之间具有不同的测试环境,各类别内部的case具有相同的测试环境。可以逐一对各类别的功能测试case进行并发执行,即控制一个类别的功能测试case并发执行完毕后,再控制下一个类别的功能测试case并发执行。其中,当一个类别的功能测试case执行完毕后,通过调用远程调用服务进行下一个类别的功能测试case的测试环境初始化和修改。
优选地,也可以首先对待执行的功能测试case按照所依赖的下游模块机器数量进行分组,该分组是较粗粒度的分组,例如,将功能测试case分成三组,第一组所依赖的下游模块机器数量区间为(0,5],第二组所依赖的下游模块机器数量区间为(5,10],第三组所依赖的下游模块机器数量区间为(10,15],然后将下游模块机器对应分成三组,每一组的机器数量不少于对应功能测试case组所依赖的下游模块机器数量最大值,即下游模块机器分成的三组分别包含的机器数量为5、10、15,分别用于第一组、第二组和第三组功能测试case的执行测试环境。每一组功能测试case可以在对应组的下游模块机器上分别执行,互不影响,在各组功能测试case内部,再进行相同测试环境的功能测试case的类别划分,使得同一类别中具有相同测试环境的功能测试case并发执行。
举一个例子,假设按照所依赖的下游模块机器数量将待执行的功能测试case分成了三组:A组、B组和C组,对应的下游模块机器为a组、b组和c组,即A组的功能测试case在a组的机器上执行,B组的功能测试case在b组的机器上执行,C组的功能测试case在c组的机器上执行,相互之间不会影响,可以并行执行。其中,在A组中,存在两个类别A1类和A2类,其中A1类中的各功能测试case具有相同的测试环境,A2类中的各功能测试case具有相同的测试环境,但A1类和A2类的功能测试case的功能测试环境不同。在A组的功能测试case执行时,先控制A1类的各功能测试case在a组的机器上并发执行,执行完毕后,调用a组机器上的远程调用服务将测试环境修改成A2类的功能测试case需要的测试环境,控制A2类的各功能测试case在a组的机器上并发执行。如果B组中的所有测试case的测试环境相同,则仅作为一个类别并发执行即可,C组中的所有case的测试环境也相同,也仅作为一个类别并发执行。该过程如图2所示。
其中,一个类别中的功能测试case可以按照预设的并发度并发执行,假设某一类别中的功能测试case为35个,如果预设的并发度为10,即每次控制10个case并发执行,则可以通过4次并发完成。
步骤104:确定待执行的压力测试case。
由于大规模压力测试可能会对测试环境造成破坏,因此在本发明实施例中待所有功能测试case执行完毕后,将压力测试case放在最后执行。另一方面,先执行功能测试case再执行压力测试case,也可以使得压力测试case借助之前执行功能测试case所初始化的部分环境,较少整体环境的初始化工作。
步骤105:通过调用远程调用服务对测试环境进行修改。
本步骤与步骤102类似,即需要对测试环境进行修改,修改成压力测试case需要的测试环境。
步骤106:执行压力测试case。
步骤107:针对上述执行结果生成报表,并调用远程调用服务恢复整个测试环境。
本步骤中恢复整个测试环境是为了在本次测试结束后,尽量减小对其他系统测试的影响。
实施例二、
本实施例与实施例一不同之处在于,在调用远程服务对测试环境进行初始化时,可以通过环境检查的方式,有些情况下,测试环境已经能够达到初始化状态,则无需对测试环境进行初始化,或者,部分环境已经达到初始化状态,则仅需要对测试环境进行修复。如图3所示,同样是先执行功能测试case,再执行压力测试case,在确定出待执行的功能测试case后,本实施例的执行流程包括:
步骤301:运行待执行的功能测试case的环境检查脚本,如果环境检查通过,则执行步骤303;否则,执行步骤302。
步骤302:通过调用远程调用服务对测试环境进行修复,转至步骤301。
在测试系统中维护一个初始化配置脚本(initENV.conf),该初始化配置脚本包含了针对待执行的功能测试case的测试环境的列表,该测试环境的列表中主要包括:测试系统和测试环境中机器的内存、CPU、接口等基础参数检测、远程调用服务进程和端口检测、数据库环境检测、apache环境检测、自动化测试case执行时本身依赖的环境检测等各项检测信息。依据其中的各项检测信息进行各项检测,如果检测全部通过,则说明各测试环境可以用于执行自动化测试case。如果存在某个机器的环境检测不通过,则可以调用远程调用服务对该机器的测试环境进行修复做到初始化环境,在修复时针对没有通过检测的检测项生成修复环境脚本。在进行修复后可以重新运行环境检查脚本,直至检测全部通过。
其中在进行各项检测时,依据各项检测的内容具体执行。例如,检测某个进程是否正常启动,通过执行pstree命令查看,如果启动异常,则会返回指示失败的返回值,此时需要调用相关的远程调用服务对该进程进行启动。
步骤303:依次或者并发执行待执行的功能测试case。
如果依次执行待执行的功能测试case,则在每次执行待执行的功能测试case之前,如果与上一个执行的功能测试case的测试环境不同,则首先通过调用远程调用服务对测试环境进行初始化或修复,然后再执行待执行的功能测试case。
如果采用并发的方式,如实施例一中所述,对一个类别中具有相同测试环境的多个case,则可以按照预设的并发度并发执行多个case,直至该类别中的case执行完毕;再执行下一个类别的case。对于预先按照所依赖下游模块的机器数量不同所划分的不同分组的case,则各组case可以分别独立执行,互不干扰,在同一分组中的case再按照类别并发执行。
待所有的功能测试case执行完毕后,执行步骤304。
步骤304:确定待执行的压力测试case。
步骤305:通过调用远程调用服务对测试环境进行修改。
步骤306:执行压力测试case。
步骤307:针对上述执行结果生成报表,并调用远程调用服务恢复整个测试环境。
以上为对本发明所提供方法进行的详细描述,下面结合实施例三和实施例四对本发明所提供的装置及系统进行详细描述。
实施例三、
图4为本发明实施例三提供的测试环境的自动化处理装置结构图,在该实施例中预先在测试环境所涉及的上游模块和下游模块的机器上部署远程调用服务,如图4所示,该装置可以包括:脚本生成单元401和远程调用单元402。
脚本生成单元401,用于在系统测试过程中,当测试case需要对测试环境进行操作时,生成对应的操作环境脚本。
远程调用单元402,用于通过调用远程调用服务控制测试环境中的机器运行操作环境的脚本,并捕获运行结果。
其中,操作为初始化环境,对应的操作环境脚本为初始化环境脚本;或者,操作为修改测试环境,对应的操作环境脚本为修改环境脚本;或者,操作为修复测试环境,对应的操作环境脚本为修复环境脚本;或者,操作为恢复测试环境,对应的操作环境脚本为恢复环境脚本。
远程调用单元402在通过调用远程调用服务控制测试环境中的机器运行操作环境的脚本时,指定远程调用服务在测试环境中机器的IP地址和端口,指定操作环境的脚本为待执行脚本,利用python的rpyc技术调用测试环境中的机器上部署的远程调用服务运行待执行脚本。
在获取测试环境中机器对脚本的运行结果时,可以采用对运行结果进行封装并通过远程管道的方式捕获到测试系统本地。也可以基于安全通信协议的SSH协议或SCP对运行结果进行封装的方式捕获到测试系统本地。
实施例四、
图5为本发明实施例四提供的系统测试的自动化实现系统结构图,如图5所示,该系统包括:
第一用例确定单元501,用于确定待执行的功能测试case。
实施例三中所述的测试环境的自动处理装置502,用于在第一用例确定单元501确定待执行的功能测试case后,对测试环境进行初始化,然后触发第一用例执行单元503;在第一用例执行单元503每次执行功能测试case之前,如果需要的测试环境发生变化,则对测试环境进行初始化或修改。
该测试环境的自动处理装置502对测试环境的处理方法如实施例三中所述采用调用远程调用服务的方式,在本实施例中不再赘述测试环境的自动处理装置502的具体实现。
第一用例执行单元503,用于依次或并发执行待执行的功能测试case。
其中在并发执行待执行的功能测试case时,预先将具有相同测试环境的待执行的功能测试case划分为一个类别,按照预设的并发度并发执行一个类别中的多个功能测试case。
更进一步地,可以预先按照待执行的功能测试case所依赖的下游模块机器数量进行分组,各分组的功能测试case分别独立执行;如果分组中存在多个类别,则在该分组中依次执行各类别的功能测试case,其中每一个类别中按照预设的并发度并发执行多个功能测试case。具体实例可以参照图2。
由于大规模压力测试可能会对测试环境造成破坏,因此在本发明实施例中,如果存在压力测试case,则待所有功能测试case执行完毕后,将压力测试case放在最后执行。另一方面,先执行功能测试case再执行压力测试case,也可以使得压力测试case借助之前执行功能测试case所初始化的部分环境,较少整体环境的初始化工作。此时,该系统还包括:
第二用例确定单元504,用于在第一用例执行单元503执行完所有的功能测试case之后,确定待执行的压力测试case。
此时测试环境的自动处理装置502,还用于在第二用例确定单元504确定待执行的压力测试case后,对测试环境进行修改,修改成压力测试case需要的测试环境,触发第二用例执行单元505。
第二用例执行单元505,用于受到触发后执行待执行的压力测试case。
另外,为了减小本次系统测试对其他系统测试的影响,测试环境的自动处理装置502可以在本次系统测试的所有测试case都执行完毕后,恢复测试环境。
对应于实施例二中环境检查的实现方案,该系统还可以包括:
环境检查单元506,用于在第一用例确定单元501确定待执行的功能测试case后,运行待执行的功能测试case的环境检查脚本,如果环境检查通过,则控制测试环境的自动处理装置502不进行环境初始化,触发第一用例执行单元503;如果环境检查不通过,则控制测试环境的自动处理装置502对测试环境进行初始化或修复后,重新运行环境检查脚本。其中环境检查脚本为:包含针对待执行的功能测试case的测试环境列表的初始化配置脚本。此时的系统结构如图6所示。
具体地,测试环境的列表中主要包括:测试系统和测试环境中机器的内存、CPU、接口等基础参数检测、远程调用服务进程和端口检测、自动化测试case执行时本身依赖的环境检测等各项检测信息。环境检查单元506在运行环境检查脚本的过程中,依据测试环境列表中的各检测项进行检测,如果所有检测项都通过检测,则确定环境检测通过;如果存在检测项没有通过检测,则控制测试环境的自动处理装置在对测试环境进行修复时针对没有通过检测的检测项生成修复环境脚本。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (18)
1.一种测试环境的自动处理方法,其特征在于,预先在测试环境所涉及的上游模块和下游模块的机器上部署远程调用服务;该方法包括:
在系统测试过程中,当测试用例需要对测试环境进行操作时,生成对应的操作环境脚本,通过调用远程调用服务控制测试环境中的机器运行所述操作环境的脚本,并捕获运行结果;
其中,所述操作为初始化环境,对应的操作环境脚本为初始化环境脚本;或者,所述操作为修改测试环境,对应的操作环境脚本为修改环境脚本;或者,所述操作为修复测试环境,对应的操作环境脚本为修复环境脚本;或者,所述操作为恢复测试环境,对应的操作环境脚本为恢复环境脚本。
2.根据权利要求1所述的方法,其特征在于,所述通过调用远程调用服务控制测试环境中的机器运行所述操作环境的脚本为:指定远程调用服务在测试环境中机器的IP地址和端口,指定所述操作环境的脚本为待执行脚本,利用python的远程方法调用rpyc技术调用测试环境中的机器上部署的远程调用服务运行待执行脚本。
3.一种系统测试的自动化实现方法,其特征在于,该方法包括:
S1、确定待执行的功能测试用例;
S2、采用如权利要求1所述的测试环境的自动处理方法对测试环境进行初始化;
S3、依次或并发执行待执行的功能测试用例,其中在每次执行功能测试用例之前,如果需要的测试环境发生变化,则采用如权利要求1所述的测试环境的自动处理方法对测试环境进行初始化或修改。
4.根据权利要求3所述的系统测试的自动化实现方法,其特征在于,所述并发执行待执行的功能测试用例为:预先将具有相同测试环境的待执行的功能测试用例划分为一个类别,按照预设的并发度并发执行一个类别中的多个功能测试用例。
5.根据权利要求4所述的系统测试的自动化实现方法,其特征在于,预先按照待执行的功能测试用例按照所依赖的下游模块机器数量进行分组,各分组的功能测试用例分别独立执行;
如果分组中存在多个类别,则在该分组中依次执行各类别的功能测试用例,其中每一个类别中按照预设的并发度并发执行多个功能测试用例。
6.根据权利要求3所述的系统测试的自动化实现方法,其特征在于,在所述步骤S3执行完所有的功能测试用例之后,还包括:
S4、确定待执行的压力测试用例;
S5、采用如权利要求1所述的测试环境的自动处理方法对测试环境进行修改,修改成压力测试用例需要的测试环境;
S6、执行待执行的压力测试用例。
7.根据权利要求3或6所述的系统测试的自动化实现方法,其特征在于,在执行完本次系统测试的所有测试用例后,采用如权利要求1所述的测试环境的自动处理方法恢复测试环境。
8.根据权利要求3所述的系统测试的自动化实现方法,其特征在于,所述步骤S2具体包括:
S21、运行待执行的功能测试用例的环境检查脚本,如果环境检查通过,则执行所述步骤S3;否则,执行步骤S22;
S22、采用如权利要求1所述的测试环境的自动处理方法对测试环境进行初始化或修复,转至步骤S21;
其中所述环境检查脚本为:包含针对待执行的功能测试用例的测试环境列表的初始化配置脚本。
9.根据权利要求8所述的系统测试的自动化实现方法,其特征在于,在所述步骤S21中运行所述环境检查脚本的过程中,依据所述测试环境列表中的各检测项进行检测,如果所有检测项都通过检测,则确定环境检测通过,执行所述步骤S3;如果存在检测项没有通过检测,则执行步骤S22,并在步骤S22中针对没有通过检测的检测项生成修复环境脚本。
10.一种测试环境的自动处理装置,其特征在于,预先在测试环境所涉及的上游模块和下游模块的机器上部署远程调用服务,该装置包括:
脚本生成单元,用于在系统测试过程中,当测试case需要对测试环境进行操作时,生成对应的操作环境脚本;
远程调用单元,用于通过调用远程调用服务控制测试环境中的机器运行所述操作环境的脚本,并捕获运行结果;
其中,所述操作为初始化环境,对应的操作环境脚本为初始化环境脚本;或者,所述操作为修改测试环境,对应的操作环境脚本为修改环境脚本;或者,所述操作为修复测试环境,对应的操作环境脚本为修复环境脚本;或者,所述操作为恢复测试环境,对应的操作环境脚本为恢复环境脚本。
11.根据权利要求10所述的装置,其特征在于,所述远程调用单元在通过调用远程调用服务控制测试环境中的机器运行所述操作环境的脚本时,指定远程调用服务在测试环境中机器的IP地址和端口,指定所述操作环境的脚本为待执行脚本,利用python的远程方法调用rpyc技术调用测试环境中的机器上部署的远程调用服务运行待执行脚本。
12.一种系统测试的自动化实现系统,其特征在于,该系统包括:
第一用例确定单元,用于确定待执行的功能测试用例;
如权利要求10所述的测试环境的自动处理装置,用于在所述第一用例确定单元确定待执行的功能测试用例后,对测试环境进行初始化,触发第一用例执行单元;在第一用例执行单元每次执行功能测试用例之前,如果需要的测试环境发生变化,则对测试环境进行初始化或修改;
第一用例执行单元,用于依次或并发执行待执行的功能测试用例。
13.根据权利要求12所述的系统测试的自动化实现系统,其特征在于,所述第一用例执行单元在并发执行待执行的功能测试用例时,预先将具有相同测试环境的待执行的功能测试用例划分为一个类别,按照预设的并发度并发执行一个类别中的多个功能测试用例。
14.根据权利要求13所述的系统测试的自动化实现系统,其特征在于,所述第一用例执行单元预先按照待执行的功能测试用例所依赖的下游模块机器数量进行分组,各分组的功能测试用例分别独立执行;如果分组中存在多个类别,则在该分组中依次执行各类别的功能测试用例,其中每一个类别中按照预设的并发度并发执行多个功能测试用例。
15.根据权利要求12所述的系统测试的自动化实现系统,其特征在于,该系统还包括:
第二用例确定单元,用于在所述第一用例执行单元执行完所有的功能测试用例之后,确定待执行的压力测试用例;
所述测试环境的自动处理装置,还用于在所述第二用例确定单元确定待执行的压力测试用例后,对测试环境进行修改,修改成压力测试用例需要的测试环境,触发第二用例执行单元;
第二用例执行单元,用于受到触发后执行待执行的压力测试用例。
16.根据权利要求12或15所述的系统测试的自动化实现系统,其特征在于,所述测试环境的自动处理装置,还用于在本次系统测试的所有测试用例都执行完毕后,恢复测试环境。
17.根据权利要求12所述的系统测试的自动化实现系统,其特征在于,该系统还包括:
环境检查单元,用于在所述第一用例确定单元确定待执行的功能测试用例后,运行待执行的功能测试用例的环境检查脚本,如果环境检查通过,则控制所述测试环境的自动处理装置不进行环境初始化,触发第一用例执行单元;如果环境检查不通过,则控制所述测试环境的自动处理装置对测试环境进行初始化或修复后,重新运行所述环境检查脚本;
其中所述环境检查脚本为:包含针对待执行的功能测试用例的测试环境列表的初始化配置脚本。
18.根据权利要求17所述的系统测试的自动化实现系统,其特征在于,所述环境检查单元在运行所述环境检查脚本的过程中,依据所述测试环境列表中的各检测项进行检测,如果所有检测项都通过检测,则确定环境检测通过;如果存在检测项没有通过检测,则控制所述测试环境的自动处理装置在对测试环境进行修复时针对没有通过检测的检测项生成修复环境脚本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210238500.XA CN103544049A (zh) | 2012-07-10 | 2012-07-10 | 测试环境的自动处理方法、测试的自动化实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210238500.XA CN103544049A (zh) | 2012-07-10 | 2012-07-10 | 测试环境的自动处理方法、测试的自动化实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103544049A true CN103544049A (zh) | 2014-01-29 |
Family
ID=49967527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210238500.XA Pending CN103544049A (zh) | 2012-07-10 | 2012-07-10 | 测试环境的自动处理方法、测试的自动化实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103544049A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301100A (zh) * | 2017-08-15 | 2017-10-27 | 北京悦畅科技有限公司 | 一种停车场远程控制方法、装置和系统 |
CN107305524A (zh) * | 2016-04-21 | 2017-10-31 | 北京京东尚科信息技术有限公司 | 压力测试方法及系统 |
CN107465572A (zh) * | 2017-08-02 | 2017-12-12 | 华数传媒网络有限公司 | 智能终端测试方法、装置及系统 |
CN107678965A (zh) * | 2017-09-30 | 2018-02-09 | 千寻位置网络有限公司 | 自动集成测试方法及系统、服务终端、存储器 |
CN107861864A (zh) * | 2017-08-25 | 2018-03-30 | 平安普惠企业管理有限公司 | 自动化测试方法、系统及计算机可读存储介质 |
CN108984405A (zh) * | 2018-07-12 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种性能测试方法、装置及计算机可读存储介质 |
CN109344069A (zh) * | 2018-09-30 | 2019-02-15 | 福建星瑞格软件有限公司 | 一种软件自动化测试的协同办公方法及协同办公平台 |
CN110083366A (zh) * | 2018-01-24 | 2019-08-02 | 腾讯科技(深圳)有限公司 | 应用运行环境的生成方法、装置、计算设备及存储介质 |
CN111625451A (zh) * | 2020-05-19 | 2020-09-04 | 北京百度网讯科技有限公司 | 自动化测试环境的初始化方法、装置、设备和介质 |
CN112214400A (zh) * | 2020-09-17 | 2021-01-12 | 浙江数链科技有限公司 | 一种自动化测试方法、装置、电子设备和可读存储介质 |
CN112765014A (zh) * | 2021-01-04 | 2021-05-07 | 光大兴陇信托有限责任公司 | 一种用于多用户同时操作的自动测试系统及工作方法 |
CN113094261A (zh) * | 2021-03-23 | 2021-07-09 | 杭州电魂网络科技股份有限公司 | 自动更新测试环境的方法、系统、电子装置和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040107415A1 (en) * | 2002-12-03 | 2004-06-03 | Konstantin Melamed | Web-interactive software testing management method and computer system including an integrated test case authoring tool |
CN1523326A (zh) * | 2003-02-20 | 2004-08-25 | 华为技术有限公司 | 一种环境应力实验自动测试方法 |
US20060070034A1 (en) * | 2004-09-28 | 2006-03-30 | International Business Machines Corporation | System and method for creating and restoring a test environment |
CN101216804A (zh) * | 2008-01-14 | 2008-07-09 | 中兴通讯股份有限公司 | 一种测试装置和方法 |
CN101599869A (zh) * | 2008-06-05 | 2009-12-09 | 国网南京自动化研究院 | 一种基于网络的仿真测试远程控制方法 |
CN101876940A (zh) * | 2009-11-30 | 2010-11-03 | 北京飞天诚信科技有限公司 | 一种自动化测试方法和装置 |
-
2012
- 2012-07-10 CN CN201210238500.XA patent/CN103544049A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040107415A1 (en) * | 2002-12-03 | 2004-06-03 | Konstantin Melamed | Web-interactive software testing management method and computer system including an integrated test case authoring tool |
CN1523326A (zh) * | 2003-02-20 | 2004-08-25 | 华为技术有限公司 | 一种环境应力实验自动测试方法 |
US20060070034A1 (en) * | 2004-09-28 | 2006-03-30 | International Business Machines Corporation | System and method for creating and restoring a test environment |
CN101216804A (zh) * | 2008-01-14 | 2008-07-09 | 中兴通讯股份有限公司 | 一种测试装置和方法 |
CN101599869A (zh) * | 2008-06-05 | 2009-12-09 | 国网南京自动化研究院 | 一种基于网络的仿真测试远程控制方法 |
CN101876940A (zh) * | 2009-11-30 | 2010-11-03 | 北京飞天诚信科技有限公司 | 一种自动化测试方法和装置 |
Non-Patent Citations (1)
Title |
---|
孙萌 等: "基于Web Service的TTCN-3远程测试系统", 《计算机应用与软件》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107305524A (zh) * | 2016-04-21 | 2017-10-31 | 北京京东尚科信息技术有限公司 | 压力测试方法及系统 |
CN107305524B (zh) * | 2016-04-21 | 2020-09-29 | 北京京东尚科信息技术有限公司 | 压力测试方法及系统 |
CN107465572A (zh) * | 2017-08-02 | 2017-12-12 | 华数传媒网络有限公司 | 智能终端测试方法、装置及系统 |
CN107301100A (zh) * | 2017-08-15 | 2017-10-27 | 北京悦畅科技有限公司 | 一种停车场远程控制方法、装置和系统 |
CN107861864A (zh) * | 2017-08-25 | 2018-03-30 | 平安普惠企业管理有限公司 | 自动化测试方法、系统及计算机可读存储介质 |
CN107678965A (zh) * | 2017-09-30 | 2018-02-09 | 千寻位置网络有限公司 | 自动集成测试方法及系统、服务终端、存储器 |
CN110083366A (zh) * | 2018-01-24 | 2019-08-02 | 腾讯科技(深圳)有限公司 | 应用运行环境的生成方法、装置、计算设备及存储介质 |
CN108984405B (zh) * | 2018-07-12 | 2022-06-07 | 郑州云海信息技术有限公司 | 一种性能测试方法、装置及计算机可读存储介质 |
CN108984405A (zh) * | 2018-07-12 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种性能测试方法、装置及计算机可读存储介质 |
CN109344069A (zh) * | 2018-09-30 | 2019-02-15 | 福建星瑞格软件有限公司 | 一种软件自动化测试的协同办公方法及协同办公平台 |
CN111625451A (zh) * | 2020-05-19 | 2020-09-04 | 北京百度网讯科技有限公司 | 自动化测试环境的初始化方法、装置、设备和介质 |
CN112214400A (zh) * | 2020-09-17 | 2021-01-12 | 浙江数链科技有限公司 | 一种自动化测试方法、装置、电子设备和可读存储介质 |
CN112765014A (zh) * | 2021-01-04 | 2021-05-07 | 光大兴陇信托有限责任公司 | 一种用于多用户同时操作的自动测试系统及工作方法 |
CN112765014B (zh) * | 2021-01-04 | 2024-02-20 | 光大兴陇信托有限责任公司 | 一种用于多用户同时操作的自动测试系统及工作方法 |
CN113094261A (zh) * | 2021-03-23 | 2021-07-09 | 杭州电魂网络科技股份有限公司 | 自动更新测试环境的方法、系统、电子装置和存储介质 |
CN113094261B (zh) * | 2021-03-23 | 2023-06-27 | 杭州电魂网络科技股份有限公司 | 自动更新测试环境的方法、系统、电子装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103544049A (zh) | 测试环境的自动处理方法、测试的自动化实现方法及装置 | |
CN101382915B (zh) | 一种软件调试系统及调试方法 | |
CN103019942B (zh) | 一种基于安卓系统的待测应用自动测试方法和系统 | |
CN103034575B (zh) | 崩溃分析方法和装置 | |
CN107133174A (zh) | 测试用例代码自动生成装置与方法 | |
CN103049373B (zh) | 一种崩溃的定位方法和装置 | |
CN102937932A (zh) | 集成异构测试工具的自动化测试装置及方法 | |
CN105933767B (zh) | 中间件装置、中间件实现方法和电视机 | |
CN108255717B (zh) | 接口自动化测试优化方法、系统、电子设备和存储介质 | |
TWI684916B (zh) | 函式選取方法和伺服器 | |
US20180089007A1 (en) | Detecting root causes of use-after-free memory errors | |
CN102306119A (zh) | 捕获全局异常的系统及方法 | |
CN104077220A (zh) | Mips架构操作系统内核的调试方法和装置 | |
CN113867600A (zh) | 处理流式数据的开发方法、装置和计算机设备 | |
CN111290958A (zh) | 一种调试智能合约的方法及装置 | |
CN105162703A (zh) | 基于混合协议的多级网络拓扑智能发现及生成方法和系统 | |
CN109710479B (zh) | 一种处理方法及第一设备、第二设备 | |
CN102664755A (zh) | 控制通道故障确定方法及其装置 | |
CN106991045A (zh) | 页面校验方法及装置 | |
CN101706752B (zh) | 一种软件错误现场定位的方法及装置 | |
CN102279794A (zh) | 一种rfid构件动态测试系统及方法 | |
CN106528402B (zh) | 一种测试终端的方法及系统 | |
CN101140529A (zh) | 一种基于同步事件多路分离器的多事件处理方法及装置 | |
CN116584085A (zh) | 基于工业网络的工业软件无埋点追踪分析方法、装置 | |
CN109766204A (zh) | 智能故障处理方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140129 |