一种软件测试方法、设备及系统的制作方法

文档序号:8528103阅读:523来源:国知局
一种软件测试方法、设备及系统的制作方法
【技术领域】
[0001]本发明涉及计算机软件领域的自动化软件测试技术,尤其涉及一种软件测试方法、设备及系统。
【背景技术】
[0002]当前,随着计算机硬件设备的飞速发展,计算机软件也随之越来越庞大,运行程序所需的硬件资源也越来越高,在软件测试时,通常采用一种将人为驱动的测试行为转化为机器执行的过程的自动化测试,通过自动化测试可以有效的节省人力、时间或硬件资源,提高系统的测试效率。目前有非常多的自动化测试软件,如:自动测试专家(quick testProfess1nal, QTP)、企业级的功能测试软件WinRunner、自动化测试软件Rat1nal Robot等,上述自动化测试软件为了保证程序运行的效果,特意设置了单例模式,即:一台智能终端上只能运行一个本软件程序。
[0003]发明人在实现本发明的过程中,发现现有分布式软件测试技术方案至少存在以下缺陷:
[0004]1、在客户端/服务端(C/S)架构模式下,往往需要同时运行多个客户端来保持对服务端的压力,以及客户端之间需要进行交互功能测试,而上述自动化测试软件在运行时均使用单例模式,这样,给软件的测试工作带来极大的不便。
[0005]2、上述自动化测试软件每个被测试的对象之间是相对独立的,无法进行有效的联动,是一种缺乏配合和协助的测试。举个例子:要测试一款投票软件,通过运行二十个客户端来模拟用户进行投票,若希望一部分用户投赞成票、一部分用户投反对票、还有一部分用户弃权,当使用上述各种测试软件时,就需要编写三种测试用例,并且分别为不同的客户端指派不同的测试用例,一旦测试场景发生变化,如期望全部投赞同票或全部投反对票,那么,测试用例的指派又需要重新调整,实施起来比较繁琐。
[0006]综上所述,目前亟需一种软件测试方法,能够实现在分布式系统架构下,运行在不同测试终端的多个或多组测试用例之间彼此关联、互相协作。

【发明内容】

[0007]有鉴于此,本发明实施例期望提供一种软件测试方法、设备及系统,能实现分布式架构下运行在不同测试终端的多个或多组测试用例间的协同运作。
[0008]为达到上述目的,本发明的技术方案是这样实现的:
[0009]本发明实施例提供了一种软件测试方法,获取用于调度测试任务的测试任务调度信息;该方法还包括:
[0010]接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并将所述测试任务的执行指令发送给测试代理服务器;
[0011]接收到所述测试代理服务器反馈的所述测试任务的执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务;
[0012]确定存在与所述测试任务关联的后续测试任务时,调度所述关联的后续测试任务。
[0013]上述方案中,所述测试任务调度信息包括:测试任务间的关联信息以及测试任务对应的测试代理服务器编号;
[0014]所述根据所述测试任务执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务,包括:
[0015]根据所述测试任务执行结果查询所述测试任务间的关联信息中对应的处理策略,确定是否存在与所述测试任务关联的后续测试任务。
[0016]上述方案中,所述根据所述测试任务调度信息将所述测试任务的执行指令发送给测试代理服务器,包括:
[0017]根据所述测试任务调度信息中所述测试任务对应的测试代理服务器编号,将所述测试任务的执行指令发送给对应编号的测试代理服务器。
[0018]上述方案中,所述获取用于调度测试任务的测试任务调度信息之前,所述方法还包括:
[0019]接收到所述测试代理服务器发送的注册请求消息时,根据所述注册请求消息与所述测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
[0020]本发明实施例提供了一种软件测试方法,该方法包括:
[0021]接收到测试服务器发送的测试任务的执行指令时,将所述执行指令处理后发送给测试终端;
[0022]接收到所述测试终端执行所述测试任务后发送的测试任务处理信息时,根据所述处理信息确定所述测试任务的执行结果,并将所述执行结果发送给所述测试服务器。
[0023]上述方案中,所述根据所述测试任务处理信息确定所述测试任务的执行结果,包括:
[0024]对所述测试任务处理信息进行解析,确定所述测试任务的执行状态;
[0025]根据所述执行状态的变化,确定所述测试任务的执行结果。
[0026]上述方案中,所述接收到测试服务器发送的执行指令之前,所述方法还包括:
[0027]将注册请求消息发送给所述测试服务器,由所述测试服务器根据所述注册请求消息与测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
[0028]根据上述方法,本发明实施例提供了一种测试服务器,该测试服务器包括:获取单元、测试任务调度单元、第一通信单元;其中,
[0029]所述获取单元,用于获取用于调度测试任务的测试任务调度信息;
[0030]所述测试任务调度单元,用于在所述第一通信单元接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并由所述第一通信单元将所述测试任务的执行指令发送给测试代理服务器;在所述第一通信单元接收到所述测试代理服务器反馈的执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务;确定存在与所述测试任务关联的后续测试任务时,调度所述关联的后续测试任务。
[0031]上述方案中,所述测试任务调度信息包括:测试任务间的关联信息以及测试任务对应的测试代理服务器编号,所述测试任务调度单元具体用于:
[0032]根据所述测试任务的执行结果查询所述测试任务间的关联信息中对应的处理策略,确定是否存在与所述测试任务关联的后续测试任务。
[0033]上述方案中,所述第一通信单元具体用于:
[0034]根据所述测试任务调度信息中所述测试任务对应的测试代理服务编号,将测试任务执行指令发送给对应编号的测试代理服务器。
[0035]上述方案中,所述第一通信单元还用于:
[0036]接收到所述测试代理服务器发送的注册请求消息时,根据所述注册请求消息与所述测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
[0037]根据上述方法,本发明实施例提供了一种测试代理服务器,该测试代理服务器包括:第二通信单元、指令处理单元、执行结果确定单元;其中,
[0038]所述指令处理单元,用于在所述第二通信单元接收到测试服务器发送的执行指令时,将所述执行指令处理后通过所述第二通信单元将处理后的执行指令发送给测试终端;
[0039]执行结果确定单元,用于在所述第二通信单元接收到所述测试终端执行所述测试任务后发送的测试任务处理信息时,根据所述测试任务处理信息确定所述测试任务的执行结果,通过所述第二通信单元将所述执行结果发送给所述测试服务器。
[0040]上述方案中,所述执行结果确定单元具体用于:
[0041 ] 对所述测试任务处理信息进行解析,确定所述测试任务的执行状态;
[0042]根据所述执行状态的变化,确定所述测试任务的执行结果。
[0043]上述方案中,所述第二通信单元具体用于:
[0044]将注册请求消息发送给所述测试服务器,由所述测试服务器根据所述注册请求消息与测试代理服务器建立通信连接,所述注册请求消息中携带所述测试代理服务器的编号、IP地址、端口号。
[0045]根据上述方法,本发明实施例还提供了一种软件测试系统,该系统包括:测试终端、如上述测试服务器、以及如上述测试代理服务器;其中,
[0046]所述测试终端,用于运行多个或多组测试用例,根据处理后的执行指令调用对应的测试用例完成所述测试任务;
[0047]所述测试服务器通过以下任意一种方式与所述测试代理服务器建立通信连接:
[0048]套接字socket通信方式、windows窗口消息方式、油槽方式、匿名管道方式、命名管道方式、信号量方式、消息队列方式、共享内存方式。
[0049]本发明实施例所提供的软件测试方法、设备及系统,预先获取用于调度测试任务的测试任务调度信息;接收到测试任务启动指令时,根据所述测试任务调度信息调度所述测试任务,并将所述测试任务的执行指令发送给测试代理服务器;在收到所述测试代理服务器反馈的所述测试任务的执行结果时,根据所述执行结果以及所述测试任务调度信息确定是否存在与所述测试任务关联的后续测试任务;确定存在与所述测试任务关联的后续测试任务时,调度所述后续测试任务。如此,
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1