每天努力一点点,坚持下去 ------ 博客首页

为什么需要去做“性能测试”

一、为什么要做性能测试?

系统用户量快速增长;同时业务和系统架构更加复杂,要处理的数据大大增加。此时不仅仅要满足于功能的实现,在很多场景下更要关注系统性能。

二、什么是性能测试

通过一定的手段和方法,在多并发情况下,获取被测系统的各项性能指标,验证被测系统在高并发下的处理能力、响应能力、稳定性等是否能满足预期。定位性能瓶颈,排查性能隐患,保障系统质量,提升用户体验。

三、什么样的系统需要做性能测试?

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)要考虑投入产出比。自研或者使用开源不一定比商业工具更省钱,因为要做技术上的投资,时间上的投资。


 

posted @ 2022-08-22 11:13  他还在坚持嘛  阅读(233)  评论(0编辑  收藏  举报