性能测试、压力测试、负载测试 的区别

1. 性能测试

    性能测试(Performance Test):以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。

容量测试(Volume Testing)

    确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。

    得到负载测试和压力测试各项指标的临界值。

 

稳定性测试

    定义:是指被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定,一般稳定性测试 时间为 n*12 小时。

    运用场景:此类型的测试目前也最常见,针对需要长时间稳定运行的性能点,需要执行稳定性测试。往往在一个项目的性能测试过程中,会划分出优先级较高的性能点,做稳定性测试。例如:宝贝详情页面等等。

 

 

负载测试(Load Testing)

    是确定在各种工作负载下系统的性能,目标是测试当对系统不断地增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值,如某种资源已经呈饱和状态,这时继续对系统施加压力,系统的处理能力不但不能提高,反而会下降。

    运用场景:一般情况下,是以服务器资源安全临界值为界限的测试。如果要模拟某个应用在指定服务器上最大且安全的负载量,则属于负载测试。

 

压力测试(Stress Testing)

    超过安全负载的情况下,对系统继续施加压力,直到系统崩溃或不能再处理任何请求,以此获得系统最大压力承受能力。

    目的是找到系统在哪里失效以及如何失效的地方。

 

2.性能测试系统的性能指标

    一般会在产品需求文档中有明确定义,

    有三种形式描述软件系统的性能指标:

  • 给出产品性能的主要指标(如响应时间):如在100000记录中查询一个特定数据的时间为0.5秒。
  • 与上个基线对比:以某个已发布的版本为基线,如比上一个版本的性能提高30-50%。
  • 与竞争对手的同类产品比较:也叫对标。

 

3.性能分析

    排查手法基本相同:检查请求处理的各个环节的日志,分析哪个环节响应时间不合理,超过预期;然后检查监控数据,分析影响性能的主要因素是内存、磁盘、网络、还是CPU,是代码问题还是架构设计不合理,或者系统资源确实不足。

如:硬盘容量的最大值,文件系统容量的最大值,最大文件长度,缓冲区长度等

----->找出临时存储媒介的限定范围

如:邮箱,CD的最大长度

----->查找通信的限制

如:消息文件的超时或最大长度。查出快超时前有多少数据可以传输

----->寻找数据临时存放的地方,找出存储数据、读和取出这些数据的功能。

制作存储和删除两个过程的测试场景,找出该地方是否会填满或溢出。

----->长时间不停的多个用户同时进行系统的各项操作(一般用脚本或工具实现),观察系统资源占用情况,直到系统无反应或死机为止,获取系统可以承受的最大业务处理量,或最多访问用户数,提交给开发,让其设置系统容量检查指标

----->网络容量测试,检查系统中是否存在网络数据传输功能,如果存在,通过压力测试,获得网络最大传输量,提交给开发,让其设置网络容量检查指标

 

4.小故事

    如果还不理解的话,打个比喻:
  这儿有个服务员,对应咱们的应用系统吧。
  压力测试就是给这位服务器外部压力,比如长时间不让他休息,不给开工资等,看看服务员会不会开小差(无法及时响应请求),或者罢工(宕机)之类的。
  负载测试就是在单位时间内逐步加大这位服务员的工作量,看看此服务员在不同的工作量下完成服务的速度和质量,从而了解到该服务员的工作能力。
  压力测试和负载测试能够帮组我们了解到一个服务器的抗压能力和工作能力,当然也能帮我们评估一个系统或软件的性能瓶颈与质量。

 

posted @ 2022-01-14 14:06  Z_sun  阅读(1058)  评论(0编辑  收藏  举报