博特智能|基于微服务的主动采集框架 – 作者:博特智能内容安全实验室

博特智能基于微服务的APP自动化框架将整个测试流程进行解耦分层,包括负责接收测试任务并完成测试流程定义的通道层,执行数据请求网络访问并集成透明代理的执行器层。
v2-a730b2673613086d8bd33cfcef36f054_b.png
框架中的每层采用微服务设计,由资源调度管理系统进行统一管理,便于横向扩展。框架对外提供任务配置接口和数据接口,便于第三方平台的接入调用,具备如下优势:
l 通道层独立:更加有利于定制目标应用的测试流程,方便升级和扩展测试目标
l 执行器层独立:通用化测试的网络访问过程,并将代理等配置在该层,降低对代码的侵入,减少测试业务逻辑需要考虑的问题
l 微服务架构:每层都是独立服务,降低整个测试流程的耦合程度,便于测试集群规模的横线扩展
执行器层主要对自动化采集的执行器进行管理,负责监控执行器的运行状态,对执行器进行管理和调度。执行器的主要功能有:
l 执行器管理:执行器的创建、删除、启动、停止等
l 执行器监控:监控执行器的运行状态的监控,执行的任务、
l 执行器调度:根据设备的状态、用户配置需求决定在合适的设备上启动执行器
l 日志收集:运行过程中产生的日志的收集、运行状态的日志收集,并推送至统一的日志管理中心
l 数据回传:将获取的原始数据推送至通道层进行解析
执行器层由接收器、分配器、执行器以及日志服务四大部分组成。
l 接收器:负责接收通道层请求,将执行的请求存入数据库中。
l 分配器:定时访问数据库,读取未执行的数据,调用执行器进行任务的执行操作。
l 执行器:通过设计的执行方法进行数据采集、生成mht文件以及视频下载等。
l 日志服务:追踪系统执行过程、快速定位系统错误、提供数据分析基础。
v2-64acf48ddd1171875ad662eb0c008fd2_b.png
执行器层分配器定时读取数据库中未执行的数据,根据不同的执行器调用注册中心中不同的原子执行器。采用任务分配器集群的方式进行分配任务,提供系统工作效率。使用分布式锁控制在分布式中可以遇到的问题,例如:重复分配、重复读取同一条数据等。当原子执行器在执行中时,不再进行分配任务。保持阻塞状态。
v2-24feab68d786905497add06c42002b34_b.png
通道层负责对自动化测试平台中的自动化测试通道进行管理,主要面向通道开发者和平台管理员,实现通道从加载、上线、实例化以及升级等全流程的自动化,主要功能包括:
l 通道注册:面向通道的开发者,允许开发者注册已经开发好的通道,提交通道名称,输入格式,输出格式,此处相当对通道的定义,返回通道唯一标识
l 通道管理:包括列举已经上线的通道,每个通道的详细介绍
l 通道升级:支持对通道进行升级和版本管理
l 通道实例管理:对通道实例,能够展示运行状态,包括已经处理的子任务数等
任务层主要负责对自动化测试平台中的任务进行管理,为用户提供任务配置的接口和数据读取的接口,并实现任务的管理调度等功能,任务层的主要功能包括:
l 任务生成:监听任务配置接口,解析配置接口的参数,并为任务生成唯一ID,数据缓存队列地址等信息并返回
l 任务输入处理:针对任务生成接口中的任务输入,按照约定分隔符拆分,推送到其对应的输入队列
l 任务持久化:将任务信息持久化至数据库中,初始状态为0(未处置)
l 任务状态监控:从ELK日至系统中依据任务ID获取日志并分析任务状态(已采集数据的统计等)
l 任务调度:依据任务的类型(定时任务和周期任务),按需调度,自动下发和启动。
l 通道实例管理:对通道实例,能够展示运行状态,包括已经处理的子任务数等

来源:freebuf.com 2020-08-26 18:53:12 by: 博特智能内容安全实验室

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论