性能测试的策略是什么
测试策略
为了避免概念的混乱,此处引用高楼老师的划分,大概有以下几种:
- 基准性能场景:这里要做的是单交易的容量,为混合容量做准备(不要跟我说上几个线程跑三五遍脚本叫基准测试,在我看来,那只是场景执行之前的预执行,用来确定有没有基本的脚本和场景设计问题,不能称之为一个分类)
- 容量性能场景:这一环节必然是最核心的性能执行部分。根据业务复杂度的不同,这部分的场景会设计出很多个,在概念部分就不细展开了,我会在后面的文章中详细说明
- 稳定性性能场景:稳定性测试必然是性能场景的一个分类。只是现在在实际的项目中,稳定性测试基本没和生产一致过。在稳定性测试中,显然最核心的元素是时间(业务模型已经在容量场景中确定了),而时间的设置应该来自于运维周期,而不是来自于老板、产品和架构等这些人的心理安全感
- 异常性能场景:要做异常性能场景,前提就是要有压力。在压力流量之下,模拟异常。这个异常的定义是很宽泛的,在下一篇文章里,我们再细说
性能测试流程
性能测试流程分为五个阶段:分别是 需求调研阶段-->测试准备阶段-->测试执行阶段-->测试报告阶段-->测试总结阶段
性能测试工具
性能测试过程中需要用到的软件工具
1、Jmeter+Grafana+influxDB,执行脚本及监控系统整体的软件指标
2、Grafana+ZABBIX 用于监控服务机硬件资源指标,DB 及中间件应用级监控
3、Grafana+telegraf+influxDB 监控压测机资源情况
性能测试实施
略
有没有专门的性能测试环境,性能测试环境和线上环境有什么不同
第一种:近似推算法。类似于来说,把线上环境的资源在测试环境等比缩小;eg:pro: 8c8g,test:4g4c,那么线上就是测试的2倍,然后测试的性能指标*2 ≈≈ 线上环境的性能指标,这种只能做一种近似推算,但是不同的场景可能结果会有差异。当然最好的话还是复刻线上环境的资源配置
第二种: 全链路压测。正是由于第一种的缺陷,才会出现这种,这种性能结果就是线上环境的真实数据,但是一个不小心会造成线上事故