完整的性能测试流程

2023-11-03

前言

本篇文章带大家一起学习性能测试 1,使用jmeter工具进行接口的性能压测 2,熟练使用jmeter工具 3,针对项目接口进行压测(性能测试的流程和操作的过程介绍) 4,分析调优(拓展部分)

一,关于性能测试的理论介绍

为什么要进行性能测试?

业务方面需求: 1.如每年双十一活动/微信春晚抢红包/12306春运订票等 2.当前服务器配置是否支持10000人同时使用 功能:有 /无 性能:好/坏 性能关注点: 性能(效率) (1)时间特点:即服务器处理用户请求的响应时间,如卡/不卡的情况 (2)资源特点:软件运行时,对服务器资源的消耗情况,如CPU,内存,磁盘等

什么是性能测试?一般是指服务器的性能 使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程 1.后台处理程序的性能(代码的性能) 2.中间件,数据库,架构设计等是否存在瓶颈

中间件:tomcat,apache,nginx等应用服务器

性能测试的目的是什么?

1,评估当前系统能力,如验收第三方提供的软件 2,找到性能瓶颈,优化性能 3,评估软件能否满足未来的需求,例如 淘宝双十一交易额逐年递增

性能测试和功能测试比较 1.区别:关注点不一样 功能测试:主要关注功能上(满足条件,和不满足条件的) 性能测试:主要关注业务场景上 (响应时间 消耗资源) 2.功能测试和性能测试相辅相成 测试顺序:一般先功能测试 ,后性能测试

性能测试的策略,即性能测试的分类有哪些?(面试高频知识点)

1,基准测试:获取单个用户测试的各项性能指标,为多用户并发测试提供参考依据 2,负载测试:是验证在不同的并发下系统的表现情况,测试30,50,80个用户的性能 案例:健身,举哑铃 10斤哑铃,举起10个需要15秒。 20斤哑铃,举起10个需要15秒 30斤哑铃,举起10个需要15秒---最优负载量 40斤哑铃,举起10个需要20秒---最优负载量 50斤哑铃,举起10个需要40秒 60斤哑铃,举起10个需要100秒---最大负载量 70斤哑铃,举不起来 3,稳定性测试:在服务器稳定运行的情况下,进行长时间测试,时长一般为1天 4,其他:并发测试,压力测试,容量测试

编辑

添加图片注释,不超过 140 字(可选)

横向坐标:系统当前的用户量,越往右用户量越大! 纵向坐标: 1 :资源的利用情况(Utilization,包括硬件资源和软件资源) 2:吞吐量(Throughput,这里是指每秒事务数)即处理能力 3:响应时间(Response Time),业务处理的响应时间

(1)在A点----B点区间内,随着用户数量的增加 【在最优负载内】 系统资源的使用情况 在逐步增加的 系统处理能力也在逐步增加 系统的响应时间变化不大

(2)在B点----C点区间内,随着用户数量的增加 【达到了最大负载量】 系统资源的使用情况 不变 系统处理能力不变 系统的响应时间在逐步增加

(3)在C点----D点区间内,随着用户数量的增加 【系统崩溃,超过了最大负载量】 系统资源的使用情况 系统处理能力会减小 系统的响应时间在逐步增加

系统处理的最大用户数量是(B) 系统长时间稳定运行时,推荐的用户数量是(B)

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

压力测试:是在强负载下(大数据量,大量并发用户下)的测试,查看应用程序在峰值的使用情况,

(1)稳定性压力测试:在系统高负载的情况下(临近C点)长时间运行(24小时)查看系统处理能力。 (2)破坏性压力测试:在系统极限负载的情况下(C-D点)对系统进行压力测试,查看系统容错能力和错误恢复能力。

容量测试:关注软件的极限压力下的各个参数值 例如 最大TPS (每秒事务处理量(TransactionPerSecond)),最大并发数,最大连接数(数据库建立连接)

性能测试的常用指标有哪些?(面试高频知识点)

定义:在性能测试的过程中 记录的数据值,用这些数据值与需求中的性能要求做对比,达到标准则无问题,未达到则是性能BUG

1.响应时间:从客户端发起请求开始,到客户端从收到服务器端返回的结果的整个消耗时间 响应时间=网络时间+应用程序处理时间 2.并发数(正在发生请求的用户,,,) 同一时刻 不同的用户做同一个操作或对同一个服务器做不同的操作。 绝对并发:同一时刻不同的用户做同一个操作。 3.吞吐量:每秒服务器处理的请求个数或事务数。从技术角度衡量系统性能重要指标,TPS 每秒事务数 4.点击数(使用少):只有web项目才有此指标, 5.资源使用率:指系统资源使用的情况, 资源利用率=资源的使用量/总的资源可用量×100%

1)建议CPU不高于80% CPU:的能力高低直接影响了整个电脑的运行速度,绝大多数的程序,都要经过它的运算,当然也包括病毒,如果它的使用率太高,会导致整个电脑的速度下降

2)内存不高于80% 内存:程序运行时所消耗的空间 3)磁盘不高于90% 磁盘:存储数据文件 4)网络不高于80% 影响数据的传输速度

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

性能测试的流程有哪些?(面试高频知识点)

1.性能测试需求分析 2.性能测试计划与方案 3.性能测试用例 4.性能测试脚本编写/录制 5.建立性能测试环境 6.执行测试用例 7.性能测试监控 8.性能分析和调优 9.性能测试报告总结

性能测试需求分析 1,熟悉被测试的系统 (1)熟悉被测试的系统的业务功能 (2)熟悉测试系统的技术架构 2.明确性能测试内容 业务方面:确定关键业务,即用户使用频率高的业务功能 技术方面:逻辑复杂高的业务 即CPU密集运行的地方 3.明确测试范围 负载测试:最优,最大负载量 稳定性测试:能否长时间稳定地运行 并发测试:用户一起使用时是否会出问题 4.确定测试指标 没有明确指标时:可以参考类似系统对比,查相关资料, 有明确指标时 例如:(1)下单业务并发20个用户 (2)平均响应时间要小于等于3S (3)事务成功率100% (4)CPU使用率小于等于85%

性能测试计划与方案

1.项目背景 2.测试目的 3.测试范围 4.测试策略 5.风险控制 6.交付清单 7.进度与分工

性能测试用例 要素:用例标题,用例编号,用例前置条件,用例步骤,用例预期结果,用例实际结果(需要监控的各项性能指标) 模板如下,和功能测试用例差不多一样

编辑

添加图片注释,不超过 140 字(可选)

执行测试步骤 1.测试脚本编写/录制:用例编写完成后,结合用例的需要 进行测试脚本的编写

2.搭建测试环境:一般包括硬件和软件环境及网络环境(运维和开发协助完成) 注意:尽可能和用户使用的环境一样

3.执行测试脚本:先保证脚本调试通过之后,才能进入正式的压测阶段,在执行测试脚本同时,要先进行性能运行场景的设置,再运行脚本

4.性能测试监控:监控服务器的各项指标 例如:监控CPU,内存,网络,tps,磁盘等

5.性能分析和调优:对结果进行分析以后,提测系统存在性能的瓶颈。调优 即让开发改代码 (性能的BUG数量少,但开发 修改可能一个月的时间才能修复)

性能测试报告 1.性能测试需求覆盖情况,测试过程回顾,测试中发现的问题, 2.各类风险如果控制的 ,目前是否存在签证的风险 3.经过本次性能测试后,总结测试经验和教训

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

完整的性能测试流程 的相关文章

  • Linux中如何查看开启了哪些端口?

    在Linux中 端口是设备与外界通讯交流的出口 常用于指TCP IP协议中的端口 其按照端口号可以分为三类 分别是 公认端口 注册端口 动态端口 那么Linux中如何查看开启了哪些端口 以下是常用命令介绍 1 使用netstat命令 net
  • 【镜像压缩】linux 上 SD/TF 卡镜像文件压缩到实际大小的简单方法(树莓派、nvidia jetson)

    文章目录 1 备份 SD TF 卡为镜像文件 2 压缩镜像文件 2 1 多分区镜像文件的压缩 树莓派 普通 linux 系统等 2 2 单分区镜像文件的压缩 Nvidia Jetson Nano 等 3 还原镜像文件到 SD TF 卡
  • 如何解决Mybatis-plus与Mybatis不兼容的问题:An attempt was made to call a method that does not exist. The attempt

    博主猫头虎的技术世界 欢迎来到 猫头虎的博客 探索技术的无限可能 专栏链接 精选专栏 面试题大全 面试准备的宝典 IDEA开发秘籍 提升你的IDEA技能 100天精通Golang Go语言学习之旅 领域矩阵 猫头虎技术领域矩阵 深入探索各技
  • 如何利用CHAT做简单的总结体会?

    问CHAT 在测试过程中使用appium python自动化的优点和体会 CHAT回复 使用 Appium 配合 Python 进行自动化测试主要有以下几点优点 1 跨平台性 Appium 支持 iOS 和 Android 平台的应用自动化
  • RF自动化环境安装+自动化实例解析

    RF定义 通用型的 自动测试框架 绝大部分的软件的的自动化系统都可以采用它 特点 测试数据文件 Test Data 对应一个个的测试用例 测试数据文件里面使用的功能小模块叫关键字 由测试库 Test Library Robot Framew
  • 远程控制软件安全吗?一文看懂ToDesk、RayLink、TeamViewer、Splashtop相关安全机制_raylink todesk

    目录 一 前言 二 远程控制中的安全威胁 三 国内外远控软件安全机制 ToDesk RayLink Teamviewer Splashtop 四 安全远控预防 一 前言 近期 远程控制话题再一次引起关注 据相关新闻报道 不少不法分子利用远程
  • 软件测试|深入了解Python中的super()函数用法

    简介 Python中的super 函数是一种强大的工具 用于在子类中调用父类的方法 它在面向对象编程中非常有用 可以让你轻松地扩展和重用现有的类 本文将详细介绍super 函数的用法 并提供一些示例来帮助你更好地理解它的功能 什么是supe
  • 软件测试|使用matplotlib绘制多种折线图

    简介 在数据可视化领域 Matplotlib是一款非常强大的Python库 它可以用于绘制各种类型的图表 包括折线图 本文将介绍如何使用Matplotlib创建多种不同类型的折线图 并提供示例代码 创建模版 在绘图之前 我们可以先创建我们的
  • 软件测试|使用matplotlib绘制平行坐标系图

    简介 绘制平行坐标系图 Parallel Coordinates Plot 是一种用于可视化多维数据的强大方法 在这篇文章中 我们将介绍如何使用Matplotlib库创建平行坐标系图 以及如何解释和定制这种图表 我们将使用一个示例数据集来演
  • 软件测试|sqlalchemy relationship

    简介 SQLAlchemy是一个流行的Python ORM 对象关系映射 库 它允许我们以面向对象的方式管理数据库 在SQLAlchemy中 relationship 是一个重要的功能 用于建立表之间的关系 在本文中 我们将详细探讨 rel
  • 软件测试|web自动化测试神器playwright教程(三十八)

    简介 在我们使用selenium时 我们可以获取元素的属性 元素的文本值 以及输入框的内容等 作为比selenium更为强大的web自动化测试神器 playwright也可以实现对元素属性 文本值和输入框内容的抓取 并且实现比seleniu
  • 软件测试|Pydantic处理时间类型数据

    简介 我们之前介绍过使用 pydantic 验证数据 比如校验数据的格式等 但是在我们的日常工作中 还有一种数据是需要我们验证的 比如时间数据 时间数据不同于字符串 列表等数据 与他们的验证不一样 本文就来为大家介绍一下 pydantic
  • 软件测试|使用matplotlib绘制多种柱状图

    简介 在数据可视化领域 Matplotlib是一款强大的Python库 它可以用于创建多种类型的图表 包括柱状图 本文将介绍如何使用Matplotlib创建多种不同类型的柱状图 并提供示例代码 创建基本柱状图 首先 让我们创建一个基本的柱状
  • Kubernetes (十二) 存储——Volumes配置管理

    一 卷的概念 官方地址 卷 Kubernetes https v1 24 docs kubernetes io zh cn docs concepts storage volumes 二 卷的类型及使用 emptyDir卷 1 创建编辑文件
  • GitLab CI 实现项目A更新代码自动触发项目B更新错误码文档

    一 CI CD简介 CI CD 是持续集成 Continuous Integration 和持续交付 持续部署 Continuous Delivery Continuous Deployment 的缩写 是一种软件开发和交付的最佳实践 这两
  • 内网安全:隧道技术详解

    目录 隧道技术 反向连接技术 反向连接实验所用网络拓扑图及说明 网络说明 防火墙限制说明 实验前提说明 实战一 CS反向连接上线 拿下Win2008 一 使用转发代理上线创建监听器 二 上传后门执行上线 隧道技术 SMB协议 SMB协议介绍
  • Airtest自动化测试工具

    一开始知道Airtest大概是在年初的时候 当时 看了一下官方的文档 大概是类似Sikuli的一个工具 主要用来做游戏自动化的 通过截图的方式用来解决游戏自动化测试的难题 最近 移动端测试的同事尝试用它的poco库来做自动化 看样子还不错
  • 高防服务器什么意思

    高防服务器什么意思 为什么要用高防服务器 小编为您整理发布高防服务器什么意思的解读 高防服务器是指具备较高防御能力的服务器 能够抵御DDoS CC等网络攻击 高防服务器通常用于保护游戏 APP 金融 电商等业务 这些领域因为其业务特性 容易
  • 光波导结构

    摘要 增强现实和混合现实 AR MR 领域的新应用引起了人们对带有光栅区域的光波导系统的越来越多的关注 这些光波导系统用于输入和输出耦合以及扩瞳目的 VirtualLab Fusion为这类系统的仿真和设计提供了几个强大的工具 其中一个是具
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告

随机推荐

  • 2016的诗和远方

    当生活被眼前的苟且蒙住了双眼 其实你所希冀的远方 就在那噼啪敲击的键盘里 渗入脑海实现想法的一行行代码中 眼看一年就要结束了 坐在公司的办公区里 窗外霓虹灯五光十色 办公楼鳞次栉比 恍惚想起了这一年充满波折又熠熠生辉的日子 却又是欲买桂花同
  • 新建文件夹命令 linux,linux创建文件夹命令是什么

    linux创建文件夹命令是mkdir 语法为 mkdir 选项 参数 其中Z为设置安全上下文 当使用SELinux时有效 version显示版本信息 本文操作环境 linux2 6 32系统 DELL G3电脑 Linux中 mkdir 创
  • CEVA RivieraWaves™ Wi-Fi IP

    https www ceva dsp com product rivierawaves wi fi platforms OVERVIEW The RivieraWaves Wi Fi IP family is a comprehensive
  • 提交本地项目到GitHub

    文章目录 1 下载git 1 1 通过homebrew安装Git 1 2 通过Xcode安装 2 创建ssh key 配置git 3 提交本地项目到GitHub 说明 该博文参考这篇文章和这段视频 1 下载git 1 1 通过homebre
  • 全面了解Maven依赖范围

    Maven依赖范围 翻译原文详见 Maven Dependency Scopes 1 总览 Maven 是 Java 生态系统中最流行的构建工具之一 其核心特性之一是依赖管理 Maven is one of the most popular
  • vue应用的简单例子、$.get()方法及页面获取url里面的参数

    vue应用的简单例子 get 方法及页面获取url里面的参数 页面 要先引入vue的js div 123 hospital name div
  • C++学习笔记:函数绑定器(bind用法)

    绑定器bind总览 bind用于绑定可调用 Callable 对象 函数对象 指向函数指针 到函数引用 指向成员函数指针或指向数据成员指针 和其参数 返回值为绑定成功后的函数对象 在正式开始绑定器前 先进行一下知识补充 补充1 函数对象 函
  • android4.0 ActionBar API

    ActonBar介绍 ActionBar取代了传统的标题栏 title 其在activity位置就是title原有的位置 在activity的顶部 ActionBar上默认情况下包括了应用 app 的logo logo的位置在ActionB
  • 漏洞修复中常用命令

    1 rpm Uvh rpm rpm qa grep 文件名查看版本 2 yum update 更新所有可以更新版本的软件包 rpm qa XXX 查看XXX版本信息 3 yum update y yum install y yum loca
  • python,使用字典(哈希表)记录数组中每个数字以及对应出现的次数

    list1 1 2 2 3 2 4 3 5 5 6 dic1 for i v in enumerate list1 if v not in dic1 如果数字不在哈希表中 字典的key 则次数为1 dic1 v 1 else 把之前的次数
  • linux欧拉强制修改root密码,openEuler 20.03 LTS安装图文教程

    本文以图文的方式介绍安装openEuler 20 03 LTS的方法 以光盘安装为例 其他安装方式除在启动安装时的引导方式不同外 待启动安装后则安装流程相同 在安装开始前 需要保证服务器启动选项为光驱优先 openEuler 20 03 L
  • mapbox的popup里使用vue组件

    问题 在mapbox官网中 他的popup实例是这样的 var popup new mapboxgl Popup offset popupOffsets className my class setLngLat e lngLat setHT
  • 第八章 ⾼并发下的微服务架构存在的问题和解决⽅案

    1 并发下的微服务存在的问题 并发下存在的问题 微服务拆分多个系统 服务之间互相依赖 可能会由于 系统负载过 突发流量或者 络等各种异常情况 导致 服务不可 核 思想 向失败编程 不要外界影响 不被请求拖垮 2 并发下的微服务容错 案 限流
  • 光猫怎么设置wifi 光猫怎么设置wifi密码

    怎么设置电信光纤猫的无线网络 电信光纤猫安装好后 请将网线口接入光纤猫的一个网口 如网口1 网线另一端接入电脑网口 查看网络链接状态 确保成功接入网络 使用默认地址进入光纤猫设置页面 一般默认地址为192 168 1 1 用户名以及密码可在
  • fastboot一键进入9008_【高通9008】究竟是怎么一回事?

    转自 河北阮咸科技有限公司 这里说的高通 是指采用高通品牌CPU的安卓手机 高通就是近两年和华为争5G标准的那个美国公司 国内众多的品牌 如 小米 oppo vivo 华为 对 华为也有一部分机器采用了高通的CPU 只要是高通的CPU就会有
  • jsp导入所需要的JavaBean方法

    在jsp中可以使用指令导入所需要的包 或者使用
  • OSTU算法

    OSTU算法目的就是计算出一连通区域的阈值 然后对该区域二值化 Ostu算法是一种用于二值化最佳阈值的选取方法 基本原理是根据阈值T将图像中的像素点分为C1和C2两类 不断的调整阈值T之后若此时两类之间存在最大的类间方差 那么此阈值即是最佳
  • Flutter开发报错uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library

    文章目录 问题描述 问题原因 解决方法 gradle文件介绍 项目级别的build gradle 模块级别的build gradle 问题描述 今天导入一个新项目时报错 报错内容如下 uses sdk minSdkVersion 16 ca
  • 吴恩达机器学习(六)线性回归的梯度下降

    线性回归的梯度下降 线性回归模型 线性假设函数 平方差代价函数 梯度下降算法可以优化J 0 1 最小平方差代价函数 实现好的梯度下降算法的关键 在于在导数项 线性回归的代价函数 形状总是凸函数 convex 只有一个全局最优解 在梯度下降的
  • 完整的性能测试流程

    前言 本篇文章带大家一起学习性能测试 1 使用jmeter工具进行接口的性能压测 2 熟练使用jmeter工具 3 针对项目接口进行压测 性能测试的流程和操作的过程介绍 4 分析调优 拓展部分 一 关于性能测试的理论介绍 为什么要进行性能测