1. 性能测试:
低流量
-------冒烟测试,基本的功能测试
-------耐力/浸泡测试,超长时间测试
-------基准/回归测试,修改前后的测试对比
中等流量
-------负载测试
-------断点测试,熔断点
-------尖峰测试,数据的突然加剧、骤减
-------可扩展性
高流量
-------容量测试,以实际数据逐渐增加负载,直到监测指标不可接受,这就是容量
-------瓶颈测试
-------压力测试,不一定是实际数据、真实数据,目的就是破坏
2.测试规划
决定SUT(system under test)->决定性能指标->决定指标的度量->决定性能的期望->
->性能测试的规划->性能测试的执行->分析测试结果,后面这三项往往要重复执行
3.性能测试工具
测试工具分类:
-----测试场景:web,app,系统,数据库,模块
-----测试类型:基准测试,峰值测试
-----免费,收费
-----支持的协议
-----支持的功能
测试的一般过程:
-----录制、回放定制脚本
-----模拟多用户同时访问,产生负载压力
-----监控并记录性能指标
-----生成性能分析结果和报告
测试工具的模块:
-----负载生成模块
-----测试数据收集模块
-----资源监控模块
-----控制中心模块
-----结果分析、展示模块
测试场景工具:
-----web:Jmeter, LoadRunner,Locust
-----app
-----系统测试场景:unixbench,perf
-----数据库:sysbench,mysqlslap
-----IO:iozone,bonnie++,dd
-----网络:netperf,iperf
4 保证测试结果的可靠性和可重复性
测试规划:
-----详细记录测试环境和测试过程,最好是工具自动收集软硬件信息
-----快速复位,尽量满足每次测试的起点是一致的
-----足够的负载请求和数据
测试进行:
-----性能数据日志适当输出
-----测试环境要稳定,尽量在无干扰的环境
-----一次调整一个参数的利弊
结果分析:
-----根因分析由易到难
-----几种测试结果相互验证
-----测试结果和生产环境比较
5 性能测试的工程集成
性能测试模式的演化:
单独操作 ==》和其他系统的有机集成
一次次单独执行==》持续而重复的执行
手工进行测试 ==》自动化测试
常规的人工操作==》基于人工智能和机器学习的智能操作
和产品开发的系统集成
-----持续集成
什么叫持续集成?为了配合敏捷开发的速度和效率而产生的,是把源码管理、代码检查、代码编译、测试、部署等整合在一起的概念和工具。
持续集成,持续交付,持续部署
持续集成的价值:
a 降低代码开发风险,及早发现集成错误
b 减少手动测试过程,快手生存测试结果
c 调高程序员和团队的安全感
d 频繁提交代码促使开发人员创建模块化、低复杂度代码
和运维业务的系统集成
-----运维业务的趋势——智能化
-----与运维集成的方法
-----有机、自动
-----智能集成