性能测试之“十万个为什么?”

2018年7月4日 1.16k 次阅读 3 条评论 5 人点赞

软件的性能是什么?

软件性能是软件的一种指标,用来表明软件系统或者构件对其及时性要求的符合程度;

同时,软件性能是软件产品的其中一种特性,可以用响应时间等指标来进行度量。

为什么要做性能测试?

在软件测试行业,自动化测试和性能测试成为初级测试工程师向高级测试工程师过度必须跨越的一道门槛。

同时也是软件测试行业提高个人技能所需要设计的区域。所以掌握多一项技能有时候便成为提高自己的一个关键。

性能测试是保障软件系统持续正常运行的前提。

在软件上线之前,必须由性能测试工程师采用合理的测试策略,设计相应的性能测试方案,对软件系统实施性能测试、压力测试、负载测试等。

性能测试往往能够在软件系统上线前期发现软件的性能相关的问题,所以软件系统做性能测试是非常有必要的。

软件性能有哪些指标?

响应时间

响应时间是用户在发出数据请求开始到服务器发送所有数据到客户端所需要的时间。
对于用户来说这种任务,响应时间体现的是端点到端点的时间。详细过程如下图所示:
anser_time.png

并发用户数

并发用户数是指同一时刻与服务器进行数据的交互的所有用户量。
需要注意的是,必须是同一时刻;同时对服务器进行数据访问,或者施加压力。
而且,必须要与数据库进行数据的交互,如果没有任何数据的交互,是没有任何压力的效果。

吞吐量

性能测试种,吞吐量是指单位时间内服务器处理客户请求的数量,吞吐量通常使用请求数/秒来衡量,其可以直接体现出服务器的承载能力。
例如,一个机场一天能载多少乘客进出港,这就是吞吐量。

资源利用率

资源利用率是指服务器系统中不同的资源被利用的程度。
资源利用率=资源实际使用量/系统总的可用资源
性能测试可以通过分析资源利用率合理分配资源的使用,实现配置调优。
例如:CPU利用率,内存利用率,磁盘利用率,网络等参数。

TPS(每秒事务响应数)

例如,一架航班一次能载多少乘客出港,这就是TPS。

TPS反应的是服务器每一秒钟处理的事务数量,它是衡量系统处理能力的重要指标。

性能测试有哪些类型?


负载测试

负载测试,英文名: Load Testing
负载测试是通过对被测试的系统不断的增加压力,直到超过预定的指标或者部分资源已经达到了一种满载的状态不能继续加为止。
例如:一辆大卡车装货,不断地进行装货物,直到货车拉不动为止。
负载测试的目的:找到系统的极限负载能力。
负载测试的环境:需要在特定的环境下实现。
负载测试的手段:不断地进行加压,直到系统资源达到极限。

压力测试

压力测试,英文名: Stress Testing
压力测试是指系统已经达到了一定的饱和度,如CPU或者内存已经处于饱和状态,此时继续处理业务,看系统是否会报错。
疲劳测试是压力测试的一种方式,例如,一头牛已经很累了,但是还在不停的耕地。
压力测试的目的:测试处于饱和程度的系统,处理业务的能力。
压力测试的环境:需要在特定的环境下实现。
压力测试的手段:模拟负载,使系统资源达到较高的水平。

并发测试

并发测试,英文名: Concurrency Testing
并发测试是通过模拟用户并发访问,测试多个用户一起访问同一个应用,观察系统是否出现死锁,系统处理速度是否下降。
并发测试的目的:多个用户一起访问服务器时,系统是否存在一些可能的并发问题。
并发测试的手段:模拟多个用户一起操作

配置测试

配置测试英文名: Configuration Testing
配置测试是通过调整系统软件/硬件环境,了解各种不同环境对系统性能的影响,从而找到系统的最优的配置。
配置测试目的:通过调节环境了解不同因素对系统的影响情况,从而找到调优的方法。
配置测试手段:通过调整系统软件/硬件环境,使系统在不同的环境下进行性能测试。

可靠性测试

可靠性测试,英文名: Reliability Testing
可靠性测试是当系统在一定的业务压力下,让系统持续运行一段时间,观察系统是否达到要求的稳定性能。
可靠性测试目的:测试系统在一定的业务压力下,系统可以持续运行的时间。
可靠性测试环境:指明系统在一定的业务压力环境下持续运行。

性能测试工具有哪些?


Jmeter
OpenSTA
DBMonster
TPTEST
Web Application Load Simulator

备注:点击工具名称可以直接跳转到官网。

风里云里,我在这里等你!

文章评论(3)

  • 大西瓜

    感谢作者的分享

    2019年8月12日
  • 很好

    2019年7月30日
  • 无名氏

    打卡。

    2018年12月11日