性能测试
Posted cm039
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能测试相关的知识,希望对你有一定的参考价值。
1、需求分析阶段就应该参与,可以深入了解系统业务、重要功能的业务逻辑。
2、定性能指标:迭代项目、新项目。迭代项目根据生产监控、日志分析来评估指标,这里需要做容量规划,新项目单独评估。
3、性能指标:
tps:每秒处理事物数,通常都是通过的食物
art:平均响应时间,以及并发数
服务器资料利用率的要求(CPU,内存,IO,网络等)
各个服务的资源情况。
4、熟悉系统架构,申请性能测试环境
web服务器、应用服务器、缓存数据库服务器、数据库服务器、文件服务器等。
主流技术栈:nginx、dubbo、mysql、redis、jvm等
5、制定性能测试方案
项目背景及架构分析;
需要的资源
技术策略(比如压测、监控、分析工具选择等)
场景设计
计划什么时候做什么事等
6、搭建测试环境、准备测试数据
测试数据分为:基础环境数据和业务数据;
基础环境数据可以从功能测试的库导过来,改一些配置即可;
业务数据:存量数据+容量规划数据,比如一个查询接口,都是并发100用户,对应的表数据量是1万和100万,压测结果是不一样的。
数据量要参考生产环境,新项目除了空库压,最好也做存量数据压。
7、压测脚本开发
主流程稳定,调试被测接口、开发压测脚本
客户端并发工具:推荐使用jmeter,主流、开源、请量、免费、功能强大
8、预压测
少量并发(1个用户),压测10分钟
①可以看压测环境功能是否通
②估算并发过程中需要多少参数化数据的数据量
9、执行压测并监控
场景设计好,就可以执行压测,然后监控查看测试各项指标是否满足需求。
Linux:通常用到的命令:top /vmstat/free/df/sar/iostat/netstat等,一般是多命令配合着用
Java应用:jvisualvm、、jconsole、jmap、jstat、jstack等,以及自己写的一些shell脚本
10、分析定位
基于上一步的监控数据,对瓶颈进行分析、定位,模块隔离分析、日志分析、内存分析、线程栈分析、代码跟踪等等
11、性能优化
定位到问题了,大部分情况下,优化方案也就有了,测试可以把自己建议的优化方案告诉开发,开发会结合自己的方案,一起做优化方案评估;如果测试没有优化方案,那就把问题反馈给开发吧,但是也好好学学开发的优化思路,这就是成长的过程
12、性能回归
优化后,复测
13、编写性能报告
测试结果是多少?
测试是否通过?
发现了什么性能问题?原因是什么?如何优化解决的?系统性能提升了多少倍?优化方案务必写详细,以便上线同事知道,把优化同步到其它各个环境。
以上是关于性能测试的主要内容,如果未能解决你的问题,请参考以下文章