性能测试教程一:概念、测试策略(分类)、性能指标、性能测试流程

一、性能测试概述

性能测试场景

  • 电商双11活动/微信春晚抢红包/12306春运订票
  • 当前服务器配置是否支持20000人同时使用

在真实项目商用时,需要大量的用户进行使用,因此需要模拟大量用户的使用场景

性能的概念

性能测试教程一:概念、测试策略(分类)、性能指标、性能测试流程

性能测试和功能测试

性能测试教程一:概念、测试策略(分类)、性能指标、性能测试流程

二、性能测试策略(分类)

1.基准测试

什么是基准测试?

狭义上讲:也是单用户测试(单用户循环多次得到的数据),测试环境确定以后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。(进行基础的数据采集)

广义上讲:是一种测量和评估软件性能指标的活动。你可以在某个时刻通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。

基准测试数据的用途:

  • 基准测试不会单独存在
  • 为多用户并发测试和综合场景测试等性能分析提供参考依据
  • 为系统/环境配置变更、系统优化前后的的性能提升/下降提供参考指标

2.负载测试

概念:通过逐步增加系统负载,确定在满足系统的性能指标(如响应时间等)情况下,找出系统所能承受的最大负载量的测试。

负载:指向服务器发送的请求数量,请求越多,负载越高

作用:系统最大负载量达到用户要求时,系统才能正式上线使用。

3.稳定性测试

概念:在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周等),并最终保证服务器能满足线上业务需求。

作用:系统在用户要求的业务负载下运行达到规定的时间时,系统才能正式上线使用

注:性能测试中,测试策略其实有很多种,但是掌握基础的用法后,其他不同名称的测试策略只是基础用法的一个变形用法。

性能指标与负载关系图

性能测试教程一:概念、测试策略(分类)、性能指标、性能测试流程
系统性能关键指标与负载量的关系图

(1)在(A-B) 范围内,增加系统的在线用户数,系统的处理能力(负载量)会增大(轻压力区)

(2)在(B-C) 范围内,增加系统的在线用户数,系统的处理能力(负载量)不变(重压力区)

(3)在(C-D) 范围内,增加系统的在线用户数,系统的处理能力(负载量)会减小(崩溃区)

4.压力测试

概念:在强负载(大数据量、大量并发用户等)下的测试,查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力可恢复能力

场景:

  • 高负载下的长时间(如24小时以上)的稳定性压力测试(B-C区间)
  • 极限负载情况下导致系统崩溃的破坏性压力测试(C-D区间)

5.并发测试

极短的时间内,发送多个请求,来验证服务器对并发的处理能力。如:抢红包、抢购、秒杀活动等。

6.容量测试

关注软件的极限压力下的各个极限参数值,例如:最大TPS,最大连接数,最大并发数,最多数据条数等。

三、性能指标

1. 响应时间

性能测试教程一:概念、测试策略(分类)、性能指标、性能测试流程

定义:从客户端发送请求,到客户端收到服务器响应的总时间

组成:网络传输时间 + 服务器处理时间

2.并发数

定义:同一时间向服务发送请求(并发测试)的用户数

性能测试教程一:概念、测试策略(分类)、性能指标、性能测试流程
并发数案例

3.吞吐量

定义:单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力

吞吐量的单位:

  • 从业务角度来看:业务数/小时、业务数/天、访问人数/天、页面访问量/天
  • 从网络角度来看:字节数/小时、字节数/天
  • 从技术指标来看:每秒事务数(TPS)每秒查询数(QPS)

TPS:Transactions Per Second,每秒事务数 (单位时间内系统处理的客户端请求的事务次数)

计算:TPS = 并发数/平均响应时间

事务:就是业务请求,对应一个或者多个操作。如支付请求,包括服务器查询用户余额,支付安全校验等多个操作。 一个业务请求发送给服务器后,最终会定位到服务器对应的业务请求的代码,既有可能是一段代码也有可能是多段代码。

QPS:Query Per Second,每秒查询数

应用:控制服务器每秒处理指定请求数(如:控制服务器达到60QPS,服务器的性能各项性能指标是否正常)。

4.点击数

点击量是衡量网站流量的一个指标,也就是点击数clicks,是对网站点击数据的统计。

点击率(Clicks Ratio)也可以叫做点进率(“Click-through Rate),它是网站上某一内容被点击的次数与整个网站内容被显示次数之比,即clicks/views。反应了网站上某一页面或内容的受关注程度,经常用来衡量广告的吸引程度。比如公众号的一篇文章被浏览了10w次,文章中的广告链接被点击了2000次,那么这条广告的点击率是2%(2000/100000*100%)。

在性能测试领域,点击率(hit rate)常指单位时间内(每秒钟)页面的点击数,即每秒钟发送的http请求数量,点击率越大对服务器造成的压力也越大,对服务器的性能要求也越高。

有些人容易混淆点击率和点击量的概念,比如我们经常会听到有人说某网站的点击率是多多万,实际上这里的点击率指的是点击量,曝光率或者说页面浏览量。

5.错误率

定义:错误率指系统在高负载情况下,失败业务的概率。错误率=(失败业务数/业务总数)*100%。

注意:

  • 不同系统对错误率要求不同,但一般不超过千分之五;
  • 稳定性较好的系统,其错误率应该由超时引起,即为超时率。

6.资源利用率

定义:系统各种资源的使用情况,“资源的使用量/总的资源可用量×100%”

通常,没有特殊需求的话

  • 建议CPU不高于80%(±5)
  • 内存不高于80%
  • 磁盘不高于90%
  • 网络不高于80%

7. PV和UV

PV(访问量):即Page View, 具体是指网站的是页面浏览量或者点击量;

UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。

四、性能测试流程

性能测试教程一:概念、测试策略(分类)、性能指标、性能测试流程

1.需求分析

性能测试教程一:概念、测试策略(分类)、性能指标、性能测试流程

2.性能测试计划

  • 测试的目的和范围
  • 测试人员和分工
  • 测试时间安排
  • 测试的方法

3.性能测试用例

性能测试教程一:概念、测试策略(分类)、性能指标、性能测试流程

4.性能测试执行

  • 搭建性能环境
  • 编写性能测试脚本
  • 配置性能测试监控指标
  • 执行脚本

5.性能测试分析和调优

性能测试分析人员经过对结果的分析以后,有可能提出系统存在性能瓶颈。由开发人员进行问题分析和调优

注意:在性能测试的回归过程中,可能需要进行多轮

6.性能测试报告

  • 性能测试的过程
  • 性能测试的缺陷分析和调优
  • 性能测试的结果
  • 经验总结

原创文章,作者:三酷猫,如若转载,请注明出处:https://www.sankumao.com/2962.html

(0)
上一篇 2022年9月16日 下午11:40
下一篇 2022年9月17日 下午9:33

相关推荐

  • 测试用例设计方法之场景法( 业务测试覆盖)

    介绍 说明: Ø 场景法也可以叫流程图法,是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例。 l 意义: Ø 用户使用角度:用户平时使用的不是单个功能,而是多个功能…

    2022年7月28日
  • JMeter 性能压测场景一:基准测试

    一、业务要求 基准要求示例:单用户单业务 90%响应时间不超过 500ms。 场景设置:启用单业务请求,设置单个用户迭代 50 次测试,获取平均响应时间、90%响应时间等指标数据。…

    2022年10月29日
  • APP功能测试,相对于WEB端的各种完整补充!

    APP的核心功能模块:登录 、注册 、购物车 、支付 、评论 、抢购 、添加商品 、轮播图 、搜索 注册测试点的补充 登录测试点的补充 购物车测试点的补充 搜索测试点的补充 支付测…

    2022年8月9日
  • 白盒测试覆盖测试方法

    一、语句覆盖 case1:a=2、b=0、x=3 二、判定覆盖 只要所有if的F和T都考虑了就可以。不一定是下面的组合。TF和FT也行。以下类似。 case1:a=1、b=0、x=…

    2022年8月1日
  • postman之pm对象详解

    pm对象包含与正在执行的脚本有关的所有信息,并允许访问正在发送的请求的副本或接受到的响应,它还允许获取和设置环境变量和全局变量 一、pm.info 方法 描述 结果类型 pm.in…

    2022年10月23日
  • 接口自动化测试框架开发流程

    接口自动化框架设计思路 搭建基础框架:定义项目目录结构,安装依赖包 通用功能类封装:数据库工具类 用例基础代码:封装接口API对象+UnitTest框架编写测试脚本 测试数据参数化…

    2022年8月28日
  • 1.unittest 框架的介绍

    UnitTest框架 :是Python自带的一个单元测试框架 ,不仅仅可以用来做单元测试,测试人员也经常用来做自动化测试 为什么使用UnitTest框架? 1. 能够组织多个⽤例去…

    2022年8月20日
  • 1.认识软件及测试

    什么是软件 控制计算机硬件工作的工具。 软件基本组成 软件产生过程 什么是软件测试 使用技术手段验证软件是否满足使用需求 软件测试目的 减少软件缺陷(bug),保障软件质量!

    2022年5月25日
  • 5.什么是测试用例?测试用例编写规范

    用例:用户使用的案例 测试用例:是为测试项目而设计的执行文档 用例的作用:1、防⽌漏测 2、衡量软件是否通过的标准 用例模版 用例规范 结果

    2022年5月26日
  • JMeter 性能压测场景五:浪涌测试场景(递增递减)

    浪涌测试指的是服务器在某一瞬间或者多个频次下用户数和压力陡然增加的场景。又叫:阶梯测试、浪潮测试、尖峰测试。 目的:为了验证我们的服务器在短时间内反复急剧增加工作负载时能否正常工作…

    2022年10月29日