软件测试之性能测试详解(含文档+视频讲解)

news2024/11/18 15:47:24

性能测试基础

为什么要进行性能测试(WHY)(最重要)

  • 应用程序是否能够很快的响应用户的要求?
  • 应用程序是否能处理预期的用户负载并有盈余能力?
  • 应用程序是否能处理业务所需要的事务数量?
  • 在预期和非预期的用户负载下,应用程序是否稳定?
  • 是否能够确保用户在真正使用软件时获得舒服的体验? 问题的根源一般是: 在多种平台上的数百个服务器;异构系统、多种应用;数千个工作站;局域网、广域网和 其它分类型的分布式网络体系机构;交错的故障点。 误区:提高一下硬件配置就可以提高性能了,因此性能测试不重要? 该说法是错误的。只能是临时解决问题,而不能从根本上解决问题。

同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

B站封神的接口测试教程,30天练完70个项目实战(含自动化测试、性能测试),学完即就业,永久白嫖!

进行性能测试时,要关注什么?(WHAT)

  • 并发用户数、吞吐量
  • 平均响应时间
  • 服务器资源占用情况
  • 可靠性、可扩展性
  • 发现引起系统问题的原因,关注采用何种技术提高系统性能
  • 软、硬件配置是否合适(容量规划、硬件选型)

谁来关注?(WHO)

  • 开发人员
    • 系统架构:架构是否合理?
    • 数据库设计:数据库设计是否存在问题?
    • 代码:代码是否存在性能问题?系统中是否存在不合理的内存使用方式?
    • 设计和代码:系统中是否存在不合理的线程同步方式和不合理的资源竞争?
  • 系统管理人员
    • 资源利用率:应用服务器和数据库使用状况合理吗?
    • 系统容量:系统最多能支持多少用户的访问?最大的业务处理量是多少?
    • 系统稳定性:系统能否支持7*24小时的业务访问?
    • 系统可拓展性:系统能否实现拓展?系统性能可能的瓶颈在哪?
  • 用户
    • 响应时间过长会是用户烦躁不安(3/5/8)。
    • 系统稳定性:出现HTTP 500 错误或数据库崩溃会让用户对系统失去信心。
  • 业务人员
    • 参数:如何向用户提供参数,例如:支持多少用户使用?响应时间是多少?
  • 测试人员
    • 以上都要关注
    • 能否发现系统中出现的瓶颈?
    • 能否真实有效的评估系统性能能力?

关注的领域主要是?(WHERE)

  • 能力验证
    • 性能测试中最简单也是最常用的一种。主要关心:在给定的条件下,系统能否具有预期的表现?
  • 规划能力
    • 主要关心:应该如何才能使系统具有我们要求的性能能力?
  • 性能调优
    • 性能调优活动回合其他领域的活动交杂在一起。是一种在开发阶段和测试阶段都可能会涉及到的性能测试应用领域。
  • 发现缺陷 误区: 性能测试独立于功能测试 。 此说法是不对的。性能测试是依赖于功能测试。
    • 主要目的是:通过性能测试的手段来发现系统中存在的缺陷。

何时进行性能测试?(WHEN)

  • 一般在功能测试的中后期进行。

概念和术语介绍

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

做性能测试一般关注的性能指标是什么?

并发数

  • 系统用户数:该系统的注册用户数。例如,QQ有100个注册用户。
  • 在线用户数:即登录的用户数。例如,100个人里面有60个人为在线状态。
  • 并发用户数:是对服务器产生压力的用户。例如,这60个人里面只有20个人在进行通信或其他操作。这20个人就是并发用户数。 并发用户数:同一时间进行同一操作的用户数。

响应时间 又叫请求响应时间:TTLB 对请求做出响应所需要的时间一般为:

1

事务响应时间 事务是一组密切相关的操作组合。登录就是一个事务。

每秒事务通过数 TPS是指每秒系统能够处理的事务数。它是衡量系统处理能力的重要指标。 当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。如果环境没有大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户数的增减而改变。

点击率 每秒点击数代表用户每秒向Web服务器提交的HTTP请求数。 点击率越大,服务器压力越大。

吞吐量 单位时间内系统处理的客户请求的数量。(根据业务来说的)直接体现软件系统的性能承载能力,一般来说用请求数或页面数来衡量。

从业务角度,吞吐量也可以用访问人数/天或是处理的业务数/小时来衡量; 从网络角度,吞吐量可以用字节/天来衡量。

思考时间 就是用户两个执行动作之间停留的时间。

资源利用率 不同系统资源的使用情况。CPU,网络,磁盘,网络。

性能测试模型

曲线拐点模型

总结:随着并发用户数的增加,吞吐量与资源利用率增加,说明系统在积极处理,所以响应时间增加的并不明显,处于比较好的状态。但随着并发用户数的持续增加,压力也在持续加大,吞吐量与资源利用率都达到了饱和,随后吞吐量急剧下降,造成响应时间急剧增长。轻压力区与重压力区的交界点是系统的最佳并发用户数,因为各种资源都利用充分,响应也很快;而重压力区与拐点区的交界点就是系统的最大并发用户数,因为超过这个点,系统性能将会急剧下降甚至崩溃。

性能测试分类

基准测试、性能测试、负载测试、压力测试、配置测试、并发测试、可靠性测试、失效恢复测试、大数据量测试

基准测试 有基础的标准,这样能通过对比发现系统的不同点与变化。 应用场景:

  1. 可以在制定的标准下通过基准测试建立一个性能基准,这样以后当系统的环境、参数发生变化之后,再进行一次相同标准下的测试,即可看出变化对性能的影响。
  2. 系统进行基准测试可以在较早的阶段发现性能问题。
  3. 某系统从来没有进行任何性能测试,需要对该系统做一次性能评估作为后续开发调优的参考。

狭义性能测试 通过模拟生产运行的业务压力和使用场景组合,测试系统的性能能否满足生产系统要求。是一种常见的测试方法。

负载测试 负载测试是在被测系统上不断增加压力,直到性能极致。例如:响应时间已经超过预定指标或者某种资源使用已将达到饱和状态。 主要目的是:找系统的负载极限,为系统调优提供数据。

压力测试 压力测试的目的是:找出高负载下系统的问题,例如资源竞争、同步问题、内存泄露等。

负载测试和压力测试两者可以结合进行。 负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加是,系统各项性能指标的变化情况。 压力测试,是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

配置测试 是通过被测系统的软/硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到各项资源的最有分配原则。

并发测试 是通过模拟用户的并发访问,测试多用户并发访问同一应用,同一模块或者数据记录时是否存在死锁或者其他性能问题。

并发用户数和并发数是不一样的。

可靠性测试 是通过给系统加载一定的业务压力的情况下,让应用系统持续运行一段时间,测试系统在这种条件下是否能够稳定运行。

失效恢复测试

  1. 失效恢复测试方法是针对有备份和负载均衡的系统设计的,这种测试方法可以用来检验如果系统局部发生故障, 用户能否继续使用系统,以及如果这种情况发生,用户将受到多大程度的影响。
  2. 一般的关键业务系统都会采用热备份或是负载均衡的方式来实现。这种业务系统一般要求有一台或几台服务器出 现问题,应用系统仍然可以正常执行业务。该方法就是在测试中模拟设备故障,验证预期的恢复技术是否可以正常发挥作用 。
  3. .不是所有的系统都需要进行这种类型的测试,尤其是并没有明确给出系统需要持续运行指标的系统。

大数据量测试 有两种类型:

  1. 独立的数据量测试 针对某些系统存储、传输、统计、查询等业务进行大数据量测试。
  2. 综合数据量测试 是和压力测试、负载测试、并发测试、可靠性测试相结合的综合测试方案。

各个测试类型的测试目的

  • 性能测试:能力验证
  • 负载测试:规划能力、性能调优
  • 压力测试:能力验证、规划能力、性能调优、发现缺陷
  • 配置测试:规划能力、性能调优
  • 并发测试:发现缺陷
  • 可靠性测试:能力验证
  • 失效恢复测试:能力验证、性能调优、发现缺陷

性能测试实施

性能测试的实施:

  • 前期准备(功能稳定、组件团队)
  • 选择工具(进行对于工具的培训)
  • 性能测试方案(需求、计划、方案、策略、资源)
  • 性能测试设计(准备环境—设计场景—编写脚本—辅助工具)
  • 性能测试执行(执行脚本—记录结果)
  • 性能调优与分析
  • 性能测试报告

性能测试前期准备

  1. 系统基础功能验证 确保当前需要进行测试的应用系统具备了进行性能测试的条件。 确保当前进行性能测试的应用系统版本已经稳定。
  2. 组建测试团队 确定团队内角色的构成,以及确定人员的技能。

测试工具

  1. 工具选择 选择项目适合的性能测试工具。Loadrunner。
  2. 工具应用技能培训 为项目组的相关参与者进行测试工具的应用技能培训,以使参与者能够具备测试需要的技能 。
  3. 确认工具应用过程 确定测试工具在测试中的具体应用范围,并不是“工具无所不能”,哪些工作使用工具完成,哪些无法使用工具完成 。

性能测试方案

  • 调研测试需求
    • 测试业务范围
    • 测试环境:硬件环境、软件环境、网络环境
    • 测试目的
    • 性能指标:业务性能指标、系统性能指标
  • 测试策略和测试资源需求
    • 测试策略:测试工具、测试方式、测试执行
  • 性能测试计划:即是如何实施性能测试,概括为以下5点:
  1. 编写性能测试方案
  2. 测试环境准备: 应用软件部署、检查 数据库基础数据导入
  3. 测试脚本、测试数据 脚本参数化 脚本调试
  4. 测试执行 压力测试、系统调优 负载测试
  5. 编写性能测试报告

各种测试通用的实施步骤:需求—方案—代码实现—执行—产出报告

性能测试设计

  1. 测试环境设计 性能测试的结果与测试环境之间的关联性非常大,无论那种性能测试,都必须首先确定测试的环境,包括系统的 软/硬件环境、数据库环境等等 。
  2. 测试场景设计 测试场景模拟的一般是实际业务进行的一个剖面,其包括业务、业务比例、测试指标的目标、测试过程中需要监控 的性能计数器 。
  3. 测试用例的设计 对测试场景近一步细化,一般包括:测试类型、测试内容描述、前置条件、业务操作序列、参数化需求。验证点等。
  4. 脚本和辅助工具开发

性能测试执行

  1. 建立测试环境
  2. 部署测试脚本和测试场景
  3. 执行测试和记录结果

性能测试分析与调优

测试结果分析是最难的部分。是一个灵活的过程,每次性能测试结果的分析都需要测试分析人员具有相当程度的对 软件性能、软件架构和各种性能测试指标的了解,性能测试分析需要借助各种图表。 通用方法:拐点分析法。

性能测试报告

  1. 要测试的目标 本次性能测试预期要达到的性能要求。
  2. 测试概要描述 结构、时间、地点、人员、工具、环境、测试过程简介
  3. 测试结果和数据
  4. 测试结论

PS:如需要软件测试学习资料,可在公众号(互联网杂货铺),后台回复1,小编后面会逐步完善自己收藏的资料。

整理不易,给个关注点个赞吧,谢谢各位大佬!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1025206.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Python flask 的某招聘网站爬虫,招聘岗位可视化系统

招聘信息可视化系统 一、介绍 原文地址 今天为大家带来的是Python基于Flask的招聘信息爬取,招聘岗位分析、招聘可视化系统。 此系统是一个实时分析招聘信息的系统,应用Python爬虫、Flask框架、Echarts、VUE等技术实现。 本项目利用 Python 从某招聘网…

【C++】动静态库的生成与调用

目录层级 lib/Deal.cpp #include "Deal.hpp" #include <iostream>int DataInc(int num) {std::cout << __FUNCTION__ << " Dealing " << num << "..." << std::endl;return num; }int DataDec(int num)…

小程序大作用:教师得力助手

学生成绩查询小程序&#xff0c;一种快捷便利的工具&#xff0c;可以帮助老师们更好地了解学生的学习状况。今天教给各位老师如何制作这样一个小程序&#xff0c;并提供实用的建议。当然&#xff0c;对于许多老师而言&#xff0c;使用现成的工具是更为高效便捷的选择。 今天我为…

for forin forof forEach map区别

一、总结 相同点&#xff1a;都是串行遍历。不同点&#xff1a; 二、for of循环 设计目的&#xff1a;遍历所有数据结构的统一方法。原理&#xff1a;会调用数据结构的Symbol.iterator方法。 只要数据结构定义了Symbol.iterator属性&#xff0c;就能用for of遍历它的成员。…

循环神经网络-简洁实现

参考&#xff1a; https://zh-v2.d2l.ai/chapter_recurrent-neural-networks/rnn-concise.html https://pytorch.org/docs/stable/generated/torch.nn.RNN.html?highlightrnn#torch.nn.RNN RNN import torch from torch import nn from torch.nn import functional as F from…

安防监控视频云存储平台EasyNVR对接EasyNVS时,一直不上线该如何解决?

视频安防监控平台EasyNVR可支持设备通过RTSP/Onvif协议接入&#xff0c;并能对接入的视频流进行处理与多端分发&#xff0c;包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等多种格式。 近期有用户在使用安防视频平台EasyNVR对接上级平台EasyNVS时&#xff0c;出现了一直不上线…

文档丢失怎么找回?学会这3个方法就足够!

场景1&#xff1a;“不是吧&#xff01;我辛辛苦苦写的文档好像忘记保存就退出了&#xff01;谁能救救我&#xff01;帮我找回丢失的文档&#xff1f;” 场景2&#xff1a;“电脑里的文档太多了&#xff0c;每次在清理时都容易误删。有什么方法可以找回我丢失的文档吗&#xff…

iPhone密码忘了怎么办?这3招已足矣

很急&#xff01;之前改了手机密码&#xff0c;现在完全想不起来。该试的数字也都试过了&#xff0c;根本没用&#xff0c;求一个能解锁iPhone手机的方法&#xff01;感谢&#xff01; iPhone手机的锁屏密码是一个保护用户隐私的功能。如果没有锁屏密码给手机上一道“锁”&…

JavaScript系列从入门到精通系列第二篇:JavaScript书写位置、注释和结束符

文章目录 一&#xff1a;JavaScript书写位置 1&#xff1a;CSS书写位置 (一)&#xff1a;行内样式表 (二)&#xff1a;内部样式表 (三)&#xff1a;外部样式表 2&#xff1a;Js书写位置 (一)&#xff1a;行内样式表 (二)&#xff1a;内部样式表 (三)&#xff1a;外部样…

Cesium 地球(1)-概览

​ 参考: CesiumJS 2022^ 源码解读[4] - 最复杂的地球皮肤 影像与地形的渲染与下载过程 Cesium 地球(1)-概览 相关类的从属关系: 地球由 影像数据&#xff0c;和地形数据共同组成。 流程概览: // Scene.jsfunction render() {// ① 更新影像图层的可见性globe.update();/…

java-decompiler

Java Decompiler GitHub F:\Document_JD-GUI\jd-gui-windows-1.4.0

73家央国企专场培训|第38期信创专业人员-精华班在京成功举办

9月8日-10日&#xff0c;由太极计算机股份有限公司-太极信创研习院(以下简称“太极股份”&#xff09;主办&#xff0c;北京慧点科技有限公司协办的“信息技术应用创新专业人员&#xff08;ITAIP&#xff09;-第38期信创精华班&#xff08;央国企专场培训&#xff09;”在北京市…

[游戏开发][Shader]ShaderToy通用模板转Unity-CG语言

这个通用模板貌似是Candcat写的&#xff0c;漏了几个宏定义&#xff0c;我这给补一下&#xff0c;例如&#xff1a; #define iTime _Time.y #define atan atan2 对照表如下 代码如下 Shader "Shadertoy/Template" {Properties{iMouse("Mouse Pos", Vec…

恩智浦为稳固地位,将扩大投资4国家 | 百能云芯

车用芯片制造商恩智浦&#xff0c;今天宣布了一项重大计划&#xff0c;旨在进一步深耕欧洲市场。该公司将利用欧洲微电子和通信技术共同利益重点计划&#xff08;IPCEI ME/CT&#xff09;的支持&#xff0c;加强其在奥地利、德国、荷兰和罗马尼亚的研发能力&#xff0c;并将根据…

MySQL数据库详解 五:用户管理

文章目录 1. 数据库的用户管理1.1 新建用户1.2 重命名用户1.3 删除用户1.4 修改用户密码1.5 忘记用户密码的解决方法1.6 数据库用户授权1.6.1 授权用户权限类别1.6.2 添加权限1.6.2 撤销权限 2. mysql命令 1. 数据库的用户管理 1.1 新建用户 create user 用户名来源地址 [ide…

性能测试必备知识-使用MySQL存储过程构造大量数据:实例解析

在软件开发过程中&#xff0c;测试是一个不可或缺的环节。通过测试&#xff0c;我们可以发现并修复软件中的各种问题&#xff0c;提高软件的质量和稳定性。然而&#xff0c;手动编写大量的测试用例是一项耗时且容易出错的任务。为了解决这个问题&#xff0c;我们需要学会使用批…

一文了解线上展厅设计与搭建要点,线上展厅有哪些应用

引言&#xff1a; 线上展厅已经成为了现代营销领域中不可或缺的一部分。通过巧妙的设计与搭建&#xff0c;企业可以与潜在客户建立更深入的联系&#xff0c;提高品牌知名度&#xff0c;从而提高商务成交量。 一、线上展厅设计要点 线上展厅的设计是关键的一步&#xff0c;因为…

架构师面试必备:高并发限流算法全攻略

Hello大家好&#xff0c;我是小米&#xff01;今天我要和大家聊一聊一个在技术面试中经常被问到的问题——高并发限流算法&#xff01;这个话题非常有趣&#xff0c;也是我们在日常工作中经常会碰到的挑战之一。在本文中&#xff0c;我将详细介绍一些常见的高并发限流算法&…

无涯教程-JavaScript - SUMIF函数

描述 您可以使用SUMIF函数对满足指定条件的范围内的值求和。 语法 SUMIF (range, criteria, [sum_range])争论 Argument描述Required/Optionalrange 您要通过条件判断的单元格范围。 每个范围中的单元格必须是数字或包含数字的名称,数组或引用。 空白和文本值将被忽略。 所…

AMEYA360:村田土壤传感器新增功能

村田制作所新增了土壤传感器功能&#xff0c;除了以前的普通土壤外&#xff0c;还可对人工培养土岩棉、椰糠进行测量。 近年来&#xff0c;对番茄、草莓等农作物广泛使用配制营养土岩棉及椰糠等人工培养土。相较普通培养土&#xff0c;此类培养土的保水力非常高&#xff0c;且难…