一种低代码接口自动化系统、电子设备及存储介质技术方案

技术编号:35828531 阅读:17 留言:0更新日期:2022-12-03 13:56
本发明专利技术提供一种低代码接口自动化系统、电子设备及存储介质,其中,系统包括:通过前端拖拽接口与控制器组装成对应的测试用例,通过定时执行测试用例以及通过数益云平台集成进CICD流程,完成对多系统服务的自动化接口测试及回归测试的需求;集成JaCoCo Agent以及分析线上流量与服务代码,从而分析用例的覆盖率情况。本发明专利技术提出的方案,用例简单编写,整个执行过程从用例执行到测试报告生成以及测试通知自动完成,极大降低了人员自动化介入难度,并极大减少了测试人员的重复劳动,同时回归测试问题反馈变得更加及时,提高了测试工作的整体效率。效率。效率。

【技术实现步骤摘要】
一种低代码接口自动化系统、电子设备及存储介质


[0001]本专利技术属于计算机
,尤其涉及一种低代码接口自动化系统、电子设备及存储介质。

技术介绍

[0002]随着业务规模的扩大,软件程序变得复杂多变,一点细微的代码变动就有可能影响到多方面的功能,因此需要花费大量的人力进行分析测试工作,来验证程序变更之后的影响点,为了缓解此问题软件测试工作需要引入自动化测试来快速的回归各个功能模块,但不同人员使用的自动化测试技术栈不同,且技术水平参差不齐,服务协议多变,写的东西难以维护,且代码覆盖率无法衡量。

技术实现思路

[0003]为解决上述技术问题,本专利技术提出一种低代码接口自动化、电子设备及存储介质的技术方案,以解决上述技术问题。
[0004]本专利技术第一方面公开了一种低代码接口自动化系统,所述系统包括:
[0005]用例转换模块、流程用例编写模块、测试元数据模块、产品环境配置模块、接口请求模块、辅助函数模块、前后置模块、异步校验事件模块、流量分析模块、覆盖率分析模块、任务模块、前端代码分析模块、报告模块和看板模块;
[0006]所述用例转换模块将swagger和curl的三方请求报文解析成系统内的用例;
[0007]所述流程用例编写模块,将多种控制器、接口和用例拼接拖拽组合成流程用例,所述控制器包括if、while和for基础功能;
[0008]所述测试元数据模块,管理每个环境的基础测试数据,通过元数据模板生成每个环境的基础测试数据,从而管理维护测试数据;<br/>[0009]所述产品环境配置模块,管理产品以及环境信息,包括所述环境级别的请求头注入、环境变量定义、路由匹配和环境断言;
[0010]所述接口请求模块,调用多种类型接口;
[0011]所述辅助函数模块,将预设的逻辑封装在一个函数中,提交保存在reload到当前web服务内存中,并同时持久化保存至MySQL;
[0012]所述前后置模块,通过编写脚本,处理流程用例中的非预设的逻辑;
[0013]所述异步校验事件模块,使用内置的方法将被测代码的异步或者队列处理的中间过程的校验提交至RabbitMq中,并使用Work监听所述队列获取执行;
[0014]所述流量分析模块解析线上Nginx日志和请求的代码,将请求的信息解析并降噪落库后,启动一个异步任务做一个覆盖对比,当出口流量存在于线上流量或请求中,则覆盖数加一,最终统计出请求覆盖率以及线上流量覆盖率,作为接口测试线上覆盖率的辅助判断条件;
[0015]所述覆盖率分析模块,实时分析被测代码的覆盖情况,作为衡量测试用例的代码
覆盖度;
[0016]所述前端代码分析模块,管理解析前端代码,后端将获取前端代码并解析降噪前端代码的请求方式和请求路径,用于流量的代码说明以及统计前端请求的覆盖率;
[0017]所述任务模块,动态新增编辑测试任务;
[0018]所述报告模块,保存每一次用例执行和被测代码的测试任务执行的报告;
[0019]所述看板,展示系统内的测试数据。
[0020]根据本专利技术第一方面的系统,所述用例转换模块,通过解析Swagger API Docs JSON获取当前Swagger中所有的接口信息,包括请求方式、请求描述和请求参数,所述接口信息将存入到一张临时表中;勾选需要导入的接口,将Swagger中的接口批量导入至系统的接口库中,并建立关联关系用于获取接口请求体定义与变更;另外一种方式通过浏览器或者三方抓包软件,将请求录制后复制出当前请求的curl,贴入至系统内,系统自动解析所述请求的依赖关系,将请求顺序录入系统内。
[0021]根据本专利技术第一方面的系统,所述流程用例编写模块的前端使用draggable模块进行拖拽组装的行为交互,且拖入至用例中的请求,所述draggable模块将会单独复制一份自己的数据,在用例中变更所述自己的数据,实现单个接口以不同的入参逻辑存在于不同的用例中;所述流程用例编写模块的后端递归用例中的每一个步骤,将用例通过type方法动态创建出继承unittest.TestCase的测试类,将每一个步骤通过setattr反射到所述测试类中,最终将每个步骤实例形成对应的请求对象,通过数据推送功能将用例中的数据信息反推到接口信息中,将接口信息推送到所属用例步骤中。
[0022]根据本专利技术第一方面的系统,所述接口请求模块将匹配对应的请求类型,并根据不同的请求类型,加载对应的请求数据;在接口执行前将初始化不同层级的变量池用于不同优先级的变量替换,初始化后将会将请求参数中所有$xx、${xx}和${func($x,a=$y)}的变量通过递归和正则的方式,使用初始化的变量池进行变量替换,与此同时环境请求头与环境校验默认注入至该请求中,然后经过前置处理器,若请求包含前置脚本则会自动注入运行时对象以及上下文变量后使用exec执行所述请求的代码,所述代码输出被重定向到对应的缓冲池中,最终在报告中体现。
[0023]根据本专利技术第一方面的系统,所述辅助函数模块,编写好辅助方法后进行调试,查看单个辅助方法的执行结果,保存所述辅助方法后触发所述方法的版本的diff操作,将diff当前版本给与修改变更值,确认辅助方法成功后,通过reload方法将所述辅助方法实时载入测试服务的内存中,同时也持久化至数据库中。
[0024]根据本专利技术第一方面的系统,所述前后置模块执行Python3代码块,在执行所述代码块之前将不同层级的变量池注入所述代码块的执行的作用域中,并且将内置对象ARun注入至该作用域,从而获取和修改运行时的变量。
[0025]根据本专利技术第一方面的系统,任务模块的后端使用APScheduler支撑任务执行,在任务模块的前端页面上自定义添加不同类型的任务,所述前端页面将通过选择不同类型的任务展示对应的列表页面,所述前端页面通过条件查询筛选出所需要的用例载入后,调用update方法动态的更新任务信息,并且在执行时将任务中的用例解析后扔到ThreadPoolExecutor中进行并发执行。
[0026]根据本专利技术第一方面的系统,所述覆盖率分析模块将JaCoCo Agent打入服务镜像
中,通过添加服务启动命令同时启动JaCoCo Agent,并且开启TcpServer模式,暴露出对应的端口,测试服务则按照固定的时间轮序或手动触发,将覆盖率exec文件生成到系统所属服务器上,并根据配置git仓库以及分支信息,将被测代码拉取至本地,mvn clean compile后使用jaocococli命令生成对应的覆盖率报告,并使用anywhere作为所述覆盖率报告展示管理服务,在系统内使用iframe嵌入至所述前端页面内。
[0027]本专利技术第二方面提供了一种电子设备,所述设备包括存储器和处理器,所述存储器上存储有计算机程序,该计算机程序被所述处理器执行时,执行如本专利技术第一方面所述的一种低代码接口自动化系统中的方法。
[0028]本专利技术第三方面提供了一种本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种低代码接口自动化系统,其特征在于,所述系统包括:用例转换模块、流程用例编写模块、测试元数据模块、产品环境配置模块、接口请求模块、辅助函数模块、前后置模块、异步校验事件模块、流量分析模块、覆盖率分析模块、任务模块、前端代码分析模块、报告模块和看板模块;所述用例转换模块将swagger和curl的三方请求报文解析成系统内的用例;所述流程用例编写模块,将多种控制器、接口和用例拼接拖拽组合成流程用例,所述控制器包括if、while和for基础功能;所述测试元数据模块,管理每个环境的基础测试数据,通过元数据模板生成每个环境的基础测试数据,从而管理维护测试数据;所述产品环境配置模块,管理产品以及环境信息,包括所述环境级别的请求头注入、环境变量定义、路由匹配和环境断言;所述接口请求模块,调用多种类型接口;所述辅助函数模块,将预设的逻辑封装在一个函数中,提交保存在reload到当前web服务内存中,并同时持久化保存至MySQL;所述前后置模块,通过编写脚本,处理流程用例中的非预设的逻辑;所述异步校验事件模块,使用内置的方法将被测代码的异步或者队列处理的中间过程的校验提交至RabbitMq中,并使用Work监听所述队列获取执行;所述流量分析模块解析线上Nginx日志和请求的代码,将请求的信息解析并降噪落库后,启动一个异步任务做一个覆盖对比,当出口流量存在于线上流量或请求中,则覆盖数加一,最终统计出请求覆盖率以及线上流量覆盖率,作为接口测试线上覆盖率的辅助判断条件;所述覆盖率分析模块,实时分析被测代码的覆盖情况,作为衡量测试用例的代码覆盖度;所述前端代码分析模块,管理解析前端代码,后端将获取前端代码并解析降噪前端代码的请求方式和请求路径,用于流量的代码说明以及统计前端请求的覆盖率;所述任务模块,动态新增编辑测试任务;所述报告模块,保存每一次用例执行和被测代码的测试任务执行的报告;所述看板,展示系统内的测试数据。2.根据权利要求1所述的一种低代码接口自动化系统,其特征在于,所述用例转换模块,通过解析Swagger APIDocs JSON获取当前Swagger中所有的接口信息,包括请求方式、请求描述和请求参数,所述接口信息将存入到一张临时表中;勾选需要导入的接口,将Swagger中的接口批量导入至系统的接口库中,并建立关联关系用于获取接口请求体定义与变更;另外一种方式通过浏览器或者三方抓包软件,将请求录制后复制出当前请求的curl,贴入至系统内,系统自动解析所述请求的依赖关系,将请求顺序录入系统内。3.根据权利要求1所述的一种低代码接口自动化系统,其特征在于,所述流程用例编写模块的前端使用draggable模块进行拖拽组装的行为交互,且拖入至用例中的请求,所述draggable模块将会单独复制一份自己的数据,在用例中变更所述自己的数据,实现单个接口以不同的入参逻辑存在于不同的用例中;所述流程用例编写模块的后端递归用例中的每一个步骤,将用例通过type方法动态创建出继承unittest.TestCase的测试类,将每一个步
骤通过setattr反射到所述...

【专利技术属性】
技术研发人员:宿文何盛华邓炜兴方浩
申请(专利权)人:宁波数益工联科技有限公司
类型:发明
国别省市:

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

1