一种异步执行环境监控及自动化测试任务的方法与装置制造方法及图纸

技术编号:38506207 阅读:27 留言:0更新日期:2023-08-19 16:53
本发明专利技术涉及自动化测试领域,具体来说是一种异步执行环境监控及自动化测试任务的方法与装置,包括以下步骤:a.在各个测试模块中,当任务和相关数据处理完毕后,主动将该任务及相关数据推送至Redis的相应频道或主题中;b.下一个测试模块监听到所述Redis的频道或主题;c.当所述频道或主题中有新的数据推送时,所述下一个测试模块取出所述数据,并对该数据进行处理;d.该测试方法不再依据进入队列的系统部署顺序执行测试任务,而是优先处理执行完毕的部署任务,并将测试流程以异步方式进行。本发明专利技术优点在于:提高自动化测试流程执行效率,节省服务器资源;测试执行前自动校验环境及输入参数,提前预警环境可用性;统一不同测试系统执行完成接口。执行完成接口。

【技术实现步骤摘要】
一种异步执行环境监控及自动化测试任务的方法与装置


[0001]本专利技术涉及自动化测试领域,具体来说是一种异步执行环境监控及自动化测试任务的方法与装置。

技术介绍

[0002]现有的自动化测试流水线过程中,首先要调用部署模块中待测系统测试环境上的部署脚本或部署程序,待测系统测试环境部署完成后,通过在流水线作业开始前输入的测试用例、配置文件、调度命令等作为入参,通过工具调度的方式执行测试,并生成测试报告。在执行过程中,通过检查日志、屏幕输出关键字或测试工具生成的结果文件等方式来判断测试工具执行是否结束,测试工具执行结束后,将部分测试数据按需加工或直接写入数据库,生成前端模块所需展示及测试报告的相关数据。如果当前有多个同类系统流水线任务执行时,则需要按调度顺序排队执行测试任务;如果当前有多个不同类系统的任务执行时,需要同时启动多个执行任务,并对启动的任务同时开启相应的监控程序,监控任务执行状态。
[0003]根据现有的自动化测试流程,自动测试模块的启动必须基于测试环境是否部署完成,如果当前待测系统较多,测试任务较重,部署任务数较多且并发执行的情况下,不同系统的部署完成时间会依赖当前测试环境的资源而有所不同。如果测试任务按部署任务的发起顺序执行,可能会造成大量的等待部署较慢系统的时间,会严重影响测试执行效率,也没能真正有效利用服务器资源。如果针对同一类系统都启动一个测试流水线任务,则会导致当前执行任务过多,同时还需要监控所有的任务执行状态,以免任务被误停止或宕机,以及相应的重启工作,过多的任务显然会对服务器的响应及处理产生延时,目前无法通过调用中间件的方式对首先部署完成的待测系统创建测试任务号异步推送至测试模块优先开展测试。并且在测试执行过程中,测试模块没有对测试工具所在执行机环境的可用性、测试工具的入参做检测及校验,比如连通性、用户名、密码是否可用,当前环境资源等问题,测试用例、配置文件路径是否存在。测试模块可能会因为这类环境问题中断、无法调起或在执行过程中异常终止,现有的流程没有对这类状况做主备环境的切换。除此之外,测试模块执行过程中,目前没有统一规范的方案对不同系统测试工具判断测试过程执行是否已经完成,需要针对不同的系统的输出日志关键字,对不同测试工具执行结束做相应的逻辑判断改造,针对这类定制化的改造,如果系统测试工具过多,也会加大开发工作量。

技术实现思路

[0004]本专利技术要解决的技术问题是克服现有技术的不足,提供一种任务调度执行速率高,自动化测试流程执行效率高,能按照部署任务的完成顺序去优先执行相应的测试任务,在测试任务真正开始执行前,能验证执行机环境是否可用,能统一不同测试系统执行完成接口,不需要针对不同工具设计不同的逻辑判断方式的异步执行环境监控及自动化测试任务的方法与装置。
[0005]为了实现上述目的,设计一种异步执行环境监控及自动化测试任务的方法,包括以下步骤:a.在各个测试模块中,当任务和相关数据处理完毕后,主动将该任务及相关数据推送至Redis的相应频道或主题中;b.下一个测试模块监听到所述Redis的频道或主题;c.当所述频道或主题中有新的数据推送时,所述下一个测试模块取出所述数据,并对该数据进行处理;d.该测试方法不再依据进入队列的系统部署顺序执行测试任务,而是优先处理执行完毕的部署任务,并将测试流程以异步方式进行。
[0006]本专利技术还具有如下优选的技术方案:1.所述方法还包括对测试工具的入参及执行机所在测试环境进行基础校验与检查。
[0007]2.所述方法还包括当当前测试工具执行机的主环境不可用或当前环境资源不够时,相应地进行备用环境的切换处理,将待测任务分配至备用环境执行,以保障测试流程稳定执行。
[0008]3.所述方法还包括针对不同自动化测试工具执行完毕后,规范执行结果输出接口,主动向消息中间件Redis的channel或key中推送任务执行结果接口数据;自动化测试模块根据任务提供的规范化接口数据,在数据库中插入相关测试结果数据并对相关数据进行加工,用于前端展示与生成测试报告。
[0009]还设计一种采用异步执行环境监控及自动化测试任务方法的装置,所述装置包括测试任务分发模块,用于轮询监听测试环境部署任务完成状态,待部署任务完成后,创建并分配自动化测试任务号,同时将该任务号及测试所需输入参数按任务完成顺序推送至测试模块接收的消息中间件redis的对应的测试执行队列频道channel或key中,一旦某个系统的部署任务完成,则通过该模块构建该系统的自动化测试任务号,并进行测试任务号推送,不再取决于部署系统任务的执行顺序,取决于任务的完成顺序;测试任务调度模块,用于监听测试任务分发模块传递到对应关键字的消息队列中是否存在数据,如果当前队列不存在数据,则继续监听,如果当前队列存在数据,则唤醒测试环境检查模块并开始执行,如果当前队列中的数据中任务号为空,则抛出异常并记录日志,同时继续监听消息队列中数据;测试环境及输入参数检查模块,用于检查现有测试工具执行机环境是否可用,首先会去数据库中测试资产环境表中找到该系统或工具对应的执行机IP及端口,检查主机是否可以连通,用户名、面是否正确,如果该工具需要使用端口则验证端口是否被占用、执行机依赖及其他硬件资源是否足够,如果该环境暂时不可用,或当前环境已有同类工具在执行中,则检查是否当前有备用环境,重复上述环境检查,如果当前环境均不可用则加入执行任务等待队列,该模块定期轮询是否存在可用环境,设定超时时间,如果超时则跳过该任务号,并记录该任务错误日志详情,如果当前环境可用,则开始校验输入参数,并将环境信息作为测试调度模块的输入参数,输入参数主要验证测试用例、配置文件、测试工具路径、测试工具调度命令是否为空,是否存在;并对输入参数做统一格式化处理,针对输入参数中的空格、换行符统一去除,确保因人为输入因素导致数据异常,该功能可以作为开关自行打开或关闭,如果输入参数校验不通过则记录错误日志并中断该测试任务,执行下一条任务号中的输入数据参数校验;测试工具执行模块,用于根据测试环境检查模块确定的执行机环境,到对应的执行机环境利用测试工具调度命令、及对应的输入参数,通过远程调度的方式调起测试工具,再该模块完成测试任务执行后,需要将测试结果按规范接口:执行结果、用例数、成功
数、失败数四个字段生成Json接口数据,同时将任务号及执行结果推送至对应redis中的channel或key中,如果是测试调度模块执行异常,则记录错误日志并执行下一条自动化测试任务,通过规范执行工具结束接口,同时将测试结果主动推送至redis;测试结果检查及报告生成模块:用于监听对应关键字的消息队列,一旦测试调度模块执行完毕,则利用消息队列中的数据将任务号执行状态及测试数据存入数据库测试数据表中,用于前端查询及生成测试报告,该模块主要涉及一些与数据库表的交互及结果生成。
[0010]本专利技术同现有技术相比,其优点在于:1.提高自动化测试流程执行效率,节省服务器资源;2.测试执行前自动校验环境及输入参数,提前预警环境可用性;3.统一不同测试系统执行完成接口,节省本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异步执行环境监控及自动化测试任务的方法,其特征在于,包括以下步骤:a. 在各个测试模块中,当任务和相关数据处理完毕后,主动将该任务及相关数据推送至Redis的相应频道或主题中;b. 下一个测试模块监听到所述Redis的频道或主题;c. 当所述频道或主题中有新的数据推送时,所述下一个测试模块取出所述数据,并对该数据进行处理;d. 该测试方法不再依据进入队列的系统部署顺序执行测试任务,而是优先处理执行完毕的部署任务,并将测试流程以异步方式进行。2.如权利要求1所述的一种异步执行环境监控及自动化测试任务的方法,其特征在于所述方法还包括对测试工具的入参及执行机所在测试环境进行基础校验与检查。3.如权利要求1所述的一种异步执行环境监控及自动化测试任务的方法,其特征在于所述方法还包括当当前测试工具执行机的主环境不可用或当前环境资源不够时,相应地进行备用环境的切换处理,将待测任务分配至备用环境执行,以保障测试流程稳定执行。4.如权利要求1所述的一种异步执行环境监控及自动化测试任务的方法,其特征在于所述方法还包括针对不同自动化测试工具执行完毕后,规范执行结果输出接口,主动向消息中间件Redis的channel或key中推送任务执行结果接口数据;自动化测试模块根据任务提供的规范化接口数据,在数据库中插入相关测试结果数据并对相关数据进行加工,用于前端展示与生成测试报告。5.一种采用如权利要求1

4任一所述异步执行环境监控及自动化测试任务方法的装置,其特征在于所述装置包括测试任务分发模块,用于轮询监听测试环境部署任务完成状态,待部署任务完成后,创建并分配自动化测试任务号,同时将该任务号及测试所需输入参数按任务完成顺序推送至测试模块接收的消息中间件redis的对应的测试执行队列频道channel或key中,一旦某个系统的部署任务完成,则通过该模块构建该系统的自动化测试任务号,并进行测试任务号推送,不再取决于部署系统任务的执行顺序,取决于任务的完成顺序;测试任务调度模块,用于监听测试任务分发模块传递到对应关键字的消息队列中是否存在数据,如果当前...

【专利技术属性】
技术研发人员:徐子祺吴鑫周修庆李俊茹周润滋
申请(专利权)人:上交所技术有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1