一种基于节点式的自动化测试系统的制作方法

文档序号:20186439发布日期:2020-03-27 19:07阅读:227来源:国知局
一种基于节点式的自动化测试系统的制作方法

本发明属于软件自动化测试技术领域,具体涉及一种基于节点式的自动化测试系统。



背景技术:

现阶段为了完成各色业务,大多数的业务系统都是由多个系统组合完成,包括客户端、服务端、移动端,以及b/s与c/s模式组合而成。业务系统的架构要求测试的过程中不同的操作互相调用才能完成业务流程的测试,其中部分的操作过程中融合了ui兼容性测试、性能测试等针对性测试。一个测试流程中的不同测试方法的融合需要测试步骤分布于不同的机器上完成测试,而且还要求不同机器上的用例协同执行,检测在不同环境中的阶段内的实际输出与预期输出的匹配情况,将报告上报,整个阶段完成后将各阶段的执行结果汇总才能得出一次完整的测试报告。

环顾目前现有的技术,专项性强,技术和场景结合过于紧密例,没有解决包括客户端、服务端、移动端,以及b/s与c/s模式组合而成测试场景的技术解决方案或系统。例如公开号为cn104679651a的中国专利提供了一种自动化测试方法及执行节点,实施用例通过执行节点获得测试用例,执行节点启动相对应的进程,以使得相对应的进程执行测试用例;其中,执行节点的数目为至少一个,每个执行节点相对应的进程的数目为至少一个,从而实现多个进程完成测试用例的自动化测试。因此,该技术方案能够并行对测试用例进行自动化测试,描述的解决方案是按照用例类型划分,节点机将同样类型的测试用例执行完成;其中主要解决的问题是基于web测试的分布式测试方法,其中缺少了对c/s和移动端的支持,同时也无法完成不同类型用例的通信和协作完成对特殊场景用例的测试。随着技术的进步,尤其是移动端等业务场景的增多,真实的业务场景的复杂度超越了以往,要求有基于目前业务复杂度的自动化测试方案和系统来实现,从移动端到b/s端到c/s端测试融合,实现相互协调完成测试场景要求。

再如公开号为cn103678093a的中国专利提供了一种自动化测试框架及测试方法,有效解决现有技术的自动化工具都局限在单个终端机器、不能实现远程控制、用例测试结果无法和用例自动对应、用例测试结果不能整合成统一报表等技术问题。其中该技术主要的缺陷在于没有解决不同类型测试用例间的相互调用,如用例步骤由ui测试、接口测试、性能测试、移动端测试等组成,需要相互传递参数和参数传递共享的问题,这样的方案无法满足如今被测场景的复杂度。

还有公开号为cn103577907a的中国专利提供了一种持续集成测试方法和系统,主要解决持续集成项目同时监测在各个真实环境中运行的待测目标;当检测到某个真实环境中运行的待测目标达到预设条件时,获取待测目标运行的真实环境对应的环境标识;通过发送测试命令,调用测试用例,其中测试命令中包括环境标识;测试用例根据环境标识,配置相应的测试环境;在测试环境中执行测试用例中的测试脚本,并获取最终的测试结果。该系统提供了测试整个流程的支持,也是没有对其中多种用例的支撑提供有效的解决方案,其中测试结果的归纳分析也没有实际的解决方案。

此外公开号为cn106201882a的中国专利提供了一种基于jenkins的操作系统自动化测试方法及系统,该方法预先在服务端搭建jenkins测试工具和robotframework框架;获取目标测试端中的操作系统实时安装信息;当操作系统实时安装信息显示对应的操作系统已在目标测试端完成安装,则通过运行由jenkins测试工具构建的测试任务,来调用预先由服务端编写的脚本文件,以执行预先由robotframework框架中的ride工具所编写的测试用例,得到相应的操作系统测试结果。该技术主要解决软件测试中的操作方式给出了解决方案,缺少了用例的排序,场景融合,多种平台测试数据共享的解决方法,其中阐述也只局限于在现有robotframework框架内解决问题的方法,对多类型的测试用例不能提供支撑。



技术实现要素:

鉴于上述,本发明提供了一种基于节点式的自动化测试系统,能够解决不同类型测试用例间的相互调用,用例步骤可以由ui测试,接口测试,性能测,移动端测试组成,并且可以相互传递参数,为完成用例间不区分类型相互调用和参数传递共享。

一种基于节点式的自动化测试系统,包括:

登陆模块,用于提供用户登陆验证及权限验证的功能;

测试用例模块,负责用户对用例的管理,即从文件服务器中获取用例信息,根据用例的类型指定执行的节点机类型,按照测试点编写并设计所需用例组合成的测试策略;

测试策略模块,用于将测试用例组合完成的测试策略加入测试数据,编排先后执行顺序,配置业务逻辑需要重复执行的策略组,形成可执行的测试计划,供测试计划调用;

测试计划模块,用于为组合完成的测试策略定制执行方式,由用户手动触发执行的策略放入手动执行队列,为自动触发执行的策略指定触发条件,为定期执行的策略定制执行计划表,从而完成自动化测试的定义;

报告模块,用于将测试结果汇总分析形成测试报告;

配置模块,用于测试基础环境配置,包括节点机中的支撑软件信息、测试架构信息、测试软件信息,将这些节点机的完整信息做好配置后,对于新被测系统加入时选择对应的测试类型自动复制节点机完成快速新增节点机,快速加入测试队列,完成对测试任务的支撑;

调度模块,用于提供接口给测试计划模块,接收测试计划模块发来的测试计划信息,分析测试用例类型,将不同类型的测试用例发布到对应的测试节点机中,并负责测试节点机响应的信息接收,生成执行参数列表,使不同类型的测试用例所需的参数共享,协调用例执行的先后顺序,协调在不同节点机上执行的不同用例按照测试计划的排序执行;

测试报告模块,用于将调度模块按照测试执行上报的测试报告汇总和分析。

进一步地,所述登陆模块的具体实现方案为:使用户账号以对称加密形式存储在数据库中,密码以非对称加密存储;分不同的用户组,按照用户组的信息分配权限,将用户归属于用户组内,一个用户可分属多个组,一个用户多个组的权限去重后为用户最终的权限,用户认证后生成认证字符串并存储于缓存中,有效期为30分钟,有效期内的最后一次操作都将使有效期重置为最后一次操作起开始计算30分钟过期。

进一步地,所述测试用例归属于测试策略,用例间的参数传递是将前面用例的输出写入缓存服务器,以测试流水号与策略编号唯一区分,后续测试用例需按照测试流水号与策略编号获取并使用。

进一步地,所述报告模块在测试执行完成后将测试结果数据写入数据库中,进而从数据库中将本次测试的数据按模块、输入、实际结果、预期结果的形式形成测试报告html文档存储到报告目录,并邮件发送给用户组内人员和触发执行人员。

进一步地,所述配置模块将信息成配置文件保存在文件服务器中,部署新节点机时在机器中下载配置文件信息,按照配置文件逐条确定节点机所需的支撑软件,并根据配置文件信息将对应支撑软件的参数按照配置文件生成,启动监听程序完成节点机的服务配置,使其加入服务队列。

进一步地,所述调度模块在测试过程中通过链接信息监控节点执行测试时的运行状态,测试用例执行完成后形成用例步骤执行过程文档并放入测试报告中;调度模块提供节点机的注册接口,采用tcp/ip协议,节点机启动监听服务后向调度模块注册信息,调度模块周期性检测节点机的工作状态,对于正常的节点机则提供测试计划模块调用,对于异常的节点机则发送节点机异常信息给管理员,提醒管理员排查故障,使解决故障的节点机重新加入执行队列。

进一步地,所述测试报告模块通过对比用例的预期结果产生测试报告,包括测试每一个步骤的输入数据、执行过程、实际输出数据、与预期结果对比信息、测试过程中的机器状况(例如cpu,gpu,内存,i/o使用情况)、网络流量信息,进而将数字化的信息汇总到报表中,绘制过程中的信息曲线图,生成html类型的测试报告,同时获取测试计划归属的用户组信息,将测试报告邮件发送给组内成员,完成一次测试。

本发明将不同的测试阶段发布到不同的机器上进行测试,同时可以支持不同机器上的测试用例可以协调执行,判断测试输入对应的输出与预期的结果进行对比匹配完成测试,输出测试报告到中心服务器进行汇总分析形成一次完整的测试,产生测试报告发送给相关人员。

本发明针对现阶段业务特点,解决软件测试的难点,实现全方位软件自动化测试的一套装置系统,能够不间断自动化的完成整个业务流程的测试,并及时生成报告,通知相关人员测试结果,全方位的监测项目软件质量,缩短测试时间,减少人员在测试过程中的误操作或遗漏,加大测试深度,提高项目质量。

附图说明

图1为本发明自动化测试系统的测试流程示意图。

图2为本发明的系统应用场景示意图。

具体实施方式

为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。

本发明自动化测试系统的具体实现包括以下几部分:

(1)界面层:用户操作接口。

1.1用例管理:测试用例放在文件服务器中(文件服务器可以选择ftp、svn、git、本实例系统选用svn作为文件服务器),当有用例更新,触发用例关联模块,扫描文件服务器中的文件,将文件服务器中的用例信息关联到自动化节点机测试平台系统中,完成用例的保存。

1.2定制测试计划:测试系统采用b/s模式实现界面化管理,在系统中将已有的测试用例组合,定制参数,编辑执行顺序,定义并行与串行模块,形成测试策略保存到系统中。测试策略按照实际业务流程组合,指定执行方式,执行时间,保存为测试计划列表,系统按指定的方式执行测试计划列表中的测试任务。

1.3测试配置:配置可用的用例执行机器-测试节点机,节点机由不同操作系统组成,负载执行ui测试的节点机为windows,负载执行接口测试和性能测试的节点机为centos,负载android移动端设备管理的节点机为ubuntu系统,负载ios移动端设备管理的节点机为macos系统,将可用的节点机信息配置到系统中,供测试用例按照测试类型不同来调用。

(2)数据交换层:控制信息交换,用例数据交换。

调度模块中负责控制信息交换,测试人员触发或定时器触发执行测试计划时,由管理系统使用http协议调用调度模块接口触发测试,调度模块使用tcp/ip协议连接测试节点机,执行测试计划。调度模块将包括标准的http协议接口,负责接收外部执行指令,使用http方法调用系统http接口返回测试结果。节点机中的侦听模块负责实时监听,接收调度模块发出的执行指令,收到执行指令后节点机将指令逐条执行完成测试任务,等待下一个测试任务。节点机与文件服务器间的数据交换是通过文件服务器提供的获取文件命令获取文件,保存在本地磁盘,供测试任务调用。节点机不上传文件,每次执行先将目录中上次遗留的文件删除,从文件服务器中下载最新的用例文件,从而保证用例更新的实时性。

(3)互联层:系统与调度模块的互联,调度模块与节点机间的互联。

系统与调度模块的互联:系统采用b/s架构,系统与调度模块的互联采用标准http协议接口互联,测试任务的下发通过调用http接口完成信息的接收与发送。

调度模块与节点机间的互联:采用tcp/ip协议互联,节点机监听程序保持与调度模块连接,接收调度模块发出的测试指令,转换为本机可执行的命令,逐条执行,将测试结果响应给调度模块,完成测试任务;节点机与文件服务器间的互联是通过svn命令、ftp命令或git命令实现。

本发明的具体实现流程如图1所示,用户将测试用例上传至文件服务器,自动化节点机测试平台去文件服务器获取用例信息,作为用户测试策略备选集,用户根据测试需要将测试用例筛选排列,组成测试策略、存储;用户选择策略执行,根据第一条用例类型选择适用节点机,触发节点机去执行用例计划,节点机根据策略下载测试用例,执行测试用例,报告测试结果;执行完成第一条用例后根据策略,触发下一个节点机做第二条测试用例,执行完成所有的用例后,自动化节点机测试平台将测试报告以邮件方式发送给所属小组成员和触发执行的人员;具体各环节的实施明细如下:

(1)节点机:

节点机为测试用例执行的环境机器,为测试用例的执行提供支撑(接口、ui、性能、安全性测试),每种类型的测试至少一台节点机,互不影响测试执行;节点机的初始化环境由配置模块完成;初始化节点机,将测试环境还原为初始状态,以备测试用例执行;节点机都需开通监听服务,接收测试平台指令;多条指令发送到节点机,进行排队,队列以先进先出原则。

(2)用例存储:

测试用例以一个文件存储一个测试功能用例的方式存储到文件中;自动化测试用例上传存储到svn上,自动化节点机测试平台到svn目录获取自动化测试用例名与存储在数据库中的信息做信息对比,将新增的用例添加到数据库中,将删除的用例在数据库的记录中将状态置为已删除;数据库中的测试用例列表提供给测试策略备选。

(3)测试报告:

一个节点机的执行完成后测试报告上以xml方式传到共享指定位置;异步启动测试报告分析程序,获取简明信息记录到测试步骤中;一个策略中的所有用例执行完成后报告整合,形成测试报告html,存储到指定位置。

(4)测试报告发送:

自动化节点机测试平台收到测试策略执行完成的信号后,获取本次策略关联的人员和触发测试的人员,形成邮件接收人列表;邮件内容将分析后生成的测试报告加载进来,发送给邮件接收人列表。

(5)节点机的监听服务:

节点机使用端口监听,使用签名验证方式接收可信任主机发送的请求,节点机收到主机的操作指令字符串后,解密字符串,使用关键字像服务端查询具体执行内容,将执行内容下载到本地,按照执行内容中的测试策略将测试任务逐条执行,完成后将执行的结果上报主机。

当测试任务中涉及到多个不同类型的测试时,各节点机中按照从主机上获取的测试策略,解析完成归属自己节点当前应该执行的任务做执行处理,将执行结果上报主机。当测试策略中在本节点机完成操作后需要返回指定参数时,在测试完成时将返回参数一起上报给测试主机,以便测试主机生成测试策略中的下一步执行所需的测试前提。与主机直接的连接采用这样交互式短链接,目的是减少主机的连接负担,使得主机可以带动更多数量的节点机,这些节点机可以共同执行测试任务,各节点机协同工作可完成不同类型的测试任务相互调用的测试任务。

(6)节点机与主机间使用互信:

服务端上启动时提供mac查询接口,节点机与主机间使用互信通过是通过监听程序启动时将请求到的服务器端将节点机的mac地址+连接标识符使用md5算法生成签名字符串上报给服务端,从而建立互信。

(7)测试策略分发:

测试人员将测试用例按照测试点组合为测试用例,包括功能界面功能点测试、接口数据测试、性能测试、安全扫描;一个测试策略中包括界面数据输入,点击,响应页面校验,响应数据作为接口测试发送数据,触发接口测试,校验接口响应数据。

(8)文件的存取方式:

用例模版:将接口测试所需的组件保存在数据库中,用户通过用例编写页面选择本次测试所需组件,按照测试逻辑将组件的先后顺序排列好,实现预期的测试逻辑。组件中所需的参数是通过添加一个或者多个输入参数向外开放,可以添加一个或多个输出参数供其他组件调用;将编写好的用例文件存储到文件服务器中,在数据库中记录存储的文件位置及文件名称供测试策略的编写调用。

(9)测试策略存储:

测试人员将写好的测试用例保存后,按照业务流程的要求将不同测试用例组合组成测试策略,并保存在数据库中,以不同名称区分测试业务的测试策略。测试策略可以是单个用例,也可以是多个用例的组合。测试策略可以选择多个批量执行,也可以按照测试人员预设在指定时间执行,也可以在指定触发条件执行,例如业务场景出发执行。

(10)测试报告:

每一个测试用例结束后将测试报告生成,上传至文件服务器上,数据库存储报告地址和报告名称;一个测试策略结束后将本次测试产生的测试报告合成,分析形成整体的测试报告,上传到文件服务器,数据库存储测试报告名称和文件路径。

(11)测试通知邮件:

获取触发测试人员,作为收件人员,加载项目配置中的项目组人员作为抄送人员,将测试策略作为邮件标题;附件为获取的本次测试策略执行后形成的测试报告,邮件内容为本次测试执行通过用例名称和失败用例名称,并列出其中失败用例的详细步骤供测试人员分析。

以如图2所示的系统应用场景为例,通过以下四组案例对本发明系统实施过程进一步说明:

案例1:

编写ui测试用例1、ui测试用例2、ui测试用例3、ui测试用例4、ui测试用例5、ui测试用例6,上传到文件服务器。

自动化节点机测试平台,编写测试策略1,策略1中执行ui测试用例2,再执行ui测试用例1,再执行ui测试用例6,保存。

设置测试策略1运行,可选立即运行,指定时间运行一次,间隔指定时间运行多次。

自动化节点机测试平台收到执行策略指令将ui测试用例2,ui测试用例1,ui测试用例6下发到ui测试节点机,自动化节点机测试平台按照策略1要求,触发ui节点机,按照ui测试用例2,ui测试用例1,ui测试用例6顺序执行测试,将测试结果保存到指定位置。

执行完成后自动化节点机测试平台判断所有测试都已经执行完成,获取测试结果分析测试报告,整理成为html文档,自动化节点机测试平台按照邮件列表,内容将生成的html文档切入发送给列表人员和触发执行的人员。

案例2:

编写ui测试用例1、接口测试用例2、性能测试用例3、接口测试用例4、ui测试用例5、兼容性测试用例6,上传到文件服务器。

自动化节点机测试平台,编写测试策略2,策略2中执行ui测试用例1,接口测试用例2,性能测试用例3,接口测试用例4,ui测试用例5,兼容性测试用例6,保存。

设置测试策略2运行,可选立即运行,指定时间运行一次,间隔指定时间运行多次。

自动化节点机测试平台收到执行策略2要求将ui测试用例2,ui测试用例1,ui测试用例5下发到ui测试节点机,将接口测试用例2,接口测试用例4下发到接口测试节点机,将性能试用例3下发到性能测试节点机,将兼容性测试用例6下发到性能测试节点机。

自动化节点机测试平台按照策略2要求触发ui测试发节点机去执行ui测试用例1,将测试结果保存到指定位置,通知自动化节点机测试平台ui测试用例1执行完成。

自动化节点机测试平台收到完成通知后,按照策略2要求触发接口测试发节点机去执行接口测试用例2,将测试结果保存到指定位置,通知自动化节点机测试平台接口测试用例2执行完成。

自动化节点机测试平台收到完成通知后,按照策略2要求触发性能测试发节点机去执行性能测试用例3,将测试结果保存到指定位置,通知自动化节点机测试平台测试用例3执行完成。

自动化节点机测试平台收到完成通知后,按照策略2要求触发接口测试发节点机去执行接口测试用例4,将测试结果保存到指定位置,通知自动化节点机测试平台接口测试用例4执行完成。

自动化节点机测试平台收到完成通知后,按照策略2要求触发ui测试发节点机去执行ui测试用例5,将测试结果保存到指定位置,通知自动化节点机测试平台ui测试用例5执行完成。

自动化节点机测试平台收到完成通知后,按照策略2要求触发兼容性测试发节点机去执行兼容性测试用例6,将测试结果保存到指定位置,通知自动化节点机测试平台兼容性测试用例6执行完成。

执行完成后自动化节点机测试平台判断所有测试都已经执行完成,获取测试结果分析测试报告,整理成为html文档,自动化节点机测试平台按照邮件列表,内容将生成的html文档切入发送给列表人员和触发执行的人员。

案例3:

本案例介绍节点式移动自动化测试解决方案,首先编写移动应用程序数据处理脚本,作为移动自动化测试用例执行过程中的通用数据采集及聚合分析的插件集成到平台之中。插件主要负责测试执行过程中采集移动应用程序cpu,内存,功耗,日志堆栈等信息,并在测试结束后关联移动自动化测试用例执行动作做聚合分析的作用,最终会通过自动化节点机测试平台前端提供给使用者一个直观全面的移动应用程序自动化测试分析报告;主要步骤包括:

1.编写移动自动化测试用例,上传到文件服务器;

2.自动化节点机测试平台编写测试策略3,在策略3中执行自动化测试用例,保存策略;

3.设置测试策略3运行,可选立即运行,指定时间运行一次,间隔指定时间运行多次;

4.自动化节点机测试平台收到执行策略3要求将自动化测试用例及移动数据监控脚本下发到ui测试节点机;

5.自动化节点机测试平台按照策略3要求触发自动化测试节点机去执行测试用例,在测试开始同时调用移动应用程序数据监控脚本,对移动应用程序在测试过程中的cpu,内存,功耗,流量,日志等数据进行监控,在测试结束之后将移动应用程序测试用例执行结果和执行过程中移动应用程序占用资源,消耗的功耗及程序运行产生的堆栈日志报错误信息聚合关联到具体的测试用例,并通知自动化节点机测试平台ui测试用例执行完成。

执行完成后自动化节点机测试平台判断所有测试都已经执行完成,获取测试用例执行结果,应用程序数据日志聚合结果整理成为html文档,自动化节点机测试平台按照邮件列表,内容将生成的html文档切入发送给列表人员和触发执行的人员。

案例4:

本案例介绍节点式移动兼容性测试解决方案,首先编写移动设备控制处理脚本,主要功能是在自动化节点机测试平台启动兼容性测试任务的时候检索节点机上连接的测试手机,然后通过多线程的方式调用测试手机群执行测试用例并监控测试进度,待测试用例执行完成之后将结果输出到自动化节点机测试平台,该脚本会作为通用的兼容性测试插件集成到自动化节点机测试平台中,用户需要做的是按照自己的需求编写兼容性测试用例,例如在每台测试手机上安装app然后遍历ui页面并在每个页面上截图保存。自动化节点机测试平台负责调度控制测试执行过程,用户负责定义测试内容,最后在测试结束后把测试结果上报到自动化节点机测试平台服务器并通过自动化节点机测试平台前端提供给使用者一个直观全面的移动应用程序兼容性测试分析报告;主要步骤包括:

1.编写兼容性测试用例,上传到文件服务器;

2.自动化节点机测试平台编写测试策略3,策略3中执行兼容性测试用例;

3.自动化节点机测试平台收到执行策略3要求将兼容性测试用例及移动设备控制处理脚本下发到兼容性测试节点机;

4.自动化节点机测试平台按照策略3要求触发兼容性测试节点机启动移动设备控制处理脚本,然后由该脚本调用兼容性测试用例并执行,最后测试完成之后将截图生成的信息和测试执行结果发送到服务器,并通知自动化节点机测试平台兼容性测试用例执行完成,执行完成后自动化节点机测试平台按照邮件列表,内容将生成的html文档切入发送给列表人员和触发执行的人员。

上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

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