Performance test summary (a) --- basic theory articles (reprint)

 With the rapid development of the software industry, modern software systems become more complex, more and more functions, in addition to testers need to ensure the quality of the basic functional testing, performance with more and more people's attention. But the mention of performance testing, a lot of people would not even think straight Loadrunner. LR considered equivalent to performance testing, in fact, this is wrong. LR is just a tool performance testing, performance testing, but just LR. This article will introduce the theoretical basis of the performance test from the following aspects, follow-up will continue to update the relevant article, try to integrate theory with practice, so that the performance test is not learning learning tools.

 

table of Contents:

First,  what is the software performance

Second, the different groups in the eyes of performance

Third, the performance test type

Fourth, the performance test scenarios

Fifth, performance testing basic concepts

Sixth, barber shop model and the model subway stop

? Seven, do performance testing? Need knowledge

 

text:

First,  what is the software performance

      Definitions : Performance Software is a software non-functional properties , whether it is concerned that the software is not able to perform specific functions, but to show up at the completion of the function timeliness .

  By definition performance it is concerned that non-functional characteristics of the software, so in general performance test intervention time is after the functional test is complete. In addition, the definition of timeliness can be seen in the performance is an indicator, you can use indicators to measure time or other, usually we will use certain tools or means to detect certain indicators of whether the software meets the requirements, this is the performance test. 

  Performance Test Definitions : means to test the system performance is simulated variety of normal, and the abnormal peak load conditions through automated testing tools.

 

 

Second, the different groups in the eyes of performance

       Different people due to the different outlook on life, world outlook, values ​​and educational background, knowledge, life experience, may be different views on the same thing or problems. The same is true for software performance, due to the different people different perspectives, points of interest may be different. Here is a look at the performance of different groups of eyes were what.

  • Performance of the user's eyes

  

  • Development performance in the eyes of

  

  • The eyes of the performance of the system administrator

  

      

  • Performance testing in the eyes of what it is?

             

    Testers usually role as a software quality control, not just find bug, responsible for the quality of the software, performance is also part of the quality, performance testers eyes should be comprehensive, things need to be considered comprehensive:

              1, testers need to consider the overall performance, including the performance of respective angles of users, developers, administrators and so on.

              2, testers when doing performance testing in addition to pay attention to surface phenomena such as response time, but also need to focus on nature, such as the user can not see the server data utilization, architecture design is reasonable? Code words are reasonable aspects.

 

Third, the performance test type

  1. Benchmark: at lower pressure is applied to the system, the health system and to view the records as a basis for the relevant reference number
  2. Load tests: the system constantly refers to the increase in pressure or increase the duration under some pressure until the system of a particular security or more performance indicators have reached the critical value, for example, a resource has reached saturation and so on.
  3. Stress Test: Stress Test evaluation system is at or beyond the expected time of operation of the system load, the focus is on the processing capacity of the system under the maximum load or peak load exceeded.
  4. Stability testing: in the case of certain services to the system load pressure, making the system running for some time, in order to detect whether the system is stable.
  5. Concurrent testing: testing a plurality of users simultaneously access the same application, if a deadlock or other performance problems when the same module or data record,

 

Fourth, the performance test scenarios (field) 

1, the performance test scenarios (Areas) are: the ability to verify, planning ability, performance tuning, defects found, comparing performance benchmarks, and briefly following table compares the characteristics and use of each of these scenarios: 

  The main purpose Typical scene Feature

Common performance

Test Methods

Proficiency testing Attention given hardware and software conditions, the system can have the expected performance capability 在要求平均响应时间小于2秒的前提下,如何判断系统是否能够支持50万用户/天的访问量? a)要求在已确定的环境下运行
b)需要根据典型场景设计测试方案和用例,包括操作序列和并发用户量,需要明确的性能目标。
a)负载测试
b)压力测试
c)稳定性能测试
规划能力 关注如何使系统具有我们要求的性能能力

某某系统计划在一年内获客量在到xxx万,系统到时候是否能支持这么多用户量?如果不能需要如何调整系统的配置? a) 它是一种探索性的测试
b) 常用于了解系统性能和获得扩展性能的方法
a) 负载测试
b) 压力测试
c) 配置测试
性能调优 主要用于对系统性能进行调优 某某系统上线运行一段时间后响应速度越来越慢,此时应该如何办? 每次只改变一个配置,切忌无 休止的调优 a) 并发测试
b) 压力测试
c) 配置测试
缺陷发现 发现缺陷或问题重现、定位手段 某些缺陷只有在高负载的情况下才能暴露出来,如线程锁、资源竞争或内存泄露。 做为系统测试的补充,用来发现并发问题,或是对系统已经出现的问题进行重现和定位 a) 并发测试
b) 压力测试

性能基准比较    常用于敏捷开发过程中,敏捷开发流程的特点是小步快走,快速试错,迭代周期短,需求变化频繁。很难定义完善的性能测试目标,也没有时间在每个迭代开展详细的性能测试,可以通过建立性能基线,通过比较每次迭代中的性能表现变化,判断迭代是否达到了目标。

2、通常在某个性能场景(领域)中需要联合使用多种性能测试方法一起进行性能测试,下表为性能测试应用领域与测试方法关联:

 

能力验证

规划能力

性能调优

缺陷发现

性能基准比较

基准测试

 

 √

 

 

负载测试

 √

 

 

压力测试

并发测试

 

 

 

稳定性测试

 

 

 

 

 

五、性能测试基本概念

  1、响应时间

    a)定义:从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间

    b) 关键路径:下图为一次http请求经过的路径,请求会经过网络发送到web服务器进行处理,如果需要操作DB,再由网络转发到数据库进行处理,然后返回值给web服务器,web服务器最后把结果数据通过网络返回给客户端。

    

    c) 计算方法:Response time = (N1+N2+N3+N4)+ (A1+A2+a3),即:(网络时间 + 应用程序处理时间)

    d) 响应时间-负载对应关系:

         

     图中拐点说明:

      1、响应时间突然增加

      2、意味着系统的一种或多种资源利用达到的极限

      3、通常可以利用拐点来进行性能测试分析与定位

  2、吞吐量

    a)定义:单位时间内系统处理的客户端请求的数量

    b)计算单位:一般使用请求数/秒做为吞吐量的单位,出可以使用 页面数/秒表表示。

      另外,从业务角度来说也可以使用 访问人数 /天 或 页面访问量/天 做为单位。

    c)计算方法:Throughput = (number of requests) / (total time).

    d吞吐量-负载对应关系:

            

     图中拐点说明:

      1、吞吐量逐渐达到饱和

      2、意味着系统的一种或多种资源利用达到的极限

      3、通常可以利用拐点来进行性能测试分析与定位 

  3、并发数:

    并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。

    在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求

    系统用户数:系统注册的总用户数据

    

    三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数

  4、资源利用率

    a) 定义:指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量

    b) 通常需要关注的服务器资源如下:

      1、CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制

      2、内存:大脑中的记忆块区,将眼睛,皮肤等收集到的信息记录起来的地方,以供cpu进行判断,但是是临时的,访问速度快,如果关机或断电这里的数据会消失。

      3、磁盘IO:大脑中的记忆区块,将重要的数据保存起来(永久保存,关机或断电不会丢失,速度慢),以便将来再次使用这些数据。

      4、网络:

    c)资源利用-负载对应关系:

      

     图中拐点说明:

      1、服务器某荐资源使用逐渐达到饱和

      2、通常可以利用拐点来进行性能测试分析与定位

  5、其它常用概念:

    a) TPS:Transactions Per Second,每秒事务数

    b) 思考时间:用户每个操作后的暂停时间,或者叫操作之间的间隔时间,此时间内是不对服务器产生压力的

    c) 点击数:每秒钟用户向WEB服务器提交的HTTP请求数。这个指标是WEB应用特有的一个指标:WEB应用是"请求-响应"模式,用户发出一次申请,服务器就要处理一次,所以点击是WEB应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和TPS就是一个概念。容易看出,点击率越大,对服务器的压力越大。点击率只是一个性能参考指标,重要的是分析点击时产生的影响。需要注意的是,这里的点击并非指鼠标的一次单击操作,因为在一次单击操作中,客户端可能向服务器发出多个HTTP请求.

    d)PV:访问一个URL,产生一个PV(Page View,页面访问量),每日每个网站的总PV量是形容一个 网站规模的重要指标。

       UV:作为一个独立的用户,访问站点的所有页面均算作一个UV(Unique Visitor,用户访问)

 

六、理发店模型和曲线拐点模型

  上面介绍了很多性能测试中的基本概念,比较抽象,可以通过性能测试理发店模型 或 地铁进站模型来帮忙我们更好的理解这些概念。这里不做详细介绍了,需要的可直接查看原文。

 

七、做好性能测试需要掌握的知识:

  • 掌握一门编程语言
  • 掌握计算机原理和操作系统知识
  • 良好的网络基础
  • 掌握数据库知识
  • 中间件(apache,tomcat)
  • 常用抓包工具
  • 性能测试工具

 

 

 

 随着软件行业的快速发展,现代的软件系统越来越复杂,功能越来越多,测试人员除了需要保证基本的功能测试质量,性能也随越来越受到人们的关注。但是一提到性能测试,很多人就直接连想到Loadrunner。认为LR就等于性能测试,其实这是不对的。LR只是性能测试的一个工具,但性能测试不仅仅是LR。本文会从以下几个方面介绍基础的性能测试理论,后续也会持续更新相关文章,尽量理论结合实践,让性能测试学习不在是工具的学习。

 

目录:

一、 什么是软件性能

二、不同群体眼中的性能

三、性能测试类型

四、性能测试应用场景

五、性能测试基本概念

六、理发店模型和地铁进站模型

七、做好性能测试需要掌握的知识

 

正文:

一、 什么是软件性能

      定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性

  由定义可知性能关注的是软件的非功能特性,所以一般来说性能测试介入的时机是在功能测试完成之后。另外,由定义中的及时性可知性能也是一种指标,可以用时间或其它指标来衡量,通常我们会使用某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试。 

  性能测试定义:指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

 

 

二、不同群体眼中的性能

       不同的人由于人生观、世界观、价值观以及教育背景、知识体系、人生阅历的不同,对于同一事物或问题的看法可能不同。对于软件性能也是如此,不同的人由于视角的不同,所关注的点也可能不同。下面来看看在不同的人群眼中性能分别是什么样的。

  • 用户眼中的性能

  

  • 开发眼中的性能

  

  • 系统管理员眼中的性能

  

      

  • 测试眼中的性能是什么样的呢?

             

    测试人员通常是做为软件质量控制的一个角色,不仅仅是找bug,需要对整个软件的质量负责,性能也属于质量的一部分,因此测试人员眼中的性能应该是全面的,考虑的东西也需要全面:

              1、测试人员需要考虑全面的性能,包括用户、开发、管理员等各个视角的性能。

              2、测试人员在做性能测试时除开要关注表面的现象如响应时间,也需要关注本质,比如用户看不到的服务器资料利用率,架构设计是否合理?代码是否合理等言方方面面。

 

三、性能测试类型

  1. 基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关数做为基础参考
  2. 负载测试:是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等 。
  3. 压力测试:压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。
  4. 稳定性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。
  5. 并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,

 

四、性能测试应用场景(领域) 

1、性能测试应用场景(领域)主要有:能力验证、规划能力、性能调优、缺陷发现、性能基准比较,下表简单介绍和对比了这几个场景的各自用途和特点: 

  主要用途 典型场景 特点

常用性能

测试方法

能力验证 关注在给定的软硬件条件下,系统能否具有预期的能力表现 在要求平均响应时间小于2秒的前提下,如何判断系统是否能够支持50万用户/天的访问量? a)要求在已确定的环境下运行
b)需要根据典型场景设计测试方案和用例,包括操作序列和并发用户量,需要明确的性能目标。
a)负载测试
b)压力测试
c)稳定性能测试
规划能力 关注如何使系统具有我们要求的性能能力

某某系统计划在一年内获客量在到xxx万,系统到时候是否能支持这么多用户量?如果不能需要如何调整系统的配置? a) 它是一种探索性的测试
b) 常用于了解系统性能和获得扩展性能的方法
a) 负载测试
b) 压力测试
c) 配置测试
性能调优 主要用于对系统性能进行调优 某某系统上线运行一段时间后响应速度越来越慢,此时应该如何办? 每次只改变一个配置,切忌无 休止的调优 a) 并发测试
b) 压力测试
c) 配置测试
缺陷发现 发现缺陷或问题重现、定位手段 某些缺陷只有在高负载的情况下才能暴露出来,如线程锁、资源竞争或内存泄露。 做为系统测试的补充,用来发现并发问题,或是对系统已经出现的问题进行重现和定位 a) 并发测试
b) 压力测试

性能基准比较    常用于敏捷开发过程中,敏捷开发流程的特点是小步快走,快速试错,迭代周期短,需求变化频繁。很难定义完善的性能测试目标,也没有时间在每个迭代开展详细的性能测试,可以通过建立性能基线,通过比较每次迭代中的性能表现变化,判断迭代是否达到了目标。

2、通常在某个性能场景(领域)中需要联合使用多种性能测试方法一起进行性能测试,下表为性能测试应用领域与测试方法关联:

 

能力验证

规划能力

性能调优

缺陷发现

性能基准比较

基准测试

 

 √

 

 

负载测试

 √

 

 

压力测试

并发测试

 

 

 

稳定性测试

 

 

 

 

 

五、性能测试基本概念

  1、响应时间

    a)定义:从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间

    b) 关键路径:下图为一次http请求经过的路径,请求会经过网络发送到web服务器进行处理,如果需要操作DB,再由网络转发到数据库进行处理,然后返回值给web服务器,web服务器最后把结果数据通过网络返回给客户端。

    

    c) 计算方法:Response time = (N1+N2+N3+N4)+ (A1+A2+a3),即:(网络时间 + 应用程序处理时间)

    d) 响应时间-负载对应关系:

         

     图中拐点说明:

      1、响应时间突然增加

      2、意味着系统的一种或多种资源利用达到的极限

      3、通常可以利用拐点来进行性能测试分析与定位

  2、吞吐量

    a)定义:单位时间内系统处理的客户端请求的数量

    b)计算单位:一般使用请求数/秒做为吞吐量的单位,出可以使用 页面数/秒表表示。

      另外,从业务角度来说也可以使用 访问人数 /天 或 页面访问量/天 做为单位。

    c)计算方法:Throughput = (number of requests) / (total time).

    d吞吐量-负载对应关系:

            

     图中拐点说明:

      1、吞吐量逐渐达到饱和

      2、意味着系统的一种或多种资源利用达到的极限

      3、通常可以利用拐点来进行性能测试分析与定位 

  3、并发数:

    并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。

    在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求

    系统用户数:系统注册的总用户数据

    

    三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数

  4、资源利用率

    a) 定义:指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量

    b) 通常需要关注的服务器资源如下:

      1、CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制

      2、内存:大脑中的记忆块区,将眼睛,皮肤等收集到的信息记录起来的地方,以供cpu进行判断,但是是临时的,访问速度快,如果关机或断电这里的数据会消失。

      3、磁盘IO:大脑中的记忆区块,将重要的数据保存起来(永久保存,关机或断电不会丢失,速度慢),以便将来再次使用这些数据。

      4、网络:

    c)资源利用-负载对应关系:

      

     图中拐点说明:

      1、服务器某荐资源使用逐渐达到饱和

      2、通常可以利用拐点来进行性能测试分析与定位

  5、其它常用概念:

    a) TPS:Transactions Per Second,每秒事务数

    b) 思考时间:用户每个操作后的暂停时间,或者叫操作之间的间隔时间,此时间内是不对服务器产生压力的

    c) 点击数:每秒钟用户向WEB服务器提交的HTTP请求数。这个指标是WEB应用特有的一个指标:WEB应用是"请求-响应"模式,用户发出一次申请,服务器就要处理一次,所以点击是WEB应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和TPS就是一个概念。容易看出,点击率越大,对服务器的压力越大。点击率只是一个性能参考指标,重要的是分析点击时产生的影响。需要注意的是,这里的点击并非指鼠标的一次单击操作,因为在一次单击操作中,客户端可能向服务器发出多个HTTP请求.

    d)PV:访问一个URL,产生一个PV(Page View,页面访问量),每日每个网站的总PV量是形容一个 网站规模的重要指标。

       UV:作为一个独立的用户,访问站点的所有页面均算作一个UV(Unique Visitor,用户访问)

 

六、理发店模型和曲线拐点模型

  上面介绍了很多性能测试中的基本概念,比较抽象,可以通过性能测试理发店模型 或 地铁进站模型来帮忙我们更好的理解这些概念。这里不做详细介绍了,需要的可直接查看原文。

 

七、做好性能测试需要掌握的知识:

  • 掌握一门编程语言
  • 掌握计算机原理和操作系统知识
  • 良好的网络基础
  • 掌握数据库知识
  • 中间件(apache,tomcat)
  • 常用抓包工具
  • 性能测试工具

 

 

 

Guess you like

Origin www.cnblogs.com/kongtongshu/p/11235708.html