性能测试原理以及注意点

什么叫性能测试:

  性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
 

为什么要进行性能测试:

   在投入市场之前,应在各种负载条件下对软件系统进行速度,稳定性和可伸缩性测试。如果系统未进行性能测试就上线,可能会导致问题,例如运行速度缓慢,同时有多个用户访问系统,可用性差,这可能会导致不良声誉,并直接影响预期的销售目标。性能测试包含一系列不同的测试,这些测试可以分析系统的各个方面。性能测试将告诉您在上线之前需要解决的问题(主要是在各种负载条件下面临的问题)。
 
 

 性能测试有哪些:

负载测试:负载测试是一种性能测试,用于检查系统并不断增加系统负载,直到负载达到其阈值为止。在这里,增加负载意味着增加并发用户,事务和检查被测应用程序行为的数量。通常在受控环境下进行以区分两个不同的系统。它也被称为”耐力测试”和“体积测试”。负载测试的主要目的是监视系统在重负载下运行良好时的响应时间和应用程序的保持能力。负载测试属于“非功能性测试”,它旨在测试软件应用程序的非功能性需求。
压力测试:压力测试是一种性能测试类型,用于在硬件资源(例如CPU,内存,磁盘空间等)不足时检查软件的稳定性。压力测试是一种负面测试,其中我们向软件加载大量并发用户/进程,而系统硬件资源无法处理这些并发用户/进程。此测试也称为疲劳测试,该测试应通过对应用程序的带宽容量进行测试来捕获应用程序的稳定性。压力测试背后的主要思想是确定系统故障并密切关注系统如何正常恢复,这种质量称为可恢复性。压力测试属于“非功能测试;”,它旨在测试软件应用程序的非功能需求。该测试将在启动之前在受控环境下进行,以便我们可以准确地捕获大多数不稳定情况下的系统行为
峰值测试:峰值测试是压力测试的子集。当被测系统承受的工作负载模型和负载量在短时间内反复超出预期的生产操作时,将执行峰值测试以验证性能特征。
耐力测试:耐力测试是非功能性测试。耐久性测试涉及在很长一段时间内测试具有预期负载量的系统,以发现系统的行为。让我们举一个例子,其中系统被设计为可以工作3个小时,但是同一系统可以忍受6个小时,以检查系统的持久能力。执行最常见的测试用例以检查系统的行为,例如内存泄漏或系统故障或随机行为。有时,耐力测试也称为浸泡测试。
可伸缩性测试:可伸缩性测试是非功能性测试的类型,它是对软件应用程序的测试,用于确定其可扩展性的功能,例如其所支持的用户负载,事务数量,数据量等任何非功能性功能。如果进行此测试,其主要目的是了解系统在哪个峰值处阻止更多缩放。
体积测试:容量测试是非功能性测试,是指使用大量要处理的数据来测试软件应用程序,以检查应用程序的效率。该测试的主要目标是监视不同数据库容量下应用程序的性能。

常见性能测试工具(工具之多根据个人爱好进行选择,本人jemter):

WebLOAD  、LoadRunner、Apache JMeter、NeoLoad、LoadUI、OpenSTA、WAPT、LoadImpact、Loadster、Httperf、

Rational Performance Tester、QEngine (ManageEngine)、Testing Anywhere、CloudTest、Loadstorm

性能测试流程:

需求的分析、性能场景的设计、性能计划的编写、脚本的开发、性能环境和数据的准备、性能的执行、性能结果分析、性能总结报告

常见的性能问题:

响应时间长、加载时间长、瓶颈、可伸缩性差、软件配置问题(针对Web服务器,负载平衡器,数据库)、磁盘使用情况、操作系统限制、网络配置不佳、内存利用率、CPU利用率、硬件资源不足

 
posted @ 2021-09-23 19:57  ganfd  阅读(441)  评论(0编辑  收藏  举报