基于selenium的测试中间件、测试系统及方法与流程

文档序号:11230363阅读:1087来源:国知局
基于selenium的测试中间件、测试系统及方法与流程

本发明属于浏览器测试领域,尤其涉及一种基于selenium的测试中间件、测试系统及方法。



背景技术:

现有基于selenium(浏览器自动化测试框架)的ui(用户界面)测试工具为单用户单任务形式,且selenium的测试需要专业测试开发人员进行源代码的编写,非一般手工测试人员能够具备的能力,测试难度高,脚本维护工作量大,对人力资源的要求度很高。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中selenium测试方法只能解决单用户单任务的问题,且脚本维护工作量大、性能测试工作难度高的缺陷,提供了一种基于selenium的测试中间件、测试系统及方法。

本发明是通过下述技术方案来解决上述技术问题:

一种基于selenium的测试中间件,包括:交互api(应用程序编程接口)模块、任务队列模块、selenium控制模块和浏览器资源池;

所述交互api模块包含多个api接口,所述api接口用于接收多个测试任务并发送至所述任务队列模块;

所述任务队列模块用于将接收到的所述多个测试任务存入任务队列中,并按照所述任务队列的顺序依次将所述多个测试任务发送至所述selenium控制模块;

所述selenium控制模块用于依次根据每个测试任务从所述浏览器资源池中调取浏览器资源并调用selenium,将所述测试任务和所述浏览器资源发送至所述selenium的node节点完成任务的测试,并将测试结果发送出去;

所述浏览器资源池用于存放多个浏览器资源。

本方案中,将测试任务发送到测试中间件的交互api模块,所述测试任务为页面连接、元素标识、对元素进行的操作和该操作需要的参数中至少一项,比如具体的一个网站的ip(网络协议)地址、操作人员的id(设别号)号或sendkey(一个编程语句,它可将一个或多个按键消息发送到活动窗口,就如同用键盘进行输入一样)操作等,测试中间件即可以完成任务的测试,克服了现有技术中selenium测试需要专业测试开发人员进行源代码编写的缺陷。

较佳地,所述多个测试任务为同一时刻多个用户发送过来的多个测试任务或单个用户发送过来的多个测试任务。

本方案中,测试任务为单用户发送的多个测试任务或者多用户发送的多个测试任务,交互api模块将所述多个测试任务发送至任务队列模块,所述任务队列模块按照先进先出的顺序依次将所述测试任务发送到selenium控制模块完成任务的测试,克服了现有技术selenium只能解决单用户单任务的缺陷。

较佳地,所述测试任务还包括一执行请求,所述执行请求包括执行所述测试任务所需的node节点类型和浏览器类型;

所述selenium控制模块根据所述浏览器类型从所述浏览器资源池中调取具有所述浏览器类型的浏览器资源;

所述selenium控制模块根据所述node节点类型将所述浏览器资源和所述测试任务发送至具有所述node节点类型的node节点。

本方案中,所述浏览器资源池用于存放大量的浏览器资源以及浏览器资源与node节点类型的对应关系,根据执行请求里包含的node节点类型和浏览器类型,selenium控制模块调取对应的浏览器资源并发送到对应的node节点来进行任务的测试。

较佳地,所述selenium控制模块还用于检测正在执行一目标测试任务的目标浏览器资源的数量是否超过设定的阈值,若是,则停止从所述浏览器资源池中调取所述目标浏览器资源。

本方案中,selenium控制模块还实时监控执行中的测试任务所用到的某一类型浏览器资源的量是否超过设定的阈值,超过数量的同一种浏览器资源同时执行测试任务,可能会造成服务器耗尽,影响整体的任务的执行速度。

较佳地,所述测试中间件还包括日志整理模块,所述日志整理模块用于接收所述selenium控制模块发送过来的所述测试结果,并根据所述测试结果生成日志数据,再调用所述api接口将所述日志数据发送出去。

一种基于selenium的测试系统,包括管理平台和如上述各优选项任意组合的测试中间件,所述管理平台用于调用所述api接口发送所述多个测试任务并接收所述测试结果。

一种基于selenium的测试方法,利用如上述的测试中间件来实现,所述测试方法包括以下步骤:

s1、所述api接口接收多个测试任务并发送至所述任务队列模块;

s2、所述任务队列模块将接收到的所述多个测试任务存入任务队列中,并按照所述任务队列的顺序依次将所述多个测试任务发送至所述selenium控制模块;

s3、所述selenium控制模块依次根据每个测试任务从所述浏览器资源池中调取浏览器资源并调用selenium,将所述测试任务和浏览器资源发送至所述selenium的node节点完成任务的测试,并将测试结果发送出去。

较佳地,步骤s1中所述的测试任务为同一时刻多个用户发送过来的多个测试任务或单个用户发送过来的多个测试任务。

较佳地,所述测试任务还包括执行请求,所述执行请求包括执行所述测试任务所需的node节点类型和浏览器类型,步骤s3中:

所述selenium控制模块根据所述浏览器类型从所述浏览器资源池中调取具有所述浏览器类型的所述浏览器资源;

所述selenium控制模块根据所述node节点类型将所述浏览器资源和所述测试任务发送至具有所述node节点类型的node节点。

较佳地,步骤s3还包括:所述selenium控制模块检测正在执行一目标测试任务的目标浏览器资源的数量是否超过设定的阈值,若是,则停止从所述浏览器资源池中调取所述目标浏览器资源。

较佳地,所述测试中间件还包括日志整理模块,所述测试方法还包括步骤s4:

所述日志整理模块接收所述selenium控制模块发送过来的所述测试结果,并根据所述测试结果生成所述日志数据,再调用所述api接口将所述日志数据发送出去。

较佳地,所述测试方法还利用管理平台来实现,步骤s1之前还包括:所述管理平台调用所述api接口发送测试任务;步骤s4之后还包括:所述日志整理模块调用所述api接口将所述测试结果发送至所述管理平台。

本发明的积极进步效果在于:本发明通过增加测试中间件,只要简单的添加交互api接口的访问信息就可以通过测试中间件来完成任务的测试,从而实现类似于管理平台的一套多任务多用户系统,更能减少脚本的维护工作,同时还降低了性能测试工作的难度。

附图说明

图1为本发明实施例1的基于selenium的测试中间件的结构框图。

图2为本发明实施例1的基于selenium的测试系统的结构框图。

图3为本发明实施例2的基于selenium的测试方法的流程图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

一种基于selenium的测试中间件,如图1所示,包括:交互api模块1、任务队列模块2、selenium控制模块3、浏览器资源池4和日志整理模块5;

所述交互api模块1包含多个api接口,所述api接口用于接收多个测试任务并发送至所述任务队列模块2;所述多个测试任务为同一时刻多个用户发送过来的多个测试任务或单个用户发送过来的多个测试任务;

所述任务队列模块2用于将接收到的所述多个测试任务存入任务队列中,并按照所述任务队列的顺序依次将所述多个测试任务发送至所述selenium控制模块3;

每个测试任务还包括一执行请求,所述执行请求包括执行所述测试任务所需的node节点类型和浏览器类型;所述selenium控制模块3根据所述浏览器类型从所述浏览器资源池4中调取具有所述浏览器类型的浏览器资源;再调用selenium,根据所述node节点类型将所述测试任务和所述浏览器资源发送至具有所述node节点类型的node节点完成任务的测试,并将测试结果发送至日志整理模块;

所述浏览器资源池4用于存放多个浏览器资源;

所述日志整理模块5用于接收所述测试结果,并根据所述测试结果生成日志数据,再调用所述api接口将所述日志数据发送出去。

所述测试任务在测试过程中实时生成测试状态并发送至所述交互api模块1,所述测试状态为等待、执行、成功和失败中任意一种。具体的,当测试脚本存入所述任务队列的同时生成等待的测试状态并将所述测试状态返回至所述交互api模块1;当测试脚本由所述任务队列模块2发送至所述selenium控制模块3执行测试任务的同时生成执行的测试状态并将所述测试状态返回至所述交互api模块1;当测试脚本在所述selenium控制模块3中完成测试任务生成测试结果的同时,根据任务的测试结果生成成功或失败的测试状态并将所述测试状态返回至所述交互api模块1。

本实施例还提供一种基于selenium的测试系统,如图2所示,包括管理平台6和如上所述的测试中间件,所述管理平台6用于将所述多个测试任务发送至所述交互api模块1,还用于接收所述日志整理模块5发送过来的所述日志数据。

本实施例中,通过增加测试中间件,管理平台只要简单添加交互api接口的测试任务,就可以通过测试中间件来完成任务的测试,再将测试结果回传至管理平台,从而实现一套类似管理平台的测试系统,更能减少脚本的维护工作,同时还降低了性能测试工作的难度。

实施例2

一种基于selenium的测试方法,利用如实施例1所述的测试中间件来实现,如图3所示,所述测试方法包括以下步骤:

步骤101、api接口接收多个测试任务并发送至任务队列模块。所述测试任务为同一时刻多个用户发送过来的多个测试任务或单个用户发送过来的多个测试任务。

步骤102、任务队列模块将接收到的多个测试任务存入任务队列中,并按照所述任务队列的顺序依次将所述多个测试任务发送至所述selenium控制模块。

步骤103、selenium控制模块根据所述浏览器类型从所述浏览器资源池中调取具有所述浏览器类型的所述浏览器资源;再调用selenium,根据所述node节点类型将所述浏览器资源和所述测试任务发送至具有所述node节点类型的node节点完成任务的测试,并将测试结果发送至日志整理模块。

步骤104、日志整理模块接收测试结果,并根据测试结果生成日志数据,并调用api接口将日志数据发送出去。

本实施例中的测试方法还利用管理平台来实现,步骤101之前还包括:所述管理平台调用所述api接口发送测试任务;步骤104之后还包括:所述日志整理模块调用所述api接口将所述测试结果发送至所述管理平台。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1