【性能测试】使用JMeter性能工具做测试的基本过程及案例分析

news2024/11/28 18:48:38

前言

通过精心设计的性能测试,我们不仅能够了解服务端的综合效能与承载极限,更能前瞻性地评估现有业务架构在面对当前运营需求及未来业务扩张时的适应性与弹性,从而精准规划服务配置的优化路径。

使用jmeter一般用于以下两种类型的性能测试

  • 压力测试

就像在健身房里逐渐增加哑铃的重量,观察你能承受多少。在软件测试中,我们逐渐增加系统的用户量或工作负载,直到它开始表现出性能下降的迹象。这样做是为了确保系统在正常甚至高峰时期仍然能够稳定运行,不会出现延迟增加、响应变慢或是崩溃的情况。通过负载测试,我们可以找到系统的最佳工作范围,同时也能发现并修复可能的设计缺陷,比如内存泄漏、死锁或是效率低下的算法。

  • 负载测试

就像是想知道你能举多重的极限,不断加重直到你再也举不动。在软件测试领域,这意味着持续加大负载,直到系统无法再处理更多的请求为止。压力测试的目的在于找出系统的绝对上限,也就是系统崩溃或性能急剧下降的临界点。通过这种方式,我们可以确保系统在极端情况下不会彻底瘫痪,同时也为未来的系统规划和扩容提供依据。

基本过程

下面我们看下使用jmeter做性能测试的基本过程:

简单说说上图的意思吧:

  1. 加线程组
    就是建个小组,定多少“假用户”一起测试,还有怎么开始测试

  2. 添JMeter组件
    加入各种预设和测试用的玩意儿,主要是输入要测的静态和动态东西的请求详情

  3. 加监听器
    放些小工具收集测试时和结束后的数据,好分析系统表现

  4. 跑测试看结果
    开始测试,仔细瞧瞧数据,找找哪慢了,评评分系统扛不扛用

案例分析

1. 压测目标
  • 确定接口在高并发下的响应时间和吞吐量
  • 发现可能的性能瓶颈,如数据库连接、缓存效率或服务器资源
  • 评估接口在预期最大流量下的承载能力(需结合实际业务分析)
    案列使用到的接口由 https://httpbin.org/网站提供,感谢网站支持。
    接口信息如下:

使用 JMeter 对指定的 REST API 接口 https://httpbin.org/get 进行性能测试

2. 新增jmeter元祖
1. 启动 JMeter:

打开 JMeter 并准备好创建一个新的测试计划。

2. 切换窗口显示语言

3. 启动 JMeter:

打开 JMeter 并准备好创建一个新的测试计划。

4. 添加 Thread Group:

在 “Test Plan” 下右击,选择 “Add > Threads (Users) > Thread Group”。这将创建一个线程组,用于模拟并发用户。

5. 配置 Thread Group:

在弹出的 Thread Group 配置窗口中,设定线程数量(即并发用户数)、循环次数(测试执行次数)等参数。例如,你可以设置线程数为 50,循环次数为 10。

6. 添加 HTTP Request Sampler:

在刚才创建的 Thread Group 下,右击并选择 “Add > Samplers > HTTP Request”。

7. 配置 HTTP Request Sampler:

在 HTTP Request Sampler 的配置界面中,填写以下信息:

  • Server Name or IP: 输入 httpbin.org
  • Port Number: 保持默认(空),因为 HTTPS 默认使用 443 端口。
  • Protocol: 选择 https
  • Path: 输入 get
  • Method: 选择 GET
  • Content Encoding: 选择 UTF-8
8. 添加断言:

为了验证请求的正确性,可以添加 Response Assertion。右击 HTTP Request Sampler,选择 “Add > Assertions > Json Assertion”。在这里,你可以添加预期的响应代码(例如 200)和/或预期的响应文本。

9. 添加监听器:

为了查看测试结果,需要添加监听器。在 Thread Group 下,右击并选择 “Add > Listeners”,然后选择你希望使用的监听器类型,如 “View Results Tree” 或 “Summary Report”。

10. 配置监听器:

根据所选的监听器类型,进行适当的配置。例如,“View Results Tree” 可以显示详细的响应信息,而 “Summary Report” 则提供总体的测试结果概览。

11. 保存测试计划:

在 “File” 菜单中选择 “Save Test Plan As…”,保存你的测试计划。

12. 运行测试:

在 “Run” 菜单中选择 “Start”,开始执行测试计划。

13. 分析结果:

一旦测试完成,使用之前添加的监听器来分析测试结果。查看响应时间、吞吐量、错误率等关键性能指标,以确定接口的性能状况。

文章原创首发于微信公众号 软件测试微课堂,更多内容欢迎关注微信公众号查看

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

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

相关文章

Dart基础入门

Dart 是一种由 Google 开发的开源编程语言,它可以用来构建服务器、Web 应用和移动应用。Dart 语言设计得既现代化又易于学习,它支持面向对象编程(OOP)、函数式编程风格,并且具有类似于 Java 或 C# 的语法。Dart 语言和…

性能测试学习2:常见的性能测试策略(基准测试/负载测试/稳定性测试/压力测试/并发测试)

一.基准测试 1)概念 狭义上讲:就是单用户测试。测试环境确定后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。 广义上:是一种测量和评估软件性能指标的活动。可以在某个时刻通过基准测试建立…

[MASM] masm32的下载及详细安装使用过程(附有下载文件)

目录 下载 配置环境 编译 链接 masm的安装和环境配置 下载链接在文末 下载 下载安装包后复制到虚拟机win7系统的桌面 win7安装到虚拟机的步骤: [win7] win7系统的下载及在虚拟机中详细安装过程(附有下载文件)-CSDN博客 双击压缩包&…

微信消息转发(微信消息转发方案的取舍)

机构可能会有很多的粉丝群,老师有很多家长群,比如发送通知 如果一个个的群发送那么就很繁琐。所以就有一键群发的需求。只需要在一个群发送内容主动同步到其他群。 微信消息转发方案取舍 方案1. 因为微信有本地数据库SQLite, 消息会保存到本…

Redis安装RedisBloom插件

Redis安装RedisBloom插件 1. 下载RedisBloom2. 安装RedisBloom3. Redis 安装RedisBloom4. 验证是否安装成功5. 其他安装方法5.1 使用 Docker 安装 RedisBloom5.2 通过 RedisStack 安装 RedisBloom 是一个 Redis 模块,它提供了一种高效的方式来存储和检索大数据集中的…

频繁full gc问题排查及解决

为什么我们要对频繁full gc的情况进行处理---》频繁full gc会导致stw,影响用户体验。 (1)先进行问题的排查 如果频繁full gc 会报警,公司有自己的监控平台,可以查看full gc的情况 如果公司没有自己的监控平台&#…

爬虫案例——爬取情话网数据

需求: 1.爬取情话网站中表白里面的所有句子(表白词_表白的话_表白句子情话大全_情话网) 2.利用XPath来进行解析 3.使用面向对象形发请求——创建一个类 4.将爬取下来的数据保存在数据库中 写出对应解析语法 //div[class"box labelbo…

【实战篇】自增主键为什么不是连续的?

背景 由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧凑。 之前我见过有的业务设计依赖于自增主键的连续性,也就是说,这个设计假设自增主键是连续的。但实际上,这样的假设是错的&#…

Linux高阶——Github本地仓库与云端仓库关联

1、安装代理软件 steam 选择Github和系统代理模式,一键加速即可 2、 安装Git 3、访问Github网站,创建新用户 4、Github探索 (1)Explore探索标签 (2)工程结构 用户名/仓库名 自述文件,用markdo…

C语言复习概要(三)

本文 使用Visual Studio进行调试的技巧与函数递归详解1. 引言2. Visual Studio 调试技巧2.1. 断点的使用2.1.1. 基本断点示例:设置基本断点 2.1.2. 条件断点示例:条件断点 2.2. 逐步执行代码示例:逐步执行代码 2.3. 监视变量使用监视窗口 2.4…

希捷8T硬盘exfat变0字节的恢复方法

最近流行的3.5寸大容量台式硬盘移动盒子是一种性价比较高的组合,为了方便如涉及到跨平台(win和mac),大多数此类组合选择了exfat文件系统。下边这个案例就是我们经常遇到的exfat变0字节。 故障存储: ST8000HKVS002 8T/exfat 文件…

STM32F407 HAL库单通道ADC采集并串口打印电压值

本文将介绍如何使用STM32F407的HAL库实现单通道ADC采集,并通过串口将采集到的电压值打印出来。具体地,我们将使用ADC1读取通道5(对应引脚PA5),并将转换后的电压值用串口1发送到串口助手上进行显示。 一、开发环境 硬件…

类和对象的学习1

类和对象的学习1 [TOC](类和对象的学习1一、类的定义1.类定义格式2.访问限定符 二、实例对象1.实例3.对象大小4. this指针5.⾯向对象三⼤特性“封装、继承、多态”中的封装) 一、类的定义 1.类定义格式 1.1 class为定义类的关键字,Stack为类的名字,{}中…

第十五周周报

目录 摘要Abstract1 LSTM模型实战1.1 数据处理1.2 LSTM模型的搭建1.3 数据的预测和可视化 2 transformer(上)2.1 Transformer 结构2.2 Transformer 编码器 总结 摘要 本周的工作内容主要分为两个部分,第一部分是使用LSTM模型预测股票市场数据…

Python(八)-异常

目录 什么是异常 快速入门异常 常见的异常类型 常见处理方式 捕获一个指定异常 捕获多个异常 捕获所有的异常 异常的其他关键字 异常具有传递性 什么是异常 异常指的是Python程序发生的不正常事件。 有时候,异常可称为错误。 当检测到一个错误时&#x…

CPU飙高如何处理?

测试人员在压测的时候,会对应用进行测试,这个时候会查看cpu、内存、load、rt、qps等指标 CPU利用率是来描述CPU的使用情况的,表明了一段时间内CPU被占用的情况。使用率越高,说明机器在这个时间上运行了很多程序。 如何进行问题定…

codetop标签树刷题(四)!!暴打面试官!!!!

用于个人复习 1.二叉树的右视图2.二叉树最大宽度3.二叉树的最大深度4.N叉树的最大深度5.二叉树的最小深度6.子树的最大平均值7.求根节点到叶节点的数字之和8.另一棵树的子树9.对称二叉树 1.二叉树的右视图 给定一个二叉树的根节点root,想象自己站在它的右侧&#x…

麒麟操作系统如何识别提取图片中的文字

在工作、学习中,我们经常会需要从图片中提取文字,在手机上或其它操作系统上,有各种方法。本书中,我们介绍麒麟操作系统提取图片中文字的方法。 首先准备好自己需要的文档截图,把不需要的部分裁掉,以免影响…

电容笔值得买吗?2024精选盘点推荐五大惊艳平替电容笔!

电容笔还是很值得买的,不管是对于日常书写,简单笔记,还是绘画等场景而言,选择一款性价比高的平替电容笔都能提升生产力。可是现在市面上的品牌很多,该如何挑选最适合自己的电容笔呢?不用着急,我…

【AIGC半月报】AIGC大模型启元:2024.10(上)

【AIGC半月报】AIGC大模型启元:2024.10(上) (1) YOLO11(Ultralytics新作) (1) YOLO11(Ultralytics新作) 2024.10.01 Ultralytics在 YOLO Vision 2024 活动上宣布发布其新的计算机视觉模型 YOLO…