性能测试(二)在什么阶段进行性能测试 ?进行性能测试需要哪些步骤?指标有哪些?

一、在什么阶段开展性能测试工作?

二、性能测试需要哪些步骤?

三、性能测试的指标?

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

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

 

 

 

一、在什么阶段开展性能测试工作?

一般情况下,是在被测系统已完成功能测试、系统趋于稳定的情况下,才会进行性能测试。

我个人认为是有条件的话是第一轮冒烟就可以进行,学校扩建地例子,如果研发架构选择不对,会造成一定的问题,一般来说研发做好功能之后就要针对一些常驻稳定的功能进行负载测试再到压力测试,增加功能后继续进行负载测试再进行压力测试。

 
 

二、性能测试需要哪些步骤?

一、准备工作
1. 组建测试团队
根据被测系统的实际情况,组建一个性能测试团队,团队成员包括:开发人员、运维人员、DBA和测试人员等。
2. 性能需求调研
性能需求调研工作一般是有性能测试人员负责,产品经理、开发人员、运维人员配合完成。
调研系统线上环境的性能需求,包括性能需求、可靠性需求、可维护性需求等。
调研系统相关信息,如硬件参数配置、系统架构与部署方式等。
调研业务场景信息,如关键业务逻辑与处理流程、交易列表、交易量信息、业务分布规律等。
3. 工具的选择
综合系统设计、工具成本、测试团队的技能来考虑,选择合适的测试工具。
压测工具:JMeter、Loadrunner、Locust等等。
监控工具:nmon、lepus、jvisualvm、prometheus、grafana等等。
 
二、性能测试计划
1. 分析性能测试背景
根据对项目背景和业务的了解,确定本次性能测试要解决的问题点。常见的情况有:
对于一个新系统,需要测试系统的承受能力。
对于运行中的系统不能满足实际的需求,需要确定性能瓶颈。
增加了新的业务,需要重新评估系统的承受能力。
系统架构进行了调整,需要重新评估系统的承受能力。
2. 分析用户场景
根据对系统业务、用户活跃时间、访问频率、场景交互等各方面的分析,整理业务场景,为测试脚本开发提供依据。
3. 确定性能目标
针对具体的业务功能点,制定期望的性能目标。其中需要和其他业务部门进行沟通协商,以及结合当前系统的响应时间等数据,确定最终我们需要达到的响应时间和系统资源使用率等目标。
4. 制定性能测试实施计划
根据项目组的时间安排,计划本次性能测试的起止时间、参与人员、产出物等等。
 
三、性能测试设计
1. 测试环境设计
不同的软件和硬件配置会制约系统的整体性能,所以需要部署多个不同的测试环境,在不同的硬件配置上检查应用系统的性能,并对不同配置下系统的测试结果进行分析,得出最优结果。需要重点关注有数据库服务器、应用服务器、软件运行环境。
2. 测试场景设计
根据被测系统的业务特性,并通过和业务部门沟通以及以往用户操作习惯,确定用户操作习惯模式,以及不同的场景用户数量,操作次数,确定测试指标,以及性能监控等。
3. 测试用例设计
根据设计的测试场景,编写测试用例。用例的核心内容包括:用例编号、用例标题、前置条件、操作步骤、测试数据、预期结果、实际结果等等。
4. 编写测试脚本
根据测试用例和选择的工具,准备测试数据,编写测试脚本。
 
四、性能测试执行
1. 部署测试环境
一般由运维或开发人员进行环境的部署,并进行资源协调。
2. 执行测试脚本
在已部署好的测试环境中,按照业务场景和测试用例,按顺序执行我们已经设计好的测试脚本。
3. 性能监控和记录
根据选择的测试工具和监控工具,在压测的过程中对各项性能指标进行监控和记录。
 
五、性能测试分析
分析不同的测试环境下,硬件设备的性能指标与预期的性能指标进行对比,确定是否达到了我们需要的结果。针对没有达到预期的指标,分析具体的瓶颈点。
分析不同的测试环境下,分析应用服务器、数据库服务器、中间件等组件的性能指标。
在性能测试执行过程中,可能会发现某些功能上的不足或存在的缺陷,以及需要优化的地方。
 
六、性能测试调优
确定问题:根据性能分析的结果确定存在的性能问题。
分析问题:根据确定的问题进行具体详细的分析出现问题的原因。
确定调整目标和解决方案。
测试解决方案:对调优后的系统再次进行测试。
分析调优结果:分析调优结果是否到达了预期目标。
 
七、性能汇总与报告
对性能测试的过程和结果进行汇总
编写性能测试报告

 

 

 
 
 
 
 

 

 

 

 

  

三、性能测试基本指标

        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)
  • 常用抓包工具
  • 性能测试工具

 

 
 
 
posted @ 2021-06-07 20:08  陈晓猛  阅读(3014)  评论(0编辑  收藏  举报