性能测试定义和性能指标(文末有福利!)

版权声明:原创不易,未经作者允许请勿随意转载!因个人能力和精力有限,难免有疏漏和不足之处,欢迎指正,谢谢~ https://blog.csdn.net/lijing742180/article/details/90603736

这是一篇被拖延了很久的文章。。。

一、什么是性能测试?

1、软件测试分类

软件测试的种类有很多,根据各种分类方法细数起来不下 20 种类型。

根据实际工作中我们接触最多的类型,可以概括分为功能测试和非功能测试两种。

功能测试又可以包括冒烟测试、回归测试、SIT测试、UAT测试等等。

非功能测试通常又包括性能测试、负载测试、压力测试、疲劳测试、安全测试、兼容性测试、可靠性、稳定性测试等等。

2、性能测试的定义

何谓性能?

性能,其实是软件功能的另一种体现方式,它强调软件在特定时间、空间条件下,软件是否能正常实现功能、满足用户预期要求。

何谓性能测试?

性能测试,就是通过特定方式对被测系统按照不同的策略施加压力,获取系统的响应时间、TPS、吞吐量、资源利用率等性能指标,以期保证生产系统的性能能够满足用户需求的过程。

另外,在各种专业的软件测试书籍和一些培训机构中,会告诉我们性能测试、负载测试、压力测试、疲劳测试等几种测试类型的具体区别,这几个概念很容易混淆,很多同学也对这一块感到很迷惑,但是实际工作中,一般不会有很明确的区别,通常在系统性能这方面更多的只区分性能测试和稳定性测试这两个场景。

3、性能测试的意义

成功的性能测试是要消除系统的性能瓶颈吗?

然并卵,我们必须要正视的一点:

性能测试的意义在于提前发现瓶颈,从而可以做出应对措施,避免或减少损失。

我们只能延缓瓶颈的到来,但不能彻底消除,性能瓶颈永远存在。

举个例子:

一个瓶子容积是 500ml,那么 500ml 就是瓶子的瓶颈。

为了避免过早达到瓶颈,可以增大容积。

假设增加到 1000ml,那么瓶子的瓶颈就是 1000ml。

所以说,系统的性能瓶颈永远存在,只是出现的条件不同而已。

二、性能指标

性能指标有很多,这里介绍一些关键的指标。

1、TPS

TPS,Transaction per second,每秒事务数,即系统平均每秒能够处理的事务数或请求数,它是判断系统性能的最关键、最直接的指标。

在 jmeter 中,TPS 取的是聚合报告中的 Throughput 值。

2、响应时间

响应时间:从客户端发起一个请求开始,到客户端收到服务器端返回的响应为止,这整个过程所耗费的时间。

它包括 请求发送时间 + 网络传输时间 + 服务器处理时间
在这里插入图片描述
根据上图所示:

响应时间 = (N1+N2+N3+N4) + (A1+A3+A2)

3、并发用户数

并发用户数,简称并发数,指的是同时和系统产生交互操作的用户数。

这里要注意, 并发数是与服务器产生了交互的,跟注册用户数和在线用户数不同。

  • 注册用户数:指系统中全部注册用户的数量
  • 在线用户数:指在相同时间段内都登录了系统,但未必会产生交互操作。

并发数在不同的性能测试工具中使用的术语可能不一样,比如在 jmeter 中是线程组,LoadRunner 中是虚拟用户数。

在性能测试过程中,我们要去模拟实际用户来发请求,但是为了让服务器产生更大的压力,我们模拟用户请求比实际用户的请求更频繁,而且这种模拟的用户数和实际的用户数也很难相互准确的换算,所以并发数并不是衡量一个系统性能的关键指标,它只是我们对服务器施压的手段而已,所以不要纠结并发数。

4、资源利用率

在压测过程中,我们要监控服务器和压力机的资源利用率,看是否达到系统的资源瓶颈。

通常要监控的指标有:CPU、内存、网络、磁盘 IO 等。

其中最关键的就是 CPU 和内存的占用率,一般的系统都是要求不能超过 75%,否则就说明快要达到系统的资源瓶颈了,需要重点关注。


最后,送上一点小福利~

去年我考了个软件评测师证书,基本上是利用下班时间准备了不到一个月的时间,一次性通过了。
今天整理了一下当时我使用的备考资料,分享给大家,需要的小伙伴在我的个人公众号 「媛测」 后台回复 软测 二字,即可领取整套的视频+PPT+历年真题资料。

我顺便啰嗦几句,虽说现在大多企业并不要求也不重视这类的证书,但是即便不会升职加薪,考了这个证书也会有很多好处的。

首先,软件评测师可以说是目前软件测试行业唯一的一个证书了,而且是全国统考的,一次性考过终身有效,报名要求低,考试费用也很便宜,简直就是考试界的良心证书了,考不了吃亏考不了上当。

其次,虽说企业并不会明确要求,但是对于同样的岗位,如果有两个差不多背景的候选人,有证书的话肯定会更有优势的。

另外,不管考没考过,备考的过程都是一个很好的学习过程,可以让我们对软件测试行业有一个很全面的认识。而且考题涉及的面很广,不仅包括软件测试各方面的内容,还会涉及计算机基础理论类知识、开发知识、项目管理类知识等,如计算机硬件、软件、操作系统、网络、数据库、代码、算法等等,所以认真备考的话,肯定能够有很多收获的。

猜你喜欢

转载自blog.csdn.net/lijing742180/article/details/90603736