压测工具Jmeter学习

news2024/11/16 19:39:49

压测工具Jmeter

Jmeter介绍

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等等。
除了Jmeter外,其它常用的压测工具还有:

  1. Apache的ab压力测试
  2. Nginter 韩国研发
  3. PAS 阿里测试工具
  4. MeterSphere :国内持续测试的开源平台

下载安装

去官网下载安装即可。首页左侧有相关下载的链接。
在这里插入图片描述

使用

一般情况下,Jmeter的使用流程如下:

  1. 创建测试计划
  2. 配置线程组、http请求、断言、结果监听器
  3. 执行测试
  4. 查看测试结果,分析测试结果

1、创建测试计划
在这里插入图片描述
2、配置线程组

  • 线程数:用来发送http请求的线程的数量
    • 线程组常用来模拟一组用户访问系统资源(API接口)
    • 假如客户机没有足够的能力来模拟较重的负载,可以使用JMeter的分布式测试功能,通过一
      个JMeter的Master来远程控制多个JMeter的Salve完成测试
  • 循环次数:循环执行多少次操作
    • 循环次数表示了循环执行多少次操作!循环次数直接决定整个测试单个线程的执行时间,和整体测试执行时间
    • 单线程执行时间 = 单请求平均响应时间 * 循环次数
    • 整个测试耗时 = 单线程执行时间 + (Ramp-Up - Ramp-Up / 线程数)
  • Ramp-Up:建立全部线程耗时
    • Ramp-Up Period (in-seconds) 代表隔多长时间执行,默认值是0,0代表同时并发。用于告知JMeter 要在多长时间内建立全部的线程
      在这里插入图片描述

线程属性说明:

  • 线程数:20, 线程数量,这里设置了20个线程
  • ramp-up:表示在指定时间之内把这些线程全部启动起来。 如果n=1,那就表示要在1s以内把50个线程全部启动起来
  • 循环次数:2000,表示把 20 thread 循环2000次,也就是说让每一个请求接口循环调用接口2000次

3、设置Http请求
在这里插入图片描述
设置请求协议、端口、路径等信息。
在这里插入图片描述

4、设置断言
JMeter断言常用有两种,一种是响应断言,一种是响应时间断言,如果响应内容不满足断言的配置,则认为这次的请求是失败的。

  • 响应断言:判断响应内容是否包含指定的字符信息,用于判断api接口返回内容是否正确
  • 响应时间断言:判断响应时间,是否超过预期的时间,用于判断api接口返回时间是否超过预期
    在这里插入图片描述
    接口返回包含"code":0则认为返回内容正确
    在这里插入图片描述

设置请求接口时间超过3毫秒,则认为请求失败
在这里插入图片描述

5、设置结果监听
在这里插入图片描述
配置监听器:监听压测结果,聚合报告和汇总结果很类似,看一个就行

  1. 聚合报告:查询结果信息聚合汇总,例如样本、平均值、通吐量、最大值、最小值…
  2. 察看结果树:记录每一次压测请求
  3. 图像结果:分析了所有请求的平均值、终止、偏离值和通吐量之间的关系。
  4. 汇总结果:汇总压测结果
  5. 汇总图:将压测结果以图像形式展示

聚合报告相关结果解释如下:

  • 样本(sample): 发送请求的总样本数量
  • 响应时间【单位ms】:
    • 平均值(average):平均的响应时间
    • 中位数(median): 中位数的响应时间,50%请求的响应时间
    • 90%百分位(90% Line): 90%的请求的响应时间,意思就是说90%的请求是<=1765ms返回,另外10%的请求是大于等于1765ms返回的。
    • 95%百分位(95% Line): 95%的请求的响应时间,95%的请求都落在1920ms之内返回的
    • 99%百分位(99% Line): 99%的请求的响应时间
    • 最小值(min):请求返回的最小时间,其中一个用时最少的请求
    • 最大值(max):请求返回的最大时间,其中一个用时最大的请求
    • 异常(error): 出现错误的百分比,错误率=错误的请求的数量/请求的总数
    • 吞吐量TPS(throughout): 吞吐能力,最重要的就是这个了
    • Received KB/sec----每秒从服务器端接收到的数据量
    • Sent KB/sec----每秒从客户端发送的请求的数量
      在这里插入图片描述

结果树
在这里插入图片描述

汇总报告相关结果解释如下,和聚合报告很类似。

  • 样本(sample): 发送请求的总样本数量
  • 响应时间【单位ms】:
    • 平均值(average):平均的响应时间
    • 最小值(min):请求返回的最小时间,其中一个用时最少的请求
    • 最大值(max):请求返回的最大时间,其中一个用时最大的请求
    • 标准偏差:度量响应时间分布的分散程度的标准,衡量响应时间值偏离平均响应时间的程度。
      标准偏差越小,偏离越少,反之亦然。
  • 异常(error): 出现错误的百分比,错误率=错误的请求的数量/请求的总数
  • 吞吐量TPS(throughout): 吞吐能力,这个才是我们需要的并发数
  • 每秒接收 KB/sec----每秒从服务器端接收到的数据量
  • 每秒发送KB/sec----每秒从客户端发送的请求的数量
  • 平均字节数
    在这里插入图片描述
    除了上面的这些步骤以外,由于某些情况下回涉及到登录以后对接口进行测试,所以需要添加HttpCookie管理器,这样才能正请求成功在这里插入图片描述在这里插入图片描述

最后Jmeter如何设置中文,找到对应内容加上第一句和最后一句。

goto remove_language_reset_bug_4.0
if not defined JMETER_LANGUAGE (
    rem Set language
    rem Default to en_EN
    set JMETER_LANGUAGE=-Duser.language="en" -Duser.region="EN"
)
:remove_language_reset_bug_4.0

参考

  1. Jmeter中文网
  2. Jmeter官网

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

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

相关文章

Django基础入门④:数据表显示和Django模板详讲

Django基础入门④&#xff1a;数据表显示和Django模板详讲 数据表显示字段显示表单显示分块内联显示列表显示搜索栏目创建筛选排序分页导入导出 Django模板什么是模板模板使用render方法详解 &#x1f3d8;️&#x1f3d8;️个人简介&#xff1a;以山河作礼。 &#x1f396;️&…

CVPR | 时尚领域视觉语言预训练模型Kaleido-BERT

来源&#xff1a;投稿 作者&#xff1a;小灰灰 编辑&#xff1a;学姐 这是一篇在时尚领域、往细粒度方向做视觉-语言预训练的工作。 论文标题&#xff1a;Kaleido-BERT: Vision-Language Pre-training on Fashion Domain 论文链接&#xff1a;https://arxiv.org/abs/2103.1611…

深度刨析指针Advanced 2

作者主页&#xff1a;paper jie的博客_CSDN博客-C语言,算法详解领域博主 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《系统解析C语言》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白…

使用omp并行技术加速最短路径算法-迪杰斯特拉(Dijkstra)算法(记录最短路径和距离)

原理&#xff1a; Dijkstra算法是解决**单源最短路径**问题的**贪心算法** 它先求出长度最短的一条路径&#xff0c;再参照该最短路径求出长度次短的一条路径 直到求出从源点到其他各个顶点的最短路径。 首先假定源点为u&#xff0c;顶点集合V被划分为两部分&#xff1a;集合…

stable-diffusion-webui的介绍与使用——Controlnet1.1

源码地址&#xff1a;https://github.com/lllyasviel/ControlNet | 最新版本 controlnet-v1.1 论文地址&#xff1a;2302.Adding Conditional Control to Text-to-Image Diffusion Models 扩展UI地址&#xff08;需先安装sd-webui&#xff09;&#xff1a;https://github.com/M…

基于对Element UI的表单验证

文章目录 &#x1f412;个人主页&#x1f3c5;JavaEE系列专栏&#x1f4d6;前言&#xff1a;&#x1fa80;从以下源码中介绍&#xff1a;&#x1f380;这里是官网源码 &#x1f412;个人主页 &#x1f3c5;JavaEE系列专栏 &#x1f4d6;前言&#xff1a; 本篇博客主要以介绍基…

杂记——FDA获批的AI超声产品

目前&#xff0c;人工智能算法在医学图像领域发展迅猛。相对于CT、MRI等&#xff0c;人工智能在超声图像处理领域仍处于起步阶段。近年来&#xff0c;多项研究利用深度学习、计算机视觉和图像处理等技术&#xff0c;对超声图像进行自动化分析、识别和量化&#xff0c;提供辅助医…

Golang的pprof性能分析

文章目录 一、pprof 概述二、服务开启pprof1、代码中引用pprof2、服务开启一个端口&#xff0c;用来监听pprof 三、使用pprof采集CPU耗时1、调用流程图2、查看火焰图 四、使用pprof分析内存泄漏问题查看当前程序的内存占用查看goroutine的运行时间 五、性能优化案例背景1、压测…

WIFI中的频段、信道、信道带宽

一、波长、波速与频率 波长波速/频率 “波速”由“介质”决定。 “频率”由“波源”决定。 “波长”由“介质”(波速V)、“波源”(频率f)共同决定。&#xff08;λV/f&#xff09; 波长&#xff08;wavelength&#xff09;&#xff1a; 指波在一个振动周期内传播的距离。也就…

【正点原子STM32连载】 第三十二章 光敏传感器实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第三十…

【网络面试必问】浏览器如何委托协议栈完成消息的收发

接上一篇&#xff1a;【面试中的网络知识】DNS原理-如何实现域名和IP地址的查询转换  在前面的博客中&#xff0c;提到过无数次&#xff0c;浏览器作为应用程序&#xff0c;本身是不具备向网络中发送网络请求的能力&#xff0c;要委托操作系统的内核协议栈来完成。协议栈再调用…

新手学习Vmp之控制流程图生成

新手学习Vmp之控制流程图生成 控制流程图的生成对于反混淆分析来说是非常重要的一步&#xff0c;这里记录一下我研究的过程&#xff0c;以Vmp2为例子。 这里我的环境准备如下: Visual Studio IDA SDK Capstone Unicorn Graphviz IDA SDK插件环境&#xff0c;主要是有一些AP…

1.2数据机构——算法和复杂度

一、算法 1、概念&#xff1a;算法是对特定问题求解的一种描述&#xff08;或步骤&#xff09;&#xff0c;是指令的特定序列 2、程序数据结构算法 3、算法的特性&#xff1a; 有穷性&#xff1a;算法是有穷的&#xff0c;程序是无穷的 确定性&#xff1a;每条指令有确定的…

一文搞懂什么是Raid

RAID 1. 基本概念2. RAID 03. RAID 14. RAID 015. RAID 56. RAID6 1. 基本概念 RAID&#xff08;Redundant Array of Independent Disks&#xff09;是一种磁盘阵列技术&#xff0c;通过将多个物理磁盘组合成一个大容量的逻辑磁盘&#xff0c;提高磁盘存储的性能和可靠性。 R…

TOGAF 标准对数字化企业支持

这篇来点高大尚的&#xff0c;对技术、产品管理者和架构师写方案应该有用&#xff0c;其它不多谢&#xff0c;直接转入正题。 一、概述 TOGAF标准是在需要购买服务器硬件和网络设备的时候开始发展的&#xff1b;需要规划数据中心空间、电源和冷却&#xff0c;并协商和购买产品…

微服务SpringCloudday1 认识微服务与服务注册(Eureka与nacos)

SpringCloud01 1.认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢&#xff1f; 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构&#xff…

arduino w801 流水灯

先复制个图过来 来源 https://www.cnblogs.com/milton/p/15621540.html 前两天老外跟联盛德网站回复我arduino库有完善的了 GitHub - board707/w80x_arduino: w806 for arduino ide package arduino 添加库地址 https://raw.githubusercontent.com/board707/w80x_arduino/ha…

【genius_platform软件平台开发】第九十八讲:嵌入式网络接口(MAC、PHY)

1. 嵌入式网络简介 1.1 嵌入式下的网络硬件接口 提起网络&#xff0c;我们一般想到的硬件就是“网卡”&#xff0c;现在网卡已经是通过一个芯片来完成了&#xff0c;嵌入式网络硬件分为两部分&#xff1a;MAC和PHY&#xff0c;大家都是通过看数据手册来判断一款SOC是否支持网络…

Linux tar.xz 格式的文件正确的解压命令

Linux tar.xz 最近下载 Linux kernel&#xff0c;好像最近流行 tar.xz 格式的后缀 对于 xz 后缀的压缩文件&#xff0c;我之前的解压方式是分为两步&#xff1a; xz -d xxx.tar.xz 解压成 xxx.tar 格式文件&#xff0c;然后再 tar xf xxx.tar 解压文件。 这样的操作不仅比较的…

【Java基础学习打卡11】Path环境变量的配置

目录 前言一、为什么配置环境变量二、如何配置环境变量三、JDK11的环境变量配置总结 前言 本文我们要知道为什么配置环境变量&#xff0c;自己思考不配置环境变量可以吗&#xff1f;JDK 11 如何配置环境变量。 一、为什么配置环境变量 原因很简单&#xff0c;就是方便命令的查…