软件测试——性能测试

本文深入探讨了性能测试的各个方面,包括性能测试的定义、内容、目的以及与功能测试的区别。介绍了基准测试、负载测试、稳定性测试等策略,并详细阐述了响应时间、并发数、吞吐量等关键性能指标。同时,重点讲解了JMeter的安装、使用和功能,以及如何利用JMeter进行基准和负载测试。通过对性能测试流程的解析,帮助读者理解性能测试的重要性及其在系统优化中的应用。
摘要由CSDN通过智能技术生成

性能测试

一、性能测试的概念

性能:就是软件质量属性中的“效率”特性

1.什么是性能测试

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

2.性能测试的内容
1. 后台处理程序的性能(`代码性能`2. 中间件、数据库、架构设计等是否存在瓶颈
3. 服务器资源消耗(`CPU、内存、磁盘、网络``中间件`:是提供系统软件和应用软件之间连接的软件。如:Tomcat、Apache...
3.性能测试的目的
  • 评估当前系统能力
  • 寻找性能瓶颈,优化性能
  • 评估软件是否能够满足未来需求
4.性能测试和功能测试
  • 功能测试:验证软件系统操作功能是否符合产品功能需求规格,主要焦点在功能(正向、逆向)
  • 性能测试:验证软件系统是否满足业务需求场景,主要焦点在于业务场景的满足(时间、资源)
1.功能测试和性能测试相辅相成的
2.一般新项目中,先功能测试通过后,再进行性能测试

二、性能测试策略

  1. 基准测试
  2. 负载测试
  3. 稳定性测试
  4. 其他:并发测试、压力测试、容量测试等
1. 基准测试
1.1 基准测试
  • 狭义上讲:也是单用户测试,测试环境确定以后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。(进行基础的数据采集)
  • 广义上讲:是一种测量和评估软件性能指标的活动。你可以在某个时刻通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。
1.2 基准测试数据的用途
  • 为多用户并发测试和综合场景测试等性能分析提供参考依据
  • 识别系统或环境的配置变更对性能影响带来的影响
  • 为系统优化前后的性能提升/下降提供参考指标
2.负载测试

负载测试通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能承受的最大负载量的测试

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

在这里插入图片描述

3.稳定性测试

稳定性测试是指,在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试,并最终确保服务器能够满足线上业务需求。时长一般为1天、一周等。

4.其他测试策略

性能测试中,测试策略有很多种,但是掌握基础的用法后,其他测试策略只是基础用法的一个变形用法

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

压力测试:压力测试是指在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作的行为。从而有效的发现系统的某项功能隐患、系统是否具有良好的容错能力可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。

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

三、性能测试指标

1.性能指标

指标:一些经过运算得出的结果,来衡量某种操作性能的统称;比如错误率0.5%

  1. 响应时间
  2. 并发数
  3. 吞吐量
  4. 点击数
  5. 错误率
  6. 资源利用率
  7. PV和UV
2.常用性能指标
2.1 响应时间
  • 说明:响应时间指用户从客户端发起一个请求起,到客户端接收到从服务器端返回的结果,整个过程所耗费的时间

  • 组成:响应时间 = 网络时间 + 应用程序处理时间

2.2 并发数
  • 说明:并发测试的用户数
  • 扩展:
    • 系统用户数:系统注册的总用户数量
    • 在线用户数:某段时间类内访问系统的用户数,这些用户不一定向服务器提交了请求
    • 并发用户数:某一物理时刻同时向系统发送请求的用户数
2.3 吞吐量
  • 说明:吞吐量(Throughput)指的是单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力

  • 注意

    • 从业务角度来看,吞吐量也可以用“业务数/小时”、“业务数/天”、“访问人数/天”,页面访问量/天“来衡量
    • 从网络角度来看,还可以用”字节数/小时“、”字节数/天“等来衡量网络的流量
    • 从技术指标来看,可以用每秒事务数(TPS)和每秒查询数(QPS)来衡量服务器具体性能处理能力
  • TPS(Transaction Per Second)

    • 每秒事务数(单位时间内系统处理的客户端请求的事务次数)
    • TPS = 并发数 / 平均响应时间

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

  • QPS(Query Per Second)

    • 每秒查询数
    • 应用:
    • 控制服务器每秒处理指定请求数(如:控制服务器达到每秒60QPS,服务器的性能各项性能指标是否正常)衡量web 服务器处理能力一个重要指标
2.4 点击数
  • 说明:点击数是衡量Web服务器处理能力的一个重要指标
  • 提示:
    • 点击数不是通常一般人认为的访问一个页面就是1次点击数,点击数是该页面包含的元素(图片、链接、框架等)向web服务器发出的请求数量
    • 通常我们也用每秒点击数(Hits per Second)指标来衡量服务器的处理能力
  • 注意:只有web项目才有点击数指标
2.5 错误率
  • 说明:错误率指系统在负载的情况下,失败业务的概率。错误率 = (失败业务数/业务总数)*100%
  • 提示:
    • 不同系统对错误率的要求不同,但一般不超过千分之五
    • 稳定性较好的系统,其错误率应该为超时引起的,即为超时率
2.6 资源利用率
  • 说明:是指系统各种资源的使用情况,资源利用率 = 资源的使用量 / 总的资源可用量 * 100%
  • 提示:通常没有特殊要求的情况下
    • 建议CPU不高于80%(±5)
    • 内存不高于80%
    • 磁盘不高于90%
    • 网络不高于80%
3.性能测试流程
1.性能测试需求分析
2.性能测试计划及方案
3.性能测试用例
4.测试脚本编写/录制
5.建立测试环境
6.执行测试脚本
7.性能测试监控
8.性能分析和调优
9.性能测试报告总结
3.1 性能测试需求分析
  • 说明:性能需求分析是整个性能测试工作开展的基础,性能需求分析做的好不好直接影响到性能测试的结果。
  • 目标:
    • 明确被测试系统
    • 明确测试内容
    • 明确测试策略
    • 明确测试指标
3.2 性能测试计划及方案
  • 说明:性能测试实施第一份文档,也是最重要的一份文档。
  • 主要内容
    1. 项目背景
    2. 测试目的
    3. 测试范围
    4. 测试策略
    5. 风险控制
    6. 交付清单
    7. 进度与分工
3.3 性能测试用例
  • 性能测试用例模板

在这里插入图片描述

3.4 测试脚本编写/录制
  • 说明:性能测试用例编写完成后,接下来就需要结合用例的需要,进行测试脚本的编写工作。
  • 提示:录制或编写,需根据不同的工具注意代码冗余
3.5 建立测试环境
  • 说明:在进行性能测试之前,需要先完成性能测试环境的搭建,测试环境一般包括硬件系统、软件环境及网络环境

    提示:一般情况下可以要求运维和开发工程师协助完成环境搭建

3.6 执行测试脚本
  • 说明:先保证脚本调试通过之后,才能进行正式压测阶段
  • 提示:执行测试脚本时,要先进行性能运行场景的设置,再运行脚本
3.7 性能测试监控
  • 说明:性能监控就是监控服务器的各项指标。例如:监控CPU、内存、网络、TPS、磁盘IO等
3.8 性能分析和调优
  • 说明:性能测试分析人员经过对结果的分析之后,有可能提出系统存在的性能瓶颈。
  • 提示:
    • 调优人员(开发人员、数据库管理员、系统管理员、网络管理员、性能测试分析人员)相关人员对系统进行调整;
    • 验证:性能测试人员继续进行第二轮、第三轮…的测试,与以前的结果进行对比,从而确定经过调整以后的系统的性能是否有提升。
3.9 性能测试报告总结
  • 性能测试总结要包含以下内容:
    1. 性能测试需求覆盖情况,测试过程回顾,及测试中出现的问题(如何去分析、调优、解决的)–基本要求
    2. 性能测试过程中遇到各种风险是如何控制的;目前是否还有其他的性能风险存在
    3. 经过该项目性能测试后,有哪些经验和教训等内容

四、性能测试工具

1.常用的性能测试工具
  • LoadRunner
  • JMeter
1.1 LoadRunner
  • HP LoadRunner是一种工业级标准性能测试负载工具,可以模拟上万用户实施测试,并在测试时可实时检测应用服务器及服务器硬件各种数据,来确认和查找存在的瓶颈
  • 支持多协议:Web(HTTP/HTML)、Windows Sockets、FTP、ODBC、MS SQL Server等协议
  • 最初是Mercury公司采用C语言编写,现被HP公司收购
优点缺点
多用户(支持数量单位万)收费
详细分析报表体积庞大(单位G)
支持IP欺骗无法定制功能
1.2 JMeter
  • JMeter是Apache组织开发的基于Java的开源软件,用于对系统做接口测试和性能测试。
  • 它最初被设计用于Web应用测试,但后来扩展到其他测试领域,例如静态文件、Java 程序、shell 脚本、数据库、FTP、Mail等。
优点缺点
免费、开源不支持IP欺骗
小巧(最新版-50MB左右)分析和报表能力相对LoadRunner精度欠缺
丰富的学习资料和扩展组件
应用广泛
易上手
2.安装使用JMeter
2.1 JMeter下载

官方下载地址

2.2 安装

把下载的安装包,解压到某一目录即可

提示:安装目录中不要出现空格和中文

2.3 JMeter环境配置
在环境变量中
1. 新建JMETER_HOME变量,并添加jmeter所在目录 如:-> F:\Jmeter\apache-jmeter-5.1.1
2.PATH-> 
.;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;
%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;
2.4 启动验证

JMeter启动有多种方式,进入JMeter安装目录下的bin目录

  • 双击 jmeter.bat
  • 双击 ApacheJMeter.jar 选择使用java程序打开
  • 命令行输入: java -jar ApacheJMeter.jar
3.JMeter功能概要
3.1 JMeter文件目录介绍
  1. bin目录 存放可执行文件和配置文件

    jmeter.bat:windows的启动文件
    jmeter.log:日志文件
    jmeter.sh:linux的启动文件
    jmeter.properties:系统配置文件
    jmeter-server.bat:windows分布式测试要用到的服务器配置
    jmeter-serve:linux分布式测试要用到的服务器配置
    
  2. docs目录 存放api文档

    docs:是JMeter的api文档,可打开api/index.html页面来查看
    
  3. printable_docs目录

    • printable_docs的usermanual子目录下的内容是JMeter的用户手册文档
    • usermanual下component_reference.html是最常用到的核心元件帮助文档。
  4. lib目录 存放JMeter依赖的jar包和用户扩展所依赖的jar包

4.JMeter元件作用域和执行顺序
4.1 元件的基本介绍

元件:多个类似功能组件的容器(类似于类)。

组件:实现独立的某个功能(类似于方法)

  • 常用的元件类型
    • 取样器
    • 逻辑控制器
    • 前置处理器
    • 后置处理器
    • 断言
    • 定时器
    • 测试片段
    • 配置元件
    • 监听器
4.2 元件的作用域

在JMeter中,元件的作用域是靠测试计划的树形结构中元件的父子关系来确定的。

提示: 核心是取样器,其他组件都是以取样器为核心运行的,组件添加的位置不同,生效的取样器也不同。

  • 作用域的原则
    • 取样器:元件不和其他元件相互作用,因此不存在作用域的问题;
    • 逻辑控制器:元件只对其子节点中的取样器和逻辑控制器作用;
    • 其他六大元件
      • 如果是某个取样器的子节点,则该元件对其父子节点起作用;
      • 如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等);
4.3 元件的执行顺序
1. 配置元件(config elements)
2. 前置处理程序(Per-processors)
3. 定时器(timers)
4. 取样器(Sampler)
5. 后置处理程序(Post-processors)
6. 断言(Assertions)
7. 监听器(Listeners)

提示:
1. 前置处理器、后置处理器、断言等元件功能对取样器起作用(如果在它们的作用域内没有任何取样器,则不会被执行)
2. 如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序依次执行

五、JMeter性能测试

1.基准测试

请求一个接口100次,一般要求响应时间在1s内,错误率为0%

  • 线程组的配置如下:1个线程|启动时间1s|循环100次
    在这里插入图片描述

  • 一般接口性能测试会存在token问题

    • 添加一个前置线程组(setUp Thread Group)
      在这里插入图片描述

    • 将获取token的接口(例如:登录接口)放在里面

    • 给获取token接口添加一个后置处理器 :
      例如JSON提取器、正则提取器等,这里使用JSON提取器:提取后存放的变量名|JSON表达式|取匹配到的第几个值
      在这里插入图片描述

    • 再添加一个后置处理器:BeanShell PostProcess
      将我们提取的变量设置为全局变量,这样可以全局使用,通过${__property(api_token,,)}使用变量
      在这里插入图片描述

    • 在我们需要token的请求中添加一个请求头配置:HTTP Header Manager
      在这里插入图片描述

2.负载测试

不断增加线程数,压测300s,找到性能瓶颈,一般指吞吐量瓶颈

  • 使用基础线程组
    在这里插入图片描述
  • 14
    点赞
  • 235
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 软件性能测试Excel,是指通过使用Excel软件对所开发的各类软件进行性能测试,并对测试结果进行记录和分析的过程。Excel作为一种数据处理工具,它可以很方便地进行数据输入、统计和计算,因此在软件性能测试中广泛应用。 对于软件性能测试,Excel可以实现以下功能: 1.数据准备:在性能测试前,需要准备一些测试数据,这些数据包括测试用例、模拟场景、业务数据等。这些数据可以通过Excel进行编辑和管理,确保测试数据的完整性和准确性。 2.性能测试结果监控:在进行性能测试时,需要对系统的性能参数进行监控和记录,例如响应时间、并发用户数、CPU利用率等。Excel可以通过图表等方式直观地展现这些数据,供测试人员及时分析和评估测试结果。 3.性能测试报告生成:测试人员可以根据测试结果以及数据分析情况,借助Excel软件生成性能测试报告。报告中可以包含分析结果、问题描述、优化建议、测试结论等内容,有利于进一步完善软件的性能和质量。 4.性能测试数据分析:Excel还可以进行性能测试数据的分析,例如通过制作散点图、趋势图等数据可视化方式,进行数据清洗和筛选,并提取出有价值的信息,为性能优化提供有效参考。 总之,利用Excel进行软件性能测试可以节省测试时间和资源,并为测试人员提供可靠的测试数据和分析结果,有助于提高软件的质量,进一步满足用户需求。 ### 回答2: 软件性能测试是指对软件在特定应用情况下的性能和稳定性进行测试评估的过程。在软测过程中,开发人员需要充分了解软件的需求和系统架构,同时进行专业的性能测试和数据分析。其中,Excel软件可以作为一个强大的工具辅助性能测试。 首先,Excel能够收集和分析大量的数据,快速生成测试报告。通过使用Excel,开发人员可以方便地进行统计处理和数据分析,从而加速评估和调试整个软件性能。 其次,Excel也可以作为一个测试用例的管理工具。开发人员可以将测试用例按照模块或功能进行分类,然后在Excel中进行组织和管理。这样可以加强测试的可重复性和稳定性。 此外,Excel还可以作为一个协作工具。如果多个测试人员共同完成一个项目,则可以利用Excel共享测试结果、修改测试计划等。这样不仅提高了测试效率,而且还可以更好地协同工作。 综上所述,Excel是软件性能测试中一个非常重要的工具,可以对测试中的过程和结果进行全面管理和控制,提高了测试的质量和效率。 ### 回答3: 软件性能测试软件测试中的一个重要环节,其中对于测试结果的综合分析、展示和报告也是关键。在软件性能测试中,Excel是一个常用的工具之一,它可以通过各种数据处理和可视化方式,帮助测试人员更好地处理和展示测试结果。 首先,在软件性能测试中,测试人员需要收集大量的数据,包括各种测试指标的数值、时间和其他相关数据。这些数据很难直接进行分析,需要加工和处理。在这个阶段,Excel可以通过数据透视表、筛选和图表等功能,对数据进行可视化展示,并对数据进行各种汇总以及分析。比如,测试人员可以使用Excel的图表功能,展示测试期间性能随时间的变化。以此帮助测试人员更好地理解整个测试过程中的性能特点,并找出其中的问题。 其次,Excel也可以以报告的形式为测试人员提供综合分析。测试人员可以通过Excel制作图表、汇总表格等形式的报告,将测试所得的数据以及测试人员的分析结论传达给开发团队。通过报告,测试人员可以让开发团队更好地理解性能测试结果,提出改进建议,并协助其完善产品。 总体来说,Excel对于软件性能测试的管理、处理、分析以及报告的制作等方面都有广泛的应用。如果使用得当,Excel可以帮助测试人员更好地理解测试结果、提出改善意见,并且,Excel所提供的数据分析结果可以帮助开发团队及时进行对应更改。因此,Excel是软件性能测试中一个十分重要的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

该笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值