完整的性能测试流程

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(使用前将#替换为@)

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

  • jenkins+selenium+python实现web自动化测试

    jenkins selenium可以做到对web自动化的持续集成 Jenkins的基本操作 一 新建视图及job 新建视图 新建job 可以选择构建一个自由风格的软件项目或者复制已有的item 二 准备工作 安装Jenkins插件 SSH
  • CMAKE_MAKE_PROGRAM is not set 解读

    目录 CMAKE MAKE PROGRAM 未设置 错误原因 解决方案 示例1 GNU Make 示例2 Ninja CMakeLists txt 的结构 示例 CMakeLists txt 文件 总结 CMAKE MAKE PROGRAM
  • Linux 软件安装以及管理

    本篇主要记录常用的软件安装和管理方式 主要是 yum rpm dnf apt pip 大致都是一样的 主要是部分软件提供了解决依赖的功能 内容不包括源码安装 源码安装情况相对比较复杂 后续有时间再补充 约定 案例所用模板软件均为 pytho
  • 软件测试|好用的pycharm插件推荐(五)——Translation

    前言 在我们的日常工作中 经常会遇到需要查看各个第三方库源码的问题 在很多情况下 我们的英语能力不能够满足我们完全读懂源码 所以我们就需要借助翻译工具来帮助我们理解第三方库的源码 如果我们将源码复制再使用其他工具翻译 会显得比较繁琐 如果有
  • 使用Hypothesis生成测试数据

    Hypothesis是Python的一个高级测试库 它允许编写 测试用例 时参数化 然后生成使测试失败的简单易懂的测试数据 可以用更少的工作在代码中发现更多的bug 安装 pip install hypothesis 如何设计 测试数据 通
  • 软件测试|Python openpyxl库使用指南

    简介 我们之前介绍过 python在自动化办公方面可以大放异彩 因为Python有许多的第三方库 其中有很多库就支持我们对office软件进行操作 熟练的使用Python对office进行操作 可以实现自动化办公 极大提升我们的工作效率 本
  • 2种方法,教你使用Python实现接口自动化中的参数关联

    通常在接口自动化中 经常会参数关联的问题 那么什么是参数关联 参数关联就是上一个接口的返回值会被下一个接口当做参数运用 其中Python中可以实现参数关联的方法有很多种 今天小编给大家介绍下 如何通过Python来实现接口自动化中的参数关联
  • Jmeter 性能-并发量计算

    并发概念 指网站在同一时间访问的人数 人数越大瞬间带宽要求更高 服务器并发量分为 业务并发用户数 最大并发访问数 系统用户数 同时在线用户数 估算业务并发量的公式 C nL T C C 3 C的平方根 说明 C是平均的业务并发用户数 n是l
  • 步骤详图 教你在linux搭建容器环境

    警告 切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker 1 准备工作 系统要求 要安装Docker CE 社区版 操作系统的最低要求是CentOS7 7以下版本都不被支持 卸载旧版本 Docker改版
  • 软件测试|SQLAlchemy环境安装与基础使用

    简介 SQLAlchemy 是一个强大的 Python 库 用于与关系型数据库进行交互 它提供了高度抽象的对象关系映射 ORM 工具 允许使用 Python 对象来操作数据库 而不必编写原生SQL查询 本文将介绍如何安装 SQLAlchem
  • 软件测试|Selenium StaleElementReferenceException 异常分析与解决

    简介 Selenium 是一个流行的自动化测试工具 用于模拟用户与网页交互 然而 当我们在使用 Selenium 时 可能会遇到一个常见的异常 即 StaleElementReferenceException 这个异常通常在我们尝试与网页上
  • 软件测试|使用matplotlib绘制平行坐标系图

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

    简介 SQLAlchemy是一个流行的Python ORM 对象关系映射 库 它允许我们以面向对象的方式管理数据库 在SQLAlchemy中 relationship 是一个重要的功能 用于建立表之间的关系 在本文中 我们将详细探讨 rel
  • 软件测试|pycharm关联GitHub的详细步骤

    简介 GitHub 是全球最大的开源代码托管平台之一 而 PyCharm 是一款强大的 Python 集成开发环境 将两者结合使用 可以提高团队协作和代码管理的效率 本文将详细介绍如何在 PyCharm 中管理 GitHub 账号 包括如何
  • 软件测试|Python数据可视化神器——pyecharts教程(九)

    使用pyecharts绘制K线图进阶版 简介 K线图 Kandlestick Chart 又称蜡烛图 是一种用于可视化金融市场价格走势和交易数据的图表类型 它是股票 外汇 期货等金融市场中最常用的技术分析工具之一 可以提供关于价格变动 趋势
  • 摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 短信系统搭建主要因素|网页短信平台开发源码

    短信系统搭建主要因素 网页短信平台开发源码 随着移动互联网的快速发展 短信系统已成为企业和个人进行信息传递的重要工具 建立一个高效可靠的短信系统对于企业来说非常重要 下面我们将介绍一些影响短信系统搭建的主要因素 1 平台选择 在搭建短信系统
  • ESP10B 锁定连接器

    ESP10B 锁定连接器 ESP10B 电机新增内容包括双极型号标准 NEMA 尺寸 17 23 和 34 的步进电机现在包括输出扭矩范围从 61 盎司英寸到 1291 盎司英寸的双极型号 该电机配有带锁定连接器的尾缆 可轻松连接 每转可步
  • 【安全】简单解析统一身份认证:介绍、原理和实现方法

    深入解析统一身份认证 介绍 原理和实现方法 导语 统一身份认证是什么 统一身份认证的原理 统一身份认证的实现 结语 导语 随着互联网的发展和各种在线服务的普及 用户在不同的应用和平台上需要进行多次身份验证 为了简化用户的登录和减少重复操作
  • 网工内推 | 上市公司同程、科达,五险一金,年终奖,最高12k*15薪

    01 同程旅行 招聘岗位 网络工程师 职责描述 1 负责职场 门店网络规划 建设 维护 2 负责网络安全及访问控制 上网行为管理和VPN设备的日常运维 3 负责内部相关网络自动化和系统化建设 4 优化与提升网络运行质量 制定应急预案 人员培

随机推荐

  • 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 分析调优 拓展部分 一 关于性能测试的理论介绍 为什么要进行性能测