为什么需要去做“性能测试”
一、为什么要做性能测试?
系统用户量快速增长;同时业务和系统架构更加复杂,要处理的数据大大增加。此时不仅仅要满足于功能的实现,在很多场景下更要关注系统性能。
二、什么是性能测试?
通过一定的手段和方法,在多并发情况下,获取被测系统的各项性能指标,验证被测系统在高并发下的处理能力、响应能力、稳定性等是否能满足预期。定位性能瓶颈,排查性能隐患,保障系统质量,提升用户体验。
三、什么样的系统需要做性能测试?
1、用户量大PV比较高的系统
- PV 即 page view,页面浏览量 用户每一次对网站中的每个页面访问均被记录1次。用户对同一页面的多次刷新,访问量累计。
- UV 即 Unique visitor,独立访客 通过客户端的cookies实现。即同一页面,客户端多次点击只计算一次,访问量不累计。
2、系统核心模块/接口
3、业务逻辑/算法比较复杂
4、促销/活动推广计划
四、性能测试想得到什么?
1、评估系统的能力
当应用上线有大量用户当问的时候,页面的打开速度直接影响用户体验,进而影响用户的留存。了解用户的真实使用体验,对应用做出针对性的性能评估,有效提升用户体验。
2、验证系统的稳定性和可靠性
在整个的网站应用架构体系中,会有一些接口基础服务,它的职责是对外输出一些稳定的查询,一些服务能力,这个时候系统需要有较高的稳定性,比如访问量很多,数据量很大,这个时候就需要关注性能。另外对于一些核心系统,可用性很高,对于性能系统也是非常关键的。
3、改动了核心应用,担心对链路有影响
当网站应用比较复杂的时候,比如核心应用被改造了,改造之后我们会担心这对整条核心链路有影响,这个时候也会考虑做性能评估、性能测试关键指标。
五、性能测试发生的场景?
1、新系统新项目,这个不用多说
2、线上性能问题验证和调优,如果线上出现问题,我们需要在测试环境模拟线上进行分析验证
3、新技术选型,一般由开发或测试对不同技术进行性能测试,比对测试结果,分析优缺点,作为技术选型的参考
4、性能容量评估和规划
5、日常系统性能回归,以半年、一个月、三个月等为周期进行性能抽查
六、常见的性能测试方法
1、基准测试法
当我们拿到一个性能测试项目的时候,我们会对这个系统架构做个了解,了解最好的方式是做一个基准测试,先谈谈它的基本情况。所以会去定一个小并发,比如5-10个人的并发,先去测一测,看它的响应时间,然后将此作为我们的基准。
2、压力测试
如果我们需要快速了解这个系统性能到底是什么情况?我们可以先做一个压力测试,压力测试是为了获取极限性能指标。比如可以设置一个3小时压测场景,每10分钟加10个用户,那到3小时后,可能就是180个用户了。这个时候观察,在压力不断增大过程中系统的表现。
3、负载测试
这是为了获取性能拐点,我们叫最佳性能。当达到这个点的时候,系统能力、极限能力是多少?这个通常用来做线上流量评估。
4、稳定性测试
我们会把用户真实会发生的场景放大3-5倍,然后在线上运行24小时,在这个阶段会发现很多稳定性问题, list回收,java list回收,一旦回收出现问题,可能会出现内存溢出,这个在日常测试过程中,是很难测出来的,所以用稳定性测试查出这些问题。
5、容量测试
当我们业务越来越复杂的时候,比如一场大促,应该怎么评估线上的性能?如何去做合理的扩容?这个就属于容量测试范畴。
6、性能测试工具选择
工欲善其事必先利其器,性能测试时模拟大量负载需要工具帮忙,市面上可供使用的负载工具繁多,如何选择呢?首先我们要明白负载工具是帮助我们来模拟负载的,对于性能测试来说,工具并不是核心,分析、评估、找出性能问题才是核心,这些是主观因素;工具是客户因素,自然要降低其对结果的影响,所以工具选择时我们有几个方面要考虑。
(1)专业、稳定、高效,工业级性能负载工具。
(2)简单易上手,在测试脚本上不用花太多时间。
(3)有技术支持,文档完善,不用在疑难问题上花费时间,集中精力在性能分析上。
(4)要考虑投入产出比。自研或者使用开源不一定比商业工具更省钱,因为要做技术上的投资,时间上的投资。
本文来自博客园,作者:他还在坚持嘛,转载请注明原文链接:他还在坚持嘛 https://www.cnblogs.com/brf-test/p/16612203.html