需求背景
基于蓝鲸平台实现应用功能自动化拨测:
一方面:基于蓝鲸平台可以实现监控和运维平台统一化;
另一方面:市面上的功能拨测都不够开放,而通过蓝鲸平台可以自行修改,自主可控。
主要的功能需求有如下三点:
- 系统能根据日常巡检的业务功能检查清单,通过应用自动化巡检及拨测技术,对业务系统相关功能页面的应用性能指标进行巡检分析,并能自动生成巡检报告:包含可用性、用户体验指标(多网络区域)、定位性能故障与瓶颈等;
- 实现方式不能通过修改或侵入业务系统代码、接入应用系统API或接入应用数据库方式实现;
- 系统能支持灵活接入应用、接入应用功能模块、跨应用功能模块自定义测试场景和流程、执行任务保留审计信息等功能。
系统整体架构
基于蓝鲸平台强大的应用对接和调度能力,集成主流的模拟仿真测试框架Selenium,将各业务应用或管理系统有机集成起来(ESB注册),利用定制化APP实现数据的分析和转换,从而实现应用功能自动化拨测。
架构设计如下:
整体系统架构设计按照以下逻辑实现:
蓝鲸平台
- 安装Agent在测试节点上,提供命令管道、文件下发管道和数据上报管道,作为各个网络区域的探针模拟;
- 蓝鲸平台具备IT对象接入、脚本编排、数据处理、任务编排、监控、内外部接口管理、系统管理等基础功能,这些基础功能决定了能承载并满足此功能性需求;
- 蓝鲸ESB组件:用于注册和统一管理包括各类业务应用和系统模块的接口、中间件、数据库、虚拟化、操作系统、网络、存储及其他各类IT对象;
- 开发框架:灵活的开发框架使得系统的扩展性非常高,可定制化程度强。
Selinum框架
- Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11)、Mozilla Firefox、Safari、Google Chrome、Opera等,因而可以实现不侵入业务系统的功能性测试;
- 测试与浏览器的兼容性:测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上;
- 测试系统功能:创建回归测试检验软件功能和用户需求,支持自动录制动作和自动生成Python(蓝鲸用来调度的语言)、 .Net、Java、Perl等不同语言的测试脚本。
SaaS应用
- 实现任务调度和管理功能:将蓝鲸平台源系统所有关联的配置进行分析和转换,并基于源系统的各类驱动方式进行作业编排,实现自动化流程;
- 实现所需的功能性需求。
通过Selenium输入拨测用例
Selenium是一个用于Web应用程序测试的工具, 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。
基于Selenium可实现如下功能:
- 页面解析
该模块将通过多网络区域的客户端Agent模拟爬网,分析html页面、图片、js文件、css样式文件等,并通过自定义http接口请求,仿真用户通过浏览器查询数据、提交表单、功能模块使用等行为,采集信息系统功能模块可访问性、页面的可用率、页面下载时间等应用运行指标数据,将获取的数据上报分析服务器,并进行分析与展示;
同时支持自定义的应用系统访问行为录入,和自定义跨系统功能模块的测试场景和流程。
- 脚本录制
模拟用户对应用系统功能模块的访问和使用,将此自定义过程形成录制好的脚本,并完善为可供蓝鲸平台调用的Python代码,实现脚本录制。
如下为重播过程示意图(以嘉为的系统为例):
1、自动化拨测示例截图——打开浏览器进入登录页面;
2、自动化拨测示例截图:自动输入用户名密码;
3、自动化拨测示例截图:自动点击登录进入系统;
4、自动化拨测示例截图:自动点击菜单栏,进入到相应功能界面;
5、自动化拨测结果校验:可以通过测试脚本获取到页面内容进行判断。
如登录成功后,能获取到页面的title(ERP管理系统)或其他标识则证明测试成功。
功能设计
整体功能逻辑架构设计如下:
设计概要描述如下:
1、基于蓝鲸的应用功能自动化拨测,集成蓝鲸自动化运维平台提供的流程集成、自动发现和开发框架等平台层面的功能;
2、基于Selenium提供的自动化测试框架,实现无应用侵入(包括API和数据库)的应用功能拨测行为仿真,页面解析、脚本录入、脚本播放执行;
3、基于蓝鲸开发的应用实现如下功能:
- 应用管理
实现应用创建、修改、删除、查询,应用属性有:应用名称、测试账号及密码、功能模块;
- 功能模块管理
创建、修改、删除功能模块,录入功能模块测试脚本,功能模块属性有:所属应用、功能模块、对应脚本;
- 应用巡检
创建、修改和删除任务,执行任务,设置定时执行,历史趋势对比,周期任务;应用巡检任务:选择应用(默认所有已录入脚本的功能模块一起)、指标(可访问、响应时间、登录时间等);
- 巡检及测试编排
当需要跨系统功能模块,及内部巡检和测试组件,进行自定义编排时,可根据客户要求进行过程自定义;
- 任务历史及审计
记录所有测试、巡检的历史记录;任务、操作、人员、时间、对象等信息的审核和留档。
4、基于Selenium实现如下功能:
- 页面解析
该模块将通过多网络区域的客户端Agent模拟爬网,分析html页面、图片、js文件、css样式文件等,并通过自定义http接口请求,仿真用户通过浏览器查询数据、提交表单、功能模块使用等行为,采集信息系统功能模块可访问性、页面的可用率、页面下载时间等应用运行指标数据,将获取的数据上报分析服务器,并进行分析与展示;
同时支持自定义的应用系统访问行为录入,和自定义跨系统功能模块的测试场景和流程;
- 脚本录制
模拟用户对应用系统功能模块的访问和使用,将此自定义过程形成录制好的脚本,并完善为可供蓝鲸平台调用的Python代码,实现脚本录制。
5、提供统一展示、数据分析、报表和查询门户。
以上为笔者基于蓝鲸平台上应用功能拨测需求,进行蓝鲸平台+Selenium的技术研究,欢迎探讨交流,谢谢!