




基本实现



PTA
PTA,性能测试管理模块为性能测试项目的整个生命周期提供支持:
用户权限,给平台使用人员分配不同权限,让每个用户看到最精简的和自己有关的内容
压测申请,性能测试任务源头,摈弃传统的口头、邮件或者其它途径来收集性能测试任务,统一入口,利于统计和审计
过程审批,对于申请的任务进行审批,评估性能测试必要性或者其它与规范不一致的地方,合格进入下一环节,不合格退回处理。
人员任务,TL分配任务给性能测试团队人员,生成人员排班视图
Ansible集成,预期使用Ansible roles完成大量操作,PTA提供管理入口
依赖包管理,对于性能测试引擎需要插件扩展支持的,PTA提供管理入口,然后统一使用PTA内部的Ansible进行分发至PTE。
压测控制,调用PTE控制压力的发起和暂停;压力机的申请、延期、释放
小工具,性能测试过程中为了完成特定的数据准备,数据处理或者其它的一些需要而开发的小工具均可更新至PTA中进行管理
方案管理,提供性能测试方案上传和下载入口
脚本管理,提供性能测试脚本上传和下载入口
参数化管理,提供参数化文件上传和下载入口
报告管理,提供性能测试报告上传和下载入口
缺陷管理,项目执行过程中,可提交性能缺陷,并通知对应人员跟踪解决。
报表管理,可按照周、月、季度、年度等维度定制报表,进行各种统计展示
监控管理,对接监控模块,可跳转至监控驾驶舱,还可对各种指标设置合理的阈值范围,一旦触发阈值规则,则进行告警,降低整个测试过程风险,及时发现问题,提高测试效率
知识库,作为团队知识沉淀,将项目过程中经验总结、个人心得、SOP等写入知识库


PTE
PTE,性能测试引擎作为性能测试平台的核心模块,连接了PTA与PTM。一方面PTA调用PTE进行性能测试压力发起,另一方面PTE的压力体现在被压测系统各监控指标上。
PTE应具备的功能:
机器注册,压测引擎使用虚拟机部署,所有的虚拟机IP地址均需要注册至一个中心,展示在前端页面供用户进行压力机器选择、释放、延期。该中心管理这些机器状态。
压测执行,引擎具备响应压力发起、暂停的能力
联机负载,引擎应具备横向扩展能力,支持联机负载以应对高并发需求
调试支持,引擎应具备单笔请求debug能力
指标输出,压力引擎将测试过程中指标如TPS,RT,SR等数据输出至集中的监控平台
日志输出,压力引擎将测试过程中的各种日志输出值集中的监控平台,如统一日志平台
异常熔断,压力引擎基于阈值规则、监控数据在PTA的指令下能自动终止压测
插件扩展,二次开发的或者开源的插件能集成至压力引擎
本次性能测试平台选用开源软件jmeter作为压力引擎,主要考虑其市场占有率、认可度以及广泛的功能支持。作为个人使用,大部分性能测试场景都是可以满足的,但作为平台建设方面,一些需求需要基于它做一些改造和集成,后续系列文章会详细讲一下集成的细节,对于源代码的改造扩展部分较少涉及。


PTM
PTM,性能测试监控,除了压力引擎输出的TPS、RT、SR(成功率)数据外,一个性能测试平台应对被压测系统进行完善的监控,包括对网络、主机、应用、数据库、中间件、日志等监控,受限于日渐增长的IT系统规模,当前各个模块的监控并不能及时的去发现IT系统问题产生的根因,一个完备的监控系统还应有APM来追踪链路,呈现应用拓扑关系,更清楚直观的去告诉管理者哪个地方出了问题,让管理者立即明白原因并着手去修复问题,而不是经过各种数据分析后得出一个不太准确的结论去验证、修复。
关于监控,大部分公司有专门的运维部门、网络部门、数据库部门进行各自模块的监控,性能测试监控可以对接这些部门,一方面可以获取监控权限,另一方面可以获取相应的数据源自己维护一套监控系统以及告警规则。后续文章会讲一下两方面的实现方式以及优缺点。




