性能测试基础

1.定义

   什么是性能测试?

   对响应时间的评估、分析,结合应用的架构和实现细节找出问题,并最终确认问题得到解决的过程

   一般关注时间/效率、资源占用等情况
 
 

2.详解

   2.1 什么时候进行性能测试?

         已通过系统测试,功能比较稳定
  
   2.2 谁关注性能测试?

        用户:用户体会到的性能是软件对用户操作的响应时间,是用户从提交或输入一个 url 地址到系统将全部数据呈现出来的时间。

       系统管理员和性能测试工程师:除与用户的视角一样外,还关注与系统状态相关的信息,如系统资源的使用情况,包括 CPU 的使用、内存的使用情况、磁盘 I/O、数据交互等。还关注硬件资源的可扩展性即规划性能部分,如系统支持 100 个用户并发没问题,支持 200 个呢?

       软件开发工程师:关注以上所有问题,还关注内存泄露、数据库是否死锁、中间件以及和应用程序服务器等问题。

 

3.术语释意

   3.1 请求      

         客户端向服务器发出的请求获得数据或文件、图片等资源
 

  3.2 响应    

        服务器向客户端发送数据或文件、图片等资源

 

  3.3 协议

        传输层协议: tcp、udp

        应用层协议:ftp、http、dns、dhcp、smtp、pop

 

  3.4 响应时间

       应用系统从用户发出请求开始,到客户端接收到所有数据所消耗的时间。

      网页响应时间细分:

                            (1)网络传输时间:N1+N2+N3+N4。

                            (2)应用服务器处理数据:A1+A3。

                            (3)数据库处理时间:A2

 

  3.5 在线人数

        正在使用软件的用户

 

  3.6 并发用户

       指同一时刻与服务器进行数据交互的所有用户数量。(在线用户未必是并发用户)

       服务器实际承受的压力不只取决于并发用户数,还取决于用户的业务场景

       服务端承受的最大并发访问数取决于并发用户数+业务场景

      计算并发用户数: 

      (1)一般都根据以往经验和行业标准进行估算。

                  如电信业并发用户数常为在线用户的万分之一;

                  OA 软件并发用户数一般在在线用户数的 5%-20%。

      (2)参考其他同类产品。

      (3)分析历史数据(一年或半年内的每天需要处理的交易业务量)。

      (4)试上线运行。

     **

    用于估算并发用户数的公式(仅供参考)        

       平均用户并发数:C=n*L/T       峰值并发用户数:C›≈C+3C       

      C是平均并发数,n是用户从登陆到退出系统的时间段,L是系统使用时间段的平均值,T是使用系统的时间段数值,C›指并发用户数的峰值 

      对于企业内部使用的web系统,还有精度更小的一种公式     平均用户并发数:C=n/10      峰值用户并发数:C›≈r*C         

      其中,r值一般取2—3.这种方法要求不太严格,只有很少数据支持分析的性能测试中使用

 

  3.7 吞吐量与吞吐率

        吞吐量:指一段时间内服务器处理的字节数,直接体现服务器的承载能力。

        吞吐率:指单位时间内从服务器返回的字节数,即吞吐量/测试时间,也可以是单位时间内处理的客户请求数。

                     (它是衡量网络性能一个重要指标。通常情况下吞吐量越大,吞吐率的值也越大,吞吐率越大表示系统的负载能力越强

 

        * :从吞吐量和 VU 关联图可看出,吞吐量在 VU 增长到一定数量时,软件系统出现性能瓶颈,此时吞吐量不再随 VU 增多而增大,而是趋于平衡。

       * :实际测试时,吞吐量在测试前是不知道的,必须通过不断添加虚拟用户来测试,以找到吞吐量的拐点,即吞吐量的最大值。

 

   3.8  每秒事务数  

         表示每秒系统处理的事务数,是衡量系统处理能力的重要指标。

         如果每个事务对应一笔业务,那么 TPS 即表示服务器每秒处理的业务笔数。
 
 
  3.9 点击率

       指每秒钟用户向服务器提交的 HTTP 请求的数量。

      点击一次可能会向服务器发出多个 HTTP 请求。通常服务器都具有防刷新机制,以防刷新导致的巨大压力。

      点击率仅仅反映客户端提交的请求数,不能表现服务器当前承受的压力,因为服务器不能处理全部请求时可以拒绝客户端的部分请求。

      若把每次点击作为一次提交事务来对待,则点击率与 TPS(吞吐量) 同义。

 
 3.10 思考时间 

         也称"休眠时间"、等待时间。指用户在进行操作时,每个请求之间的时间间隔。

         负载测试一般忽略思考时间,压力或可靠性测试根基实际情况设置一个思考时间。通常思考时间设置为 3-5s。

 
 3.11 资源利用率

         资源利用率:指服务器系统中不同硬件资源被占用的程度,主要包括 CPU 利用率、内存利用率、磁盘利用率、网络等。

         性能测试中常用资源利用率进行横向对比,如 CPU 使用率很高,而其他资源较低,可知 CPU 是系统瓶颈。配置调优测试中,通过比较配置调优前后的系统资源利用率来判断调优效果。

        性能计数器:是描述服务器或操作系统性能的一些数据指标。主要是通过添加计数器来观察系统资源的使用情况。

        计数器在性能测试中发挥着“监控和分析”的关键作用,尤其是分析系统可扩展性和定位性能瓶颈时。性能测试中分析测试结果时,必须基于多个不同的计数器进行分析。

 

4.性能测试分类  

   4.1负载测试(Load Testing)
        通过对被测试系统不断的加压,直到超过预定的指标或者部分资源已经达到了一种饱和状态不能再加压为止。
        此方法主要是为了寻找系统最大的负载能力,为性能调优提供依据。
 
   4.2 压力测试(Stress Testing)
         当系统已经达到一定的饱和程度(如 CPU、磁盘等已经处于一种饱和状态)时,测试系统处理业务的能力,测试系统是否会出现崩溃等。一般通过模拟负载等方法,使系统资源达到一个较高水平。
        此方法一般用于系统稳定性测试。
 
  4.3 并发测试(Concurrency Testing)
       通过模拟用户并发访问,测试多用户同时访问同一应用、模块或数据,观察系统是否存在死锁、系统处理速度明显下降等性能问题。
 
  4.4 容量测试(Volume Testing)
        寻找软件系统某项指标的极限值(如最大并发用户数、数据库记录数、最大负载、工作量等)的测试,是一种测试目标。
 
  4.5 可靠性测试(Reliability Testing)
      或称稳定性测试,健壮性测试。
     当系统在一定的业务压力下,让系统持续运行一段时间,观察系统是否达到要求的稳定性。
     可靠性测试一般必须给出一个明确的要求,如系统能够持续无故障运行多少天。是一种测试目标。
 
  4.6 配置测试(Configuration Testing)
      配置测试:通过调整系统软/硬件环境,了解不同环境对系统性能的影响,从而找到系统的最优配置。
      此方法一般用于系统调优和规划。
 
  4.7 基准测试
     在一定的软硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统调优或系统评测过程中,通过运行相同的业务场景来比较测试结果确定调优是否达到效果或为系统的选择提供决策依据。
 
 
posted @ 2020-10-13 10:10  Z_sun  阅读(206)  评论(3编辑  收藏  举报