本文为在霍格沃兹测试开发学社中学习到的一些技术,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~
性能测试针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值。
把性能工作当作一个工程来做,而不是当作一个测试环节来做。
性能指标,包含两个,一个是业务指标,一个是技术指标;
业务指标:比如1000万在线用户
技术指标:时间指标、容量指标、资源利用率指标
硬件环境、软件环境
系统架构、铺底数据
性能场景分为以下四类,且就有以下四类;(高楼老师说他就是这么的固执,哈哈哈)
四类性能场景
序号 | 场景 | 备注 | 目的 |
---|---|---|---|
1 | 基准场景 | 单交易的容量 ;拿到单交易的上限制;比如压测商城下单直到系统崩溃 | 1、获得单接口最大TPS;2、解决单接口中遇到的性能问题; |
2 | 容量场景 | 对应的真实生产环境的场景;比如验证1千万用户的在线系统能不能撑的住 | 达到系统的最佳运行状态 |
3 | 稳定性场景 | 系统长时间运行能够撑的住;第一个变量:业务累计量(1年1个亿的订单)。 第二个变量: | |
4 | 异常场景 | 运维中异常的处理 |
说完了性能场景的分类,那么性能场景包含哪些内容呢?
序号 | 大类 | 小类 |
---|---|---|
1 | 性能脚本 | |
2 | 参数化数据 | |
3 | 监控策略 | 全局监控 |
定向监控 | ||
4 | 执行控制 | 场景执行顺序 |
实时数据分析 | ||
5 | 场景调整 | 压力线程 |
递增策略 | ||
递减策略 | ||
持续时间 | ||
6 | 软硬件环境 | |
7 | 基础数据/铺底数据 | |
8 | 挡板/MOCK/第三方 |
现在的性能测试工程师,最缺的就是分析思路。有很多人会使用各种各样的工具,但是要把这些分析工具的数据拿出来应该如何组装成一串逻辑,确实是最难的地方。
在课程中,高楼老师提供了性能分析七步法:
序号 | 步骤 | 备注 |
---|---|---|
1 | 压力场景数据分析 | jemter/loadrunner等工具 收集的性能趋势图;看数据的趋势,而不是看点的数据 |
2 | 架构分析 | 项目采用什么样的技术架构,每一个接口走的什么样的路径 |
3 | 响应时间拆分 | 需要找的慢的具体位置 |
4 | 全局监控分析 | 性能分析决策树 |
5 | 定向监控分析 | 性能瓶颈证据链 |
6 | 判断性能瓶颈 | |
7 | 提出解决方案 | 执行方案对比结果 |
性能测试报告、性能调优报告
看性能数据,需要做出两个判断,否则就不是一个合格的测试工程师,一个是有没有瓶颈,另一个是下一步做什么。
案例1:
案例3:
案例4:
曲线很稳定,也有规律,是不是没有问题呢? 不是
没有模拟真实的线上生产环境的业务场景,真实的场景应该是逐步的加压,而不是一下子增加很大的压力。
案例5:
短时间内,响应时间基本上不变,但是随着时间的增加,响应时间确实再不断的增加。这就是需要进行长时间的稳定性场景压测的好案例,短时间内发现不了这个瓶颈。下一步诊断还是拆响应时间。
文末说明
推荐博文:接口测试经典面试题:Session、cookie、token有什么区别?