二、Jmeter Web压测

news2024/12/20 6:02:08
Jmeter Web压测
    • 一、JMeter简介
    • 二、安装JMeter
    • 三、使用JMeter进行Web压测的基本步骤
      • (一)创建测试计划
      • (二)添加HTTP请求
      • (三)添加监听器
      • (四)运行测试
    • 四、高级应用
      • (一)添加断言
      • (二)参数化
      • (三)分布式测试
    • 四、附图

一、JMeter简介

Apache JMeter是一款开源的性能测试工具,主要用于对软件系统进行负载测试、压力测试和性能测试,它可以模拟大量用户并发访问Web应用程序等各种系统,以评估系统的性能、稳定性和资源利用情况。

二、安装JMeter

  1. 下载JMeter
    • 可以从Apache JMeter官方网站(https://jmeter.apache.org/)下载最新版本的JMeter。根据操作系统选择合适的安装包,如Windows可以下载zip格式的压缩包,解压后即可使用;Linux可以下载tgz格式的压缩包,解压后配置环境变量来使用。
  2. 配置环境(可选)
    • 对于Windows系统,解压后可以将JMeter的bin目录添加到系统环境变量的Path中,方便在命令行中直接启动JMeter。
    • 对于Linux系统,需要在解压后的目录下,编辑.bashrc或者.bash_profile文件,添加类似export PATH=$PATH:/path/to/jmeter/bin(其中/path/to/jmeter是JMeter的实际解压路径),然后执行source.bashrcsource.bash_profile使配置生效。
  3. 具体安装方法请看主页

三、使用JMeter进行Web压测的基本步骤

(一)创建测试计划
  1. 打开JMeter

    • 启动JMeter后,会看到一个空白的测试计划界面。测试计划是JMeter测试的最高级别元素,它包含了所有的测试配置和测试元素。
      在这里插入图片描述
  2. 添加线程组

    • 右键点击测试计划,选择“添加”->“线程(用户)”->“线程组”。线程组用于定义模拟的用户数量、用户请求的频率等参数。
      在这里插入图片描述

    • 在“线程组”配置界面中:

      • 线程数(用户数):例如设置为100,表示将模拟100个用户同时访问。
      • Ramp - Up时间(秒):用于设置所有线程启动的时间间隔。如果设置为10秒,那么100个线程会在10秒内逐步启动,平均每秒启动10个线程。这样可以模拟更真实的用户访问场景,避免所有用户同时请求对服务器造成过大冲击。
      • 循环次数:可以设置每个线程发送请求的次数。如果设置为“永远”,则线程会一直循环发送请求,直到手动停止测试。
        在这里插入图片描述
(二)添加HTTP请求
  1. 添加HTTP请求默认值(可选)

    • 右键点击线程组,选择“添加”->“配置元件”->“HTTP请求默认值”。在这里可以设置服务器的IP地址或域名、端口号(默认HTTP为80,HTTPS为443)等公共信息。这样在后续添加具体的HTTP请求时,就不需要重复设置这些基本信息。
      在这里插入图片描述
  2. 添加HTTP请求

    • 右键点击线程组,选择“添加”->“取样器”->“HTTP请求”。
    • 在“HTTP请求”配置界面中:
      • 协议:可以选择HTTP或者HTTPS。
      • 服务器名称或IP:填写要测试的Web服务器的域名或IP地址。
      • 端口号:根据实际情况填写,如果是HTTP默认是80,HTTPS默认是443。
      • 路径:填写Web应用程序中的具体资源路径,如/index.html或者/api/user等。
        在这里插入图片描述
(三)添加监听器
  1. 查看结果树

    • 右键点击线程组,选择“添加”->“监听器”->“查看结果树”。这个监听器可以让我们查看每个请求的详细信息,包括请求头、请求体、响应头、响应体等内容。在测试过程中,可以通过它来检查请求是否正确发送,以及服务器返回的响应是否符合预期。
      在这里插入图片描述
  2. 汇总报告

    • 右键点击线程组,选择“添加”->“监听器”->“汇总报告”。汇总报告提供了测试的总体统计信息,如平均响应时间、最小响应时间、最大响应时间、吞吐量(每秒处理的请求数)等。这些统计信息可以帮助我们评估系统的性能。
      在这里插入图片描述
(四)运行测试
  1. 保存测试计划
    • 在运行测试之前,最好先保存测试计划,方便以后再次使用和修改。选择“文件”->“保存”,并选择一个合适的保存位置和文件名。
  2. 启动测试
    • 点击工具栏上的“启动”按钮或者选择“运行”->“启动”来开始测试。在测试过程中,可以通过监听器查看测试结果。
  3. 分析测试结果
    • 根据汇总报告中的数据,如响应时间过长或者吞吐量过低,可能表示系统存在性能瓶颈。可以进一步分析查看结果树中的请求和响应,查找可能的原因,如网络问题、服务器配置不足、代码逻辑复杂等。
      在这里插入图片描述

四、高级应用

(一)添加断言
  1. 响应断言

    • 右键点击HTTP请求,选择“添加”->“断言”->“响应断言”。在响应断言中,可以设置预期的响应内容,如包含特定的文本、匹配某个正则表达式等。例如,可以断言响应中包含“success”字样,来验证请求是否成功处理。
      在这里插入图片描述
  2. 断言结果

    • 为了查看断言的结果,需要添加“断言结果”监听器。右键点击线程组,选择“添加”->“监听器”->“断言结果”。在测试过程中,如果断言失败,会在断言结果监听器中显示相应的错误信息。
      在这里插入图片描述
(二)参数化
  1. CSV数据文件设置

    • 右键点击线程组,选择“添加”->“配置元件”->“CSV数据文件设置”。通过配置CSV文件,可以将测试数据从文件中读取并用于请求参数。例如,在测试用户登录功能时,可以将用户名username和密码password存储在CSV文件中,每行代表一组用户名和密码,然后在变量名称中补充需要使用的变量名称,多个变量名用英文逗号隔开,HTTP请求中将参数设置为从CSV文件中读取的值,使用${变量名},例如${username}
      在这里插入图片描述
  2. 用户自定义变量

    • 右键点击测试计划,选择“添加”->“配置元件”->“用户自定义变量”。在这里可以定义一些变量,如服务器的URL等,然后在HTTP请求等元素中引用这些变量。这样可以方便地修改测试配置,而不需要在多个地方进行修改。
      在这里插入图片描述
(三)分布式测试
  1. 设置主从服务器
    • JMeter支持分布式测试,可以将测试负载分布到多个从服务器上执行。首先,在主服务器的JMeter安装目录下,编辑jmeter.properties文件,设置remote_hosts属性,指定从服务器的IP地址,多个IP地址之间用逗号分隔。
  2. 启动从服务器
    • 在从服务器上,进入JMeter的bin目录,执行jmeter -s -Jserver.rmi.ssl.disable=true(如果没有启用SSL)来启动从服务器。
  3. 在主服务器上运行分布式测试
    • 在主服务器的测试计划中,右键点击线程组,选择“远程启动”来启动分布式测试,测试请求会被分配到各个从服务器上执行,从而提高测试的负载能力。
  4. 详细分布式测试见主页

四、附图

在这里插入图片描述

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

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

相关文章

【Python爬虫系列】_032.Scrapy_全站爬取

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)教程合集 👈👈

[LeetCode-Python版] 定长滑动窗口——灵神思路(1)

思路 把问题拆解成三步&#xff1a;入-更新-出。 入&#xff1a;下标为 i 的元素进入窗口&#xff0c;更新相关统计量。如果 i<k−1 则重复第一步。更新&#xff1a;更新答案。一般是更新最大值/最小值。出&#xff1a;下标为 i−(k-1) 的元素离开窗口&#xff0c;更新相关…

紧固件设计之——开槽长圆柱端紧定螺钉结构仿真APP

按照产品形态分类&#xff0c;紧固件通常包括以下12类&#xff1a;螺栓、螺柱、螺钉、螺母、自攻螺钉、木螺钉、垫圈、挡圈、销、铆钉、焊钉、组合件与连接副&#xff0c;是一类用于连接和固定各种构件和零部件的重要机械零件&#xff0c;可确保机械装置或设备结构的牢固和稳定…

el-tabs标签过多

tab-position&#xff1a;top情况 .el-tabs__nav-wrap{overflow-x: auto ;width: 86% ;margin-left: 10px ; } 效果&#xff1a; tab-position&#xff1a;left情况 .el-tabs__nav-wrap{overflow-x: auto ;height: 高度 ;margin-top: 10px ; } 效果&#xff1a; 注意&…

Docker日志与监控

一、引言 随着容器技术在生产环境中被广泛应用&#xff0c;Docker容器的日志管理与监控变得尤为重要。在现代应用程序中&#xff0c;容器化的应用通常是由多个容器组成的服务&#xff0c;而容器中的日志与监控则是确保服务健康运行、诊断问题和优化性能的关键。通过日志和监控…

期权VIX指数构建与择时应用

芝加哥期权交易 所CBOE的波动率指数VIX 是反映 S&P 500 指数未来 30 天预测期波动率的指标&#xff0c;由于预期波动率多用于表征市场情绪&#xff0c;因此 VIX 也被称为“ 恐慌指数”。 VIX指数计算 VIX 反映了市场情绪和投资者的风险偏好&#xff0c; 对于欧美市场而言…

Centos创建共享文件夹拉取文件

1.打开VMware程序&#xff0c;鼠标右检你的虚拟机&#xff0c;打开设置 2.点击选项——共享文件夹——总是启用 点击添加&#xff0c;设置你想要共享的文件夹在pc上的路径&#xff08;我这里已经添加过了就不加了&#xff09; 注意不要中文&#xff0c;建议用share&#xff0c…

CSS|12 display属性

display display显示的意思&#xff0c;用来进行 行内元素与块级元素之间的相互转换&#xff01;将隐藏的元素显示或者是将显示的元素进行隐藏。 display这个属性的取值&#xff1a; inline 行内 当我们将一个行内元素的display属性的值设置为inline以后&#xff0c;那么这个…

启动打印服务提示:Http端口已被使用,请修改

分销AV 10.0.0及其以上版本启动打印服务提示&#xff1a;Http端口已被使用&#xff0c;请修改。该如何处理&#xff1f; 一、先将打印服务退出,电脑桌面右下角任我打印服务操作退出。 二、到打印管理器安装目录\print下找到CONFIG文件&#xff0c;用记事本打开后&#xff0c;将…

workman服务端开发模式-应用开发-gateway长链接端工作原理

一、长链接的工作原理 Register类其实也是基于基础的Worker开发的。Gateway进程和BusinessWorker进程启动后分别向Register进程注册自己的通讯地址&#xff0c;Gateway进程和BusinessWorker通过Register进程得到通讯地址后&#xff0c;就可以建立起连接并通讯了。而Register进程…

Docker挂载

目录 数据卷挂载 本地目录挂载 数据卷挂载 宿主机默认的存放所有容器数据卷的目录&#xff1a;/var/lib/docker/volumes nginx容器静态资源的目录&#xff1a;/usr/share/nginx/html 修改宿主机的内容&#xff0c;进入到容器查看信息&#xff0c;也同步修改 容器与数据卷的挂…

【计算机毕设】基于Python预制菜可视化数据分析预测推荐系统(完整系统源码+数据库+详细部署教程)✅

目录 【计算机毕设】基于Python预制菜可视化数据分析预测推荐系统&#xff08;完整系统源码数据库详细部署教程&#xff09;✅源码获取方式在文章末尾 一、项目背景 二、研究目的 三、项目意义 四、项目功能 五、项目创新点 六、开发技术介绍 七、数据库设计 八、项目…

Windows系统如何配置远程音频

场景 RemoteFx 是 Windows RDP 桌面协议升级版&#xff0c;RDP 8.0起可以使用 RemoteFx 来使用 USB 重定向&#xff0c;将本地 USB 设备通过 RDP 的数据通道重定向到远程桌面&#xff0c;解决云端机器无法使用 USB 设备的问题。 客户端&#xff1a;Windows 10 操作系统 服务…

【HAL库】STM32CubeMX开发----STM32F407----Time定时器中断实验

STM32CubeMX 下载和安装 详细教程 【HAL库】STM32CubeMX开发----STM32F407----目录 前言 本次实验以 STM32F407VET6 芯片为MCU&#xff0c;使用 25MHz 外部时钟源。 实现定时器TIM3中断&#xff0c;每1s进一次中断。 定时器计算公式如下&#xff1a; arr 是自动装载值&#x…

rabbitMq举例

新来个技术总监&#xff0c;把 RabbitMQ 讲的那叫一个透彻&#xff0c;佩服&#xff01; 生产者 代码举例 public String sendMsg(final String exchangeName,final String routingKey,final String msg) {} /*** 发送消息* param exchangeName exchangeName* param routin…

基于 uniapp 开发 android 播放 webrtc 流

一、播放rtsp协议流 如果 webrtc 流以 rtsp 协议返回&#xff0c;流地址如&#xff1a;rtsp://127.0.0.1:5115/session.mpg&#xff0c;uniapp的 <video> 编译到android上直接就能播放&#xff0c;但通常会有2-3秒的延迟。 二、播放webrtc协议流 如果 webrtc 流以 webrt…

Meta重磅发布Llama 3.3 70B:开源AI模型的新里程碑

在人工智能领域&#xff0c;Meta的最新动作再次引起了全球的关注。今天&#xff0c;我们见证了Meta发布的Llama 3.3 70B模型&#xff0c;这是一个开源的人工智能模型&#xff0c;它不仅令人印象深刻&#xff0c;而且在性能上达到了一个新的高度。 一&#xff0c;技术突破&#…

游戏AI实现-寻路算法(DFS)

​深度优先搜索算法&#xff08;英语&#xff1a;Depth-First-Search&#xff0c;缩写为DFS&#xff09;是一种用于遍历或搜索树或图的算法。 寻路地图搭建&#xff1a; 游戏AI实现-寻路地图搭建-CSDN博客 算法过程&#xff1a;遍历方向为从竖直向上沿顺时针方向 1.首先将开…

概率论得学习和整理30: 用EXCEL 描述泊松分布 poisson distribution

目录 1 泊松分布的基本内容 1.1 泊松分布的关键点 1.1.1 属于离散分布 1.1.2 泊松分布的特点&#xff1a;每个子区间内概率相等 &#xff0c; λ就是平均概率 1.2 核心参数 1.3 pmf公式 1.4 期望和方差 2 例1&#xff1a;用EXCEL计算泊松分布的概率 3 比较λ不同值时…

八、测试-性能测试

文章目录 前言一、性能测试介绍1. 简介2. 流程3. 指标4. 测试方案5. 性能评估6. 常见性能问题及解决对策 二、测试工具1. Jmeter简介2. Jmeter常见测试框架 三、Jmeter录制脚本1. 基本2. 增强3. 脚本参数化4. 断言5. 关联6. JDBC请求 四、分布式测试五、性能测试报告 前言 性能…