全链路压测
-
基本概念:针对生产环境进行压力测试
-
原因:数据共享及模块间的耦合性导致局部压测无法评估真实水平
-
流量识别:避免对现网数据产生影响
- 采用方法:流量打标 或 nsq等消息中间件(MQ消息队列) NSQ研究与实践
-
数据隔离:
- 采用方法:数据偏移隔离及影子存储隔离
-
压测脚本:
- 梳理请求和参数
- 控制漏斗转化率
- 不同场景的流量配比
-
压测执行:
- 小流量下发验证
- 阶段性爬坡执行
-
TODO LIST:
-
白天压测:减少测试人员消耗
-
自动化水位监测及流量干预:由于是走现网环境,因此需要引入流量告警机制
-
自动化BI工具筛选建模:在漏斗转化率及不同场景流量配比阶段弱化规则作用,加入合理的算法模型
-
压测引擎的设计过程
-
前期调研:技术选型的核心考量
-
了解业界常用的开源项目及各自优缺点:AB;JMeter;nGrinder;Gatling
-
系统搭建:采用迭代方式进行架构设计、领域抽象实现解耦、设计jobExecution、业务和功能隔离实现通用性
-
改造开源项目代码,满足定制化需求
-
六边形设计:微服务架构基础:六边形设计
JS覆盖率测试
-
Istanbul-Middleware【js】
-
JsCover【java】
数据质量监测
-
原因:数据问题严重、处理时间滞后
-
维度:表维度、字段维度、自定义sql
-
强弱规则(强规则缺乏有效监控报警机制)
-
规则:原子规则(基础规则)、实体规则、自定义规则
-
改进空间:加入算法模型
个人想法
-
当前主要以规则为主,缺乏自适应机制及相应模型构建。
-
自动化测试与自动化运维结合,减少现网测试成本,实现脚本自动化部署、执行及监控报警停止机制。