CN104850491A - 一种软件测试方法、设备及系统 - Google Patents
一种软件测试方法、设备及系统 Download PDFInfo
- Publication number
- CN104850491A CN104850491A CN201410056925.8A CN201410056925A CN104850491A CN 104850491 A CN104850491 A CN 104850491A CN 201410056925 A CN201410056925 A CN 201410056925A CN 104850491 A CN104850491 A CN 104850491A
- Authority
- CN
- China
- Prior art keywords
- test
- test assignment
- assignment
- described test
- server
- 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
- 238000012360 testing method Methods 0.000 claims abstract description 649
- 238000013522 software testing Methods 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 105
- 238000004891 communication Methods 0.000 claims description 62
- 238000012545 processing Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 7
- 239000000203 mixture Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000013101 initial test Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000004615 ingredient Substances 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000009227 behaviour therapy Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分布式软件测试方法,该方法包括:获取用于调度测试任务的测试任务调度信息;接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并将所述测试任务的执行指令发送给测试代理服务器;接收到所述测试代理服务器反馈的所述测试任务的执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务;确定存在与所述测试任务关联的后续测试任务时,调度所述关联的后续测试任务。本发明还同时公开了一种测试服务器、测试代理服务器、软件测试系统。
Description
技术领域
本发明涉及计算机软件领域的自动化软件测试技术,尤其涉及一种软件测试方法、设备及系统。
背景技术
当前,随着计算机硬件设备的飞速发展,计算机软件也随之越来越庞大,运行程序所需的硬件资源也越来越高,在软件测试时,通常采用一种将人为驱动的测试行为转化为机器执行的过程的自动化测试,通过自动化测试可以有效的节省人力、时间或硬件资源,提高系统的测试效率。目前有非常多的自动化测试软件,如:自动测试专家(quick test Professional,QTP)、企业级的功能测试软件WinRunner、自动化测试软件Rational Robot等,上述自动化测试软件为了保证程序运行的效果,特意设置了单例模式,即:一台智能终端上只能运行一个本软件程序。
发明人在实现本发明的过程中,发现现有分布式软件测试技术方案至少存在以下缺陷:
1、在客户端/服务端(C/S)架构模式下,往往需要同时运行多个客户端来保持对服务端的压力,以及客户端之间需要进行交互功能测试,而上述自动化测试软件在运行时均使用单例模式,这样,给软件的测试工作带来极大的不便。
2、上述自动化测试软件每个被测试的对象之间是相对独立的,无法进行有效的联动,是一种缺乏配合和协助的测试。举个例子:要测试一款投票软件,通过运行二十个客户端来模拟用户进行投票,若希望一部分用户投赞成票、一部分用户投反对票、还有一部分用户弃权,当使用上述各种测试软件时,就需要编写三种测试用例,并且分别为不同的客户端指派不同的测试用例,一旦测试场景发生变化,如期望全部投赞同票或全部投反对票,那么,测试用例的指派又需要重新调整,实施起来比较繁琐。
综上所述,目前亟需一种软件测试方法,能够实现在分布式系统架构下,运行在不同测试终端的多个或多组测试用例之间彼此关联、互相协作。
发明内容
有鉴于此,本发明实施例期望提供一种软件测试方法、设备及系统,能实现分布式架构下运行在不同测试终端的多个或多组测试用例间的协同运作。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种软件测试方法,获取用于调度测试任务的测试任务调度信息;该方法还包括:
接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并将所述测试任务的执行指令发送给测试代理服务器;
接收到所述测试代理服务器反馈的所述测试任务的执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务;
确定存在与所述测试任务关联的后续测试任务时,调度所述关联的后续测试任务。
上述方案中,所述测试任务调度信息包括:测试任务间的关联信息以及测试任务对应的测试代理服务器编号;
所述根据所述测试任务执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务,包括:
根据所述测试任务执行结果查询所述测试任务间的关联信息中对应的处理策略,确定是否存在与所述测试任务关联的后续测试任务。
上述方案中,所述根据所述测试任务调度信息将所述测试任务的执行指令发送给测试代理服务器,包括:
根据所述测试任务调度信息中所述测试任务对应的测试代理服务器编号,将所述测试任务的执行指令发送给对应编号的测试代理服务器。
上述方案中,所述获取用于调度测试任务的测试任务调度信息之前,所述方法还包括:
接收到所述测试代理服务器发送的注册请求消息时,根据所述注册请求消息与所述测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
本发明实施例提供了一种软件测试方法,该方法包括:
接收到测试服务器发送的测试任务的执行指令时,将所述执行指令处理后发送给测试终端;
接收到所述测试终端执行所述测试任务后发送的测试任务处理信息时,根据所述处理信息确定所述测试任务的执行结果,并将所述执行结果发送给所述测试服务器。
上述方案中,所述根据所述测试任务处理信息确定所述测试任务的执行结果,包括:
对所述测试任务处理信息进行解析,确定所述测试任务的执行状态;
根据所述执行状态的变化,确定所述测试任务的执行结果。
上述方案中,所述接收到测试服务器发送的执行指令之前,所述方法还包括:
将注册请求消息发送给所述测试服务器,由所述测试服务器根据所述注册请求消息与测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
根据上述方法,本发明实施例提供了一种测试服务器,该测试服务器包括:获取单元、测试任务调度单元、第一通信单元;其中,
所述获取单元,用于获取用于调度测试任务的测试任务调度信息;
所述测试任务调度单元,用于在所述第一通信单元接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并由所述第一通信单元将所述测试任务的执行指令发送给测试代理服务器;在所述第一通信单元接收到所述测试代理服务器反馈的执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务;确定存在与所述测试任务关联的后续测试任务时,调度所述关联的后续测试任务。
上述方案中,所述测试任务调度信息包括:测试任务间的关联信息以及测试任务对应的测试代理服务器编号,所述测试任务调度单元具体用于:
根据所述测试任务的执行结果查询所述测试任务间的关联信息中对应的处理策略,确定是否存在与所述测试任务关联的后续测试任务。
上述方案中,所述第一通信单元具体用于:
根据所述测试任务调度信息中所述测试任务对应的测试代理服务编号,将测试任务执行指令发送给对应编号的测试代理服务器。
上述方案中,所述第一通信单元还用于:
接收到所述测试代理服务器发送的注册请求消息时,根据所述注册请求消息与所述测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
根据上述方法,本发明实施例提供了一种测试代理服务器,该测试代理服务器包括:第二通信单元、指令处理单元、执行结果确定单元;其中,
所述指令处理单元,用于在所述第二通信单元接收到测试服务器发送的执行指令时,将所述执行指令处理后通过所述第二通信单元将处理后的执行指令发送给测试终端;
执行结果确定单元,用于在所述第二通信单元接收到所述测试终端执行所述测试任务后发送的测试任务处理信息时,根据所述测试任务处理信息确定所述测试任务的执行结果,通过所述第二通信单元将所述执行结果发送给所述测试服务器。
上述方案中,所述执行结果确定单元具体用于:
对所述测试任务处理信息进行解析,确定所述测试任务的执行状态;
根据所述执行状态的变化,确定所述测试任务的执行结果。
上述方案中,所述第二通信单元具体用于:
将注册请求消息发送给所述测试服务器,由所述测试服务器根据所述注册请求消息与测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
根据上述方法,本发明实施例还提供了一种软件测试系统,该系统包括:测试终端、如上述测试服务器、以及如上述测试代理服务器;其中,
所述测试终端,用于运行多个或多组测试用例,根据处理后的执行指令调用对应的测试用例完成所述测试任务;
所述测试服务器通过以下任意一种方式与所述测试代理服务器建立通信连接:
套接字socket通信方式、windows窗口消息方式、油槽方式、匿名管道方式、命名管道方式、信号量方式、消息队列方式、共享内存方式。
本发明实施例所提供的软件测试方法、设备及系统,预先获取用于调度测试任务的测试任务调度信息;接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并将所述测试任务的执行指令发送给测试代理服务器;在收到所述测试代理服务器反馈的所述测试任务的执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务;确定存在与所述测试任务关联的后续测试任务时,调度所述后续测试任务。如此,本发明实施例能根据所述执行结果以及所述测试任务调度信息确定测试任务之间的关联性,进而根据关联性调度相关的测试任务,这样,能够实现分布式架构下,通过统一配置的测试任务调度信息,使运行在不同测试终端的多个或多组测试用例之间协同运作。
附图说明
图1为本发明实施例一种软件测试方法实现流程示意图;
图2为本发明实施例另一种软件测试方法实现流程示意图;
图3为本发明实施例测试服务器的组成结构示意图;
图4为本发明实施例测试代理服务器的组成结构示意图;
图5为本发明实施例软件测试系统的组成结构示意图。
具体实施方式
本发明实施例应用于分布式软件测试系统,该系统中与本发明实施例相关的设备包括:测试服务器、测试代理服务器、测试终端;该系统能够实现分布式架构下通过配置统一的测试任务调度信息,使运行在不同测试终端的多个或多组测试用例之间协同运作。
基于上述软件测试系统架构,本发明实施例提供的软件测试方法具体实现如下所述:
首先,由测试服务器获取用于调度测试任务的测试任务调度信息,在接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并将所述测试任务的执行指令发送给测试代理服务器;
测试代理服务器接收到测试服务器发送的所述测试任务的执行指令时,将所述执行指令处理后发送给测试终端,由所述测试终端根据所述执行指令调度对应的测试用例完成所述测试任务;
所述测试代理服务器接收到所述测试终端执行所述测试任务后发送的测试任务处理信息时,根据所述测试任务处理信息确定所述测试任务的执行结果,并将所述执行结果发送给所述测试服务器;
所述测试服务器接收到所述测试代理服务器反馈的所述测试任务的执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务,确定存在与所述测试任务关联的后续测试任务时,调度所述关联的后续测试任务。
该软件测试系统中,仅有一个测试服务器,可以有多个测试代理服务器。测试代理服务器可以是桥接模式的物理设备,即独立于测试服务器的外部设备,测试服务器发往测试终端的测试任务执行指令首先需要经过测试代理服务器的处理,由测试代理服务器将测试任务执行指令转化为测试终端可以接收的外部输入后发送给测试终端;其中,外部输入既可以是通过鼠标键盘输入的指令,也可以通过由测试终端提供的测试接口,将所述测试任务执行指令转化为适合于所述测试接口的输入指令;
所述测试代理服务器接收到所述测试终端执行所述测试任务后发送的测试任务处理信息时,根据所述测试任务处理信息确定所述测试任务执行结果,并将所述测试任务执行结果发送给所述测试服务器,所述测试代理服务器还可以采用如下方式确定所述测试任务执行结果:所述测试代理服务器通过实时地监视测试终端执行所述测试任务后所述测试任务状态的变化,确定出所述测试任务的执行结果。
该软件测试系统中,测试代理服务器也可以是运行在测试服务器的操作系统低层的软件系统,即测试服务器内部的逻辑功能模块(称为测试代理模块),测试服务器中用于调度测试任务的调度模块发出的测试任务执行指令在测试服务器操作系统底层被测试代理模块获得,经过测试代理模块处理后发送给测试终端;测试终端发往测试服务器的测试任务处理信息被所述测试代理模块获得,由所述测试代理模块根据所述测试任务处理信息确定所述测试任务执行结果,并将所述测试任务执行结果发往所述测试服务器中的调度模块。
下面结合附图对本发明的具体实施方式进行说明。
如图1所示,本发明实施例提供的一种软件测试方法,应用于测试服务器中,具体实现步骤包括:
步骤S100:获取用于调度测试任务的测试任务调度信息;
这里,所述测试任务调度信息是预先设置的;
获取用于调度测试任务的测试任务调度信息之前,需要测试服务器与测试代理服务器之间建立通信连接,具体采用如下方式:
测试服务器接收到所述测试代理服务器发送的注册请求消息时,根据所述注册请求消息与所述测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号、进程名称、进程PID、窗口句柄、窗口标题、共享内存名称、共享内存地址、管道名称、信号对象等信息。
这里,可以通过以下任意一种方式与所述测试代理服务器建立通信连接:套接字socket通信方式、windows窗口消息方式、油槽方式、匿名管道方式、命名管道方式、信号量方式、消息队列方式、共享内存方式;本发明实施例对通信连接的方式不作具体限定。
这里,所述测试任务调度信息是为了调度测试任务而预设的,即为了达到测试目的而预先设定的测试任务执行的总编排,以达到根据所述测试任务调度信息进行自动化软件测试的目的,所述测试任务调度信息包括:测试任务间的关联信息以及测试任务对应的测试代理服务器编号;
其中,所述测试任务间的关联信息是根据测试任务的执行结果来设定的,即根据不同的执行结果设定对应的处理策略,并将处理策略对应的测试任务作为与所述测试任务关联的后续测试任务,从而使所述测试任务间的关联信息体现出测试任务间的相关性。
步骤S101:接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并将所述测试任务的执行指令发送给测试代理服务器。
这里,最初接收到的测试任务启动指令是由用户在需要进行自动化软件测试时发起的,接收到初始测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并将所述测试任务的执行指令发送给测试代理服务器。
这里,根据所述测试任务调度信息中所述测试任务对应的测试代理服务器编号,将测试任务执行指令发送给对应编号的测试代理服务器。
具体的,根据所述测试任务调度信息中所述测试任务对应的测试代理服务器编号,将测试任务执行指令以及对应的测试代理服务器编号打包为一个或多个指令集合发送给对应编号的测试代理服务器。
步骤S102:接收到所述测试代理服务器反馈的所述执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务;确定存在与所述测试任务关联的后续测试任务时,转入步骤S103;确定不存在与所述测试任务关联的后续测试任务时,转入步骤S104。
这里,根据所述执行结果查询所述测试任务间的关联信息中对应的处理策略,即根据所述执行结果进行条件判定,确定后续需要执行的测试任务。
这里,若已完成全部的测试任务的调度,则确定不存在与所述测试任务关联的后续测试任务;若测试过程中出现了不可预料的执行结果,则没有预先设定对应的处理策略,此时在测试任务间的关联信息中查询不到与所述测试任务关联的后续测试任务。
步骤S103:发送后续测试任务启动指令,并转入步骤S101。
步骤S104:结束处理所述测试任务,退出测试过程。
这里,若用户主动中止了所述测试任务,则结束处理所述测试任务,退出测试过程。
本发明实施例能根据所述测试任务执行结果以及所述测试任务调度信息确定测试任务之间的关联性,进而根据关联性调度相关的测试任务,这样,能够实现分布式架构下,通过统一配置的测试任务调度信息,使运行在不同测试终端的多个或多组测试用例之间协同运作。
为了更清楚地对本发明实施例进行说明,下面结合具体实施例对上述软件测试过程进行描述。
本实施例中,由用户配置统一的测试任务调度信息,并且使多个或多组测试用例运行在不同的个人计算机(personal computer,PC)电话终端;相应的,具体软件测试过程包括:
测试服务器获取用于调度测试任务的测试任务调度信息,接收到PC电话终端发起的PC电话注册请求时,根据所述测试任务调度信息调度PC电话注册这一初始测试任务,并将所述初始测试任务的执行指令发送给测试代理服务器;
该测试服务器接收到该测试代理服务器反馈的所述PC电话注册的执行结果时,若PC电话注册的执行结果为失败,则根据所述测试任务调度信息中对应的处理策略,调度后续测试任务一,即:PC电话终端为等待设定时长后重新发起注册请求;
若PC电话注册的执行结果为成功,由于查询所述测试任务调度信息中对应的处理策略为将所述PC电话终端加入空闲电话队列中,因此调度后续测试任务二,即将所述PC电话终端加入空闲电话队列中,若空闲电话队列中的PC电话终端数目达到设定阈值时,则调度后续测试任务三,即:随机抽取一个PC电话终端自动向被叫PC电话终端发起呼叫;在主叫PC电话终端侧,主叫PC电话终端若检测到被叫PC电话终端正处于通话中或未注册成功,则确定本次呼叫失败,根据对应的处理策略调度后续测试任务四,即:将主叫PC电话终端置为空闲状态,并加入空闲电话队列中,等待设定时长后,自动再次向另一个被叫PC电话终端发起呼叫,其中,设定时长可在一段数值范围内动态变化;主叫PC电话终端若检测到被叫PC电话终端接通,并在接通时间达到预设的时长时自动挂断,则确定本次呼叫正常结束,根据对应的处理策略调度后续测试任务五,即:将通话双方PC电话均重新置为空闲状态,并加入空闲电话队列中;主叫PC电话终端若检测到被叫PC电话终端拒绝接听,则根据对应的处理策略调度后续测试任务六,将主叫PC电话终端置为空闲状态,并加入空闲电话队列中;
在被叫PC电话终端侧,可以将对应的应答处理策略设置为被叫PC电话终端收到所述呼叫请求后自动接听,并在接通时间达到预设的时长时自动挂断,其中,预设的时长可在一段数值范围内动态变化;也可以将对应的应答处理策略设置为被叫PC电话终端收到呼叫请求后自动拒绝接听。
本发明实施例通过配置统一的测试任务调度信息,使运行在不同测试终端的多个或多组测试用例之间协同运作;因此,本发明实施例可以模拟真实用户的实际使用环境,通过长时间运行该软件测试系统,来实现分布式架构下全自动软件测试的目的。
如图2所示,本发明实施例提供的另一种软件测试方法,应用于测试代理服务器中,具体实现步骤包括:
步骤S200:接收到测试服务器发送的测试任务执行指令时,将所述测试任务执行指令处理后发送给测试终端。
这里,首先需要将测试代理服务器与测试服务器建立通信连接,具体采用如下方式:
将注册请求消息发送给所述测试服务器,由所述测试服务器根据所述注册请求消息与所述测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号、进程名称、进程PID、窗口句柄、窗口标题、共享内存名称、共享内存地址、管道名称、信号对象等信息。
这里,将所述测试任务的执行指令转化为测试终端可以接收的外部输入后发送给测试终端,由所述测试终端根据所述执行指令执行所述测试任务;其中,外部输入既可以是通过鼠标键盘输入的指令,也可以通过由测试终端提供的测试接口,将所述执行指令转化为适合于所述测试接口的输入指令;
这里,用户可以将多个或多组测试用例运行在分布式系统中不同的测试终端上,即每一测试终端可以运行多个或多组测试用例,所述测试终端在接收到处理后的执行指令时,根据该处理后的执行指令调用对应的测试用例完成所述测试任务,本发明实施例通过配置统一的测试任务调度信息,实现运行在不同测试终端的多个或多组测试用例之间的协同运作。
这里,测试终端可以为具有智能化任务执行功能的设备,例如,智能手机、电脑PC、平板电脑等智能终端。
这里,所述测试终端调用测试用例可以采用如下方式:模拟用户通过鼠标或键盘输入指令的方式、与待调用的测试用例之间建立进程间通信的方式或使用命令行的方式。
步骤S201:接收到所述测试终端执行所述测试任务后发送的测试任务处理信息时,根据所述测试任务处理信息确定所述测试任务的执行结果,并将所述执行结果发送给所述测试服务器。
这里,根据所述测试任务处理信息确定所述测试任务执行结果具体可以采用如下方式:
对所述测试任务处理信息进行解析,确定所述测试任务的执行状态;
根据所述执行状态的变化,确定所述测试任务的执行结果。
本发明实施例还可以采用如下方式确定所述测试任务的执行结果:通过实时地监视测试终端执行所述测试任务后所述测试任务状态的变化,确定出所述测试任务的执行结果。
本发明的上述实施例中,能够将测试任务执行指令转化为测试终端可以接收的外部输入后发送给测试终端,从而使测试终端能够根据的处理后的执行指令来执行所述测试任务,提高系统的执行效率;接收到所述测试终端执行所述测试任务后发送的测试任务处理信息时,根据所述测试任务处理信息确定所述测试任务的执行结果,并将所述执行结果发送给所述测试服务器,能够实时地监控所述测试任务的执行结果,并实时地将所述执行结果发送给所述测试服务器,从而实时且高效地完成自动化软件测试过程。
为实现上述方法,本发明实施例还提供了一种测试服务器、测试代理服务器以及一种软件测试系统,由于该测试服务器、测试代理服务器、软件测试系统解决问题的原理与方法相似,因此,设备的实施可以参见方法的实施,重复之处不再赘述。
如图3所示,本发明实施例提供的测试服务器,包括:获取单元300、测试任务调度单元301、第一通信单元302;其中,
所述获取单元300,用于获取用于调度测试任务的测试任务调度信息;
所述测试任务调度单元301,用于在所述第一通信单元302接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并由所述第一通信单元302将所述测试任务的执行指令发送给测试代理服务器;在所述第一通信单元302接收到所述测试代理服务器反馈的所述测试任务的执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务;确定存在与所述测试任务关联的后续测试任务时,调度所述关联的后续测试任务。
为了描述的方便,以上所述测试服务器的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。以上功能模块或单元的划分方式仅为本发明实施例给出的一种优选实现方式,功能模块或单元的划分方式不构成对本发明的限制。
具体实施中,所述测试任务调度信息包括测试任务间的关联信息以及测试任务对应的测试代理服务器编号,所述测试任务调度单元具体用于:
根据所述测试任务的执行结果查询所述测试任务间的关联信息中对应的处理策略,确定是否存在与所述测试任务关联的后续测试任务。
具体实施中,所述第一通信单元302具体用于:
根据所述测试任务调度信息中所述测试任务对应的测试代理服务编号,将所述测试任务的执行指令发送给对应编号的测试代理服务器。
具体实施中,所述第一通信单元302还用于:
接收到所述测试代理服务器发送的注册请求消息时,根据所述注册请求消息与所述测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
在实际应用中,所述获取单元300、测试任务调度单元301、第一通信单元302可由位于测试服务器中的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)实现。
如图4所示,本发明实施例提供的测试代理服务器,包括:指令处理单元400、第二通信单元401、执行结果确定单元402;其中,
所述指令处理单元400,用于在所述第二通信单元401接收到测试服务器发送的测试任务的执行指令时,将所述执行指令处理后通过所述第二通信单元401将处理后的执行指令发送给测试终端;
执行结果确定单元402,用于在所述第二通信单元401接收到所述测试终端执行所述测试任务后发送的测试任务处理信息时,根据所述测试任务处理信息确定所述测试任务的执行结果,通过所述第二通信单元401将所述执行结果发送给所述测试服务器。
为了描述的方便,以上所述测试代理服务器的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。以上功能模块或单元的划分方式仅为本发明实施例给出的一种优选实现方式,功能模块或单元的划分方式不构成对本发明的限制。
具体实施中,所述执行结果确定单元402具体用于:
对所述测试任务处理信息进行解析,确定所述测试任务的执行状态;
根据所述执行状态的变化,确定所述测试任务的执行结果。
具体实施中,所述第二通信单元401具体用于:
将注册请求消息发送给所述测试服务器,由所述测试服务器根据所述注册请求消息与所述测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
在实际应用中,所述指令处理单元400、第二通信单元401、执行结果确定单元402可由位于测试代理服务器中的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)实现。
如图5所示,本发明实施例提供的分布式软件测试系统,包括:测试终端500、测试服务器501、测试代理服务器502;其中,
所述测试终端500,用于运行多个或多组测试用例,根据处理后的执行指令调用对应的测试用例完成所述测试任务;
测试服务器501,用于获取用于调度测试任务的测试任务调度信息;接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并将测试任务执行指令发送给测试代理服务器;接收到所述测试代理服务器反馈的所述测试任务的执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务;确定存在与所述测试任务关联的后续测试任务时,调度所述关联的后续测试任务;
这里,所述测试服务器501的具体组成结构及各组成部分的功能如图3所述测试服务器。
所述测试代理服务器502,用于接收到测试服务器发送的测试任务的执行指令时,将所述执行指令处理后发送给测试终端;接收到所述测试终端执行所述测试任务后发送的测试任务处理信息时,根据所述测试任务处理信息确定所述测试任务的执行结果,并将所述执行结果发送给所述测试服务器;
这里,所述测试代理服务器502的具体组成结构及各组成部分的功能如图4所述测试服务器;
所述测试服务器501通过以下任意一种方式,与所述测试代理服务器502建立通信连接:套接字socket通信方式、windows窗口消息方式、油槽方式、匿名管道方式、命名管道方式、信号量方式、消息队列方式、共享内存方式。
本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种软件测试方法,其特征在于,获取用于调度测试任务的测试任务调度信息;所述方法还包括:
接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并将所述测试任务的执行指令发送给测试代理服务器;
接收到所述测试代理服务器反馈的所述测试任务的执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务;
确定存在与所述测试任务关联的后续测试任务时,调度所述关联的后续测试任务。
2.根据权利要求1所述的方法,其特征在于,所述测试任务调度信息包括:测试任务间的关联信息以及测试任务对应的测试代理服务器编号;
所述根据所述测试任务执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务,包括:
根据所述测试任务执行结果查询所述测试任务间的关联信息中对应的处理策略,确定是否存在与所述测试任务关联的后续测试任务。
3.根据权利要求2所述的方法,其特征在于,所述根据所述测试任务调度信息将所述测试任务的执行指令发送给测试代理服务器,包括:
根据所述测试任务调度信息中所述测试任务对应的测试代理服务器编号,将所述测试任务的执行指令发送给对应编号的测试代理服务器。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述获取用于调度测试任务的测试任务调度信息之前,所述方法还包括:
接收到所述测试代理服务器发送的注册请求消息时,根据所述注册请求消息与所述测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
5.一种软件测试方法,其特征在于,所述方法包括:
接收到测试服务器发送的测试任务的执行指令时,将所述执行指令处理后发送给测试终端;
接收到所述测试终端执行所述测试任务后发送的测试任务处理信息时,根据所述处理信息确定所述测试任务的执行结果,并将所述执行结果发送给所述测试服务器。
6.根据权利要求5所述的方法,其特征在于,所述根据所述测试任务处理信息确定所述测试任务的执行结果,包括:
对所述测试任务处理信息进行解析,确定所述测试任务的执行状态;
根据所述执行状态的变化,确定所述测试任务的执行结果。
7.根据权利要求5或6所述的方法,其特征在于,所述接收到测试服务器发送的执行指令之前,所述方法还包括:
将注册请求消息发送给所述测试服务器,由所述测试服务器根据所述注册请求消息与测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
8.一种测试服务器,其特征在于,所述测试服务器包括:获取单元、测试任务调度单元、第一通信单元;其中,
所述获取单元,用于获取用于调度测试任务的测试任务调度信息;
所述测试任务调度单元,用于在所述第一通信单元接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并由所述第一通信单元将所述测试任务的执行指令发送给测试代理服务器;在所述第一通信单元接收到所述测试代理服务器反馈的执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务;确定存在与所述测试任务关联的后续测试任务时,调度所述关联的后续测试任务。
9.根据权利要求8所述的测试服务器,其特征在于,所述测试任务调度信息包括:测试任务间的关联信息以及测试任务对应的测试代理服务器编号,所述测试任务调度单元具体用于:
根据所述测试任务的执行结果查询所述测试任务间的关联信息中对应的处理策略,确定是否存在与所述测试任务关联的后续测试任务。
10.根据权利要求9所述的测试服务器,其特征在于,所述第一通信单元具体用于:
根据所述测试任务调度信息中所述测试任务对应的测试代理服务编号,将测试任务执行指令发送给对应编号的测试代理服务器。
11.根据权利要求8至10任一项所述的测试服务器,其特征在于,所述第一通信单元还用于:
接收到所述测试代理服务器发送的注册请求消息时,根据所述注册请求消息与所述测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
12.一种测试代理服务器,其特征在于,所述测试代理服务器包括:第二通信单元、指令处理单元、执行结果确定单元;其中,
所述指令处理单元,用于在所述第二通信单元接收到测试服务器发送的执行指令时,将所述执行指令处理后通过所述第二通信单元将处理后的执行指令发送给测试终端;
执行结果确定单元,用于在所述第二通信单元接收到所述测试终端执行所述测试任务后发送的测试任务处理信息时,根据所述测试任务处理信息确定所述测试任务的执行结果,通过所述第二通信单元将所述执行结果发送给所述测试服务器。
13.根据权利要求12所述的测试代理服务器,其特征在于,所述执行结果确定单元具体用于:
对所述测试任务处理信息进行解析,确定所述测试任务的执行状态;
根据所述执行状态的变化,确定所述测试任务的执行结果。
14.根据权利要求12或13所述的测试代理服务器,其特征在于,所述第二通信单元具体用于:
将注册请求消息发送给所述测试服务器,由所述测试服务器根据所述注册请求消息与测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
15.一种软件测试系统,其特征在于,所述系统包括:测试终端、权利要求8至11任一项所述测试服务器、以及权利要求12至14任一项所述测试代理服务器;其中,
所述测试终端,用于运行多个或多组测试用例,根据处理后的执行指令调用对应的测试用例完成所述测试任务;
所述测试服务器通过以下任意一种方式与所述测试代理服务器建立通信连接:
套接字socket通信方式、windows窗口消息方式、油槽方式、匿名管道方式、命名管道方式、信号量方式、消息队列方式、共享内存方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410056925.8A CN104850491B (zh) | 2014-02-19 | 2014-02-19 | 一种软件测试方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410056925.8A CN104850491B (zh) | 2014-02-19 | 2014-02-19 | 一种软件测试方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104850491A true CN104850491A (zh) | 2015-08-19 |
CN104850491B CN104850491B (zh) | 2018-09-25 |
Family
ID=53850144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410056925.8A Expired - Fee Related CN104850491B (zh) | 2014-02-19 | 2014-02-19 | 一种软件测试方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104850491B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512038A (zh) * | 2015-12-12 | 2016-04-20 | 天津南大通用数据技术股份有限公司 | 一种基于数据库自动化并行测试平台执行方法 |
CN106304001A (zh) * | 2016-10-21 | 2017-01-04 | 厦门雅迅网络股份有限公司 | 一种移动终端工作状态的识别方法 |
CN106789446A (zh) * | 2017-02-17 | 2017-05-31 | 深圳市中博睿存信息技术有限公司 | 一种节点对等的集群分布式测试框架和方法 |
CN107995024A (zh) * | 2017-10-30 | 2018-05-04 | 北京奇虎科技有限公司 | 一种设备管理方法、装置、服务器及存储介质 |
CN108009093A (zh) * | 2017-12-22 | 2018-05-08 | 北京远特科技股份有限公司 | 一种软件测试方法、装置及系统 |
CN108268379A (zh) * | 2018-02-02 | 2018-07-10 | 方欣科技有限公司 | 一种分布式自动化测试方法及装置 |
CN109582583A (zh) * | 2018-12-14 | 2019-04-05 | 平安健康保险股份有限公司 | 软件测试方法、装置、计算机设备和存储介质 |
CN111008124A (zh) * | 2019-10-25 | 2020-04-14 | 武汉迎风聚智科技有限公司 | 数据库测试的任务调度方法以及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050044136A1 (en) * | 2003-08-07 | 2005-02-24 | International Business Machines Corporation | System and methods for synchronizing software execution across data processing systems and platforms |
CN101140541A (zh) * | 2007-09-29 | 2008-03-12 | 中兴通讯股份有限公司 | 一种分布式软件系统的集成测试系统及方法 |
CN101212362A (zh) * | 2006-12-26 | 2008-07-02 | 中兴通讯股份有限公司 | 一种融合多类型测试工具的自动化测试装置及方法 |
CN101246439A (zh) * | 2008-03-18 | 2008-08-20 | 中兴通讯股份有限公司 | 一种基于任务调度的自动化测试方法及系统 |
CN101252471A (zh) * | 2008-03-20 | 2008-08-27 | 中兴通讯股份有限公司 | 一种分布式自动化测试系统及其方法 |
CN101610520A (zh) * | 2008-06-17 | 2009-12-23 | 北京华恒铭圣科技发展有限责任公司 | 用户终端测试行为的触发方法、通信设备及通信系统 |
CN102937932A (zh) * | 2011-08-16 | 2013-02-20 | 中国银联股份有限公司 | 集成异构测试工具的自动化测试装置及方法 |
CN103209180A (zh) * | 2013-03-21 | 2013-07-17 | 大唐联仪科技有限公司 | 一种协议一致性测试的方法及系统 |
CN103298016A (zh) * | 2012-02-27 | 2013-09-11 | 展讯通信(上海)有限公司 | 移动终端的测试系统 |
-
2014
- 2014-02-19 CN CN201410056925.8A patent/CN104850491B/zh not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050044136A1 (en) * | 2003-08-07 | 2005-02-24 | International Business Machines Corporation | System and methods for synchronizing software execution across data processing systems and platforms |
CN101212362A (zh) * | 2006-12-26 | 2008-07-02 | 中兴通讯股份有限公司 | 一种融合多类型测试工具的自动化测试装置及方法 |
CN101140541A (zh) * | 2007-09-29 | 2008-03-12 | 中兴通讯股份有限公司 | 一种分布式软件系统的集成测试系统及方法 |
CN101246439A (zh) * | 2008-03-18 | 2008-08-20 | 中兴通讯股份有限公司 | 一种基于任务调度的自动化测试方法及系统 |
CN101252471A (zh) * | 2008-03-20 | 2008-08-27 | 中兴通讯股份有限公司 | 一种分布式自动化测试系统及其方法 |
CN101610520A (zh) * | 2008-06-17 | 2009-12-23 | 北京华恒铭圣科技发展有限责任公司 | 用户终端测试行为的触发方法、通信设备及通信系统 |
CN102937932A (zh) * | 2011-08-16 | 2013-02-20 | 中国银联股份有限公司 | 集成异构测试工具的自动化测试装置及方法 |
CN103298016A (zh) * | 2012-02-27 | 2013-09-11 | 展讯通信(上海)有限公司 | 移动终端的测试系统 |
CN103209180A (zh) * | 2013-03-21 | 2013-07-17 | 大唐联仪科技有限公司 | 一种协议一致性测试的方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512038A (zh) * | 2015-12-12 | 2016-04-20 | 天津南大通用数据技术股份有限公司 | 一种基于数据库自动化并行测试平台执行方法 |
CN106304001A (zh) * | 2016-10-21 | 2017-01-04 | 厦门雅迅网络股份有限公司 | 一种移动终端工作状态的识别方法 |
CN106789446A (zh) * | 2017-02-17 | 2017-05-31 | 深圳市中博睿存信息技术有限公司 | 一种节点对等的集群分布式测试框架和方法 |
CN106789446B (zh) * | 2017-02-17 | 2020-06-02 | 北京同有飞骥科技股份有限公司 | 一种节点对等的集群分布式测试系统和方法 |
CN107995024A (zh) * | 2017-10-30 | 2018-05-04 | 北京奇虎科技有限公司 | 一种设备管理方法、装置、服务器及存储介质 |
CN108009093A (zh) * | 2017-12-22 | 2018-05-08 | 北京远特科技股份有限公司 | 一种软件测试方法、装置及系统 |
CN108268379A (zh) * | 2018-02-02 | 2018-07-10 | 方欣科技有限公司 | 一种分布式自动化测试方法及装置 |
CN109582583A (zh) * | 2018-12-14 | 2019-04-05 | 平安健康保险股份有限公司 | 软件测试方法、装置、计算机设备和存储介质 |
CN111008124A (zh) * | 2019-10-25 | 2020-04-14 | 武汉迎风聚智科技有限公司 | 数据库测试的任务调度方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104850491B (zh) | 2018-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104850491A (zh) | 一种软件测试方法、设备及系统 | |
CN109669758A (zh) | 服务器资源的调配方法、装置、设备及存储介质 | |
CN103297395B (zh) | 一种互联网业务的实现方法、系统以及装置 | |
CN103516690B (zh) | 一种业务处理状态信息查询方法及装置 | |
CN102841846B (zh) | 一种基于Hadoop的软件测试方法、装置和系统 | |
CN108256118B (zh) | 数据处理方法、装置、系统、计算设备以及存储介质 | |
CN104253850A (zh) | 一种任务分布式调度方法和系统 | |
US20140376714A1 (en) | Method and apparatus for processing repetitive calls to a hotline | |
CN102385536B (zh) | 一种实现并行计算的方法及系统 | |
CN105847319A (zh) | 一种移动终端网络请求方法及系统 | |
CN108958933B (zh) | 任务执行器的配置参数更新方法、装置及设备 | |
CN105635231A (zh) | 一种分布式系统的调用方法和装置 | |
CN104683473A (zh) | 监控服务质量的方法、服务端、客户端及系统 | |
CN107018045A (zh) | 基于rpc的分布式存储系统测试方法及系统 | |
CN104410511A (zh) | 一种服务器管理方法及系统 | |
CN110868449A (zh) | 一种基于异步消息实现定时任务的方法及系统 | |
CN107025126B (zh) | 一种资源调度方法、nfvo和系统 | |
US20130177149A1 (en) | Apply time for temporary administrative changes | |
CN111190731A (zh) | 基于权重的集群任务调度系统 | |
CN112860391B (zh) | 一种动态集群渲染资源管理系统及方法 | |
CN114070855B (zh) | 资源分配方法、资源分配装置、资源分配系统、存储介质 | |
CN114564249A (zh) | 推荐调度引擎、推荐调度方法及计算机可读存储介质 | |
US9479579B2 (en) | Grouping processing method and system | |
CN109634749B (zh) | 一种分布式统一调度方法及设备 | |
CN110768855B (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 | ||
GR01 | Patent grant | ||
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: 20180925 |