浅识Jmeter与浅谈互联网公司高并发业务压测流程痛点

浅谈Jmeter

什么是Jmeter

JMeter 是 Apache 软件基金会开发的一个开源软件,用于负载测试和性能测试。它被设计用来模拟多种请求到服务器、网络或对象,以测试其性能。JMeter 可以用于测试静态和动态资源,并且可以模拟各种协议的请求,包括但不限于:

  • HTTP 和 HTTPS:测试Web应用
  • FTP
  • SMTP
  • IMAP
  • JMS
  • LDAP
  • WebSockets

JMeter 还提供了多种功能,如:

  • 多线程测试:能够模拟多个用户同时访问应用程序。
  • 测试计划和脚本的保存:可以保存测试计划和脚本,供以后重用。
  • 结果分析:提供了多种图表和报表来分析测试结果。
  • 插件支持:JMeter 社区提供了许多插件,增强了其功能。

JMeter 适用于开发人员、测试工程师和系统管理员,帮助他们了解应用程序在不同负载下的表现,从而优化性能和稳定性。

运行环境:需要安装JDK8 以上

Jmeter目录

bin:核心可执行文件,包含配置 jmeter.bat: windows启动文件(window系统一定要配置显示文件拓展名) 
jmeter: mac或者linux启动文件 
jmeter-server:mac或者Liunx分布式压测使用的启动文件 
jmeter-server.bat:window分布式压测使用的启动文件
jmeter.properties: 核心配置文件   extras:插件拓展的包lib:核心的依赖包

配置文件修改

bin目录 -> jmeter.properties

语言问题

默认 #language=en
改为 language=zh_CN

响应乱码问题解决

# sampleresult.default.encoding=ISO-8859-1的注释去掉,
改成:sampleresult.default.encoding=UTF-8

PS

  • JMeter 不是浏览器,它在协议级别工作

  • 对于 Web 服务和远程服务而言,JMeter 看起来像一个浏览器

  • JMeter 并不执行浏览器支持的所有操作,不像浏览器那样呈现 HTML 页面,不执行 HTML 页面中的 JS

Jmeter5.X核心功能组件+线程组和Sampler

核心功能组件

  1. 测试计划(Test Plan):这是JMeter测试的起点,所有测试元素都包含在测试计划中。
  2. 线程组(Thread Group):代表虚拟用户组,可以设置线程数、Ramp-Up 期(启动时间)和测试的循环次数。
  3. 配置元件(Config Element):用于设置测试环境,如HTTP请求默认值、数据库连接等。
  4. 前置处理器(Pre Processors):在请求发送前对请求进行修改或添加信息。
  5. 后置处理器(Post Processors):在请求发送后对响应进行处理。
  6. 断言(Assertions):用于验证响应结果是否符合预期。
  7. 监听器(Listeners):用于查看和分析测试结果,如查看请求和响应数据、生成图表等。
  8. 定时器(Timers):控制请求之间的间隔时间。
  9. 控制器(Controllers):用于组织Samplers,如逻辑控制器、循环控制器等。

线程组(Thread Groups)

线程组是模拟用户行为的核心组件,以下是其主要功能:

  • 名称:线程组的标识。
  • 线程数(Number of Threads):模拟的虚拟用户数。
  • Ramp-Up 期(Ramp-Up Period):所有线程启动所需的时间,用于平滑启动测试。
  • 循环次数(Loop Count):每个线程执行的请求次数,可以设置为永远循环(Forever)。
  • 调度器(Scheduler):可以设置测试开始的时间。

Samplers

采样器是实际执行请求的组件,以下是一些常用的Samplers:

  1. HTTP请求(HTTP Request):用于模拟对Web服务器的请求。
  2. FTP请求(FTP Request):用于模拟FTP服务器的请求。
  3. JDBC请求(JDBC Request):用于模拟数据库请求。
  4. LDAP请求(LDAP Request):用于模拟LDAP服务器的请求。
  5. JMS点对点(JMS Point-to-Point):用于模拟JMS消息传递。
  6. WebSocket请求(WebSocket Request):用于模拟WebSocket通信。
  7. TCP请求(TCP Request):用于模拟TCP协议的请求。
  8. 自定义Sampler:用户可以编写自定义的Sampler来满足特定需求。

每个Sampler都可以配置具体的请求参数,如URL、方法(GET、POST等)、请求头、请求体等。Sampler执行请求后,会生成响应数据,这些数据可以被后续的监听器捕获并展示。

JMeter 5.x 版本在之前的基础上增加了对现代应用程序的支持,如WebSockets和分布式测试的改进,以及用户界面和性能的优化。使用JMeter进行性能测试时,可以根据测试需求选择合适的组件和配置。

互联网公司高并发业务的Jmeter压测流程痛点

痛点一:本地测试环境与生产环境差异

痛点二:Linux服务器命令行压测配置复杂性

痛点三:JMX脚本和参数化文件管理

痛点四:测试报告生成和存储

痛点五:不同环境下的测试一致性

痛点六:性能优化后的再测试

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

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

相关文章

NDVI数据集提取植被覆盖度FVC

植被覆盖度FVC 植被覆盖度(Foliage Vegetation Cover,FVC)是指植被冠层覆盖地表的面积比例,通常用来描述一个区域内植被的茂密程度或生长状况。它是生态学、环境科学以及地理信息系统等领域的重要指标,对于理解地表能…

绝区叁--如何在移动设备上本地运行LLM

随着大型语言模型 (LLM)(例如Llama 2和Llama 3)不断突破人工智能的界限,它们正在改变我们与周围技术的互动方式。这些模型早已集成到我们的手机中,但到目前为止,它们理解和处理请求的能力还非常有限。然而,…

手写实现一个ORM框架

手写实现一个ORM框架 什么是ORM框架、ORM框架的作用效果演示框架设计代码细节SqlBuilderSqlExecutorStatementHandlerParameterHandlerResultSetHandler逆序生成实体类 大家好,本人最近写了一个ORM框架,想在这里分享给大家,让大家来学习学习。…

leetcode力扣_排序问题

215.数组中的第K个最大元素 鉴于已经将之前学的排序算法忘得差不多了,只会一个冒泡排序法了,就写了一个冒牌排序法,将给的数组按照降序排列,然后取nums[k-1]就是题目要求的,但是提交之后对于有的示例显示”超出时间限制…

JavaWeb开发之环境准备-大合集

本文博客地址 JavaWeb开发 || 环境准备 1. 前言2. JDK8安装2.1 下载地址2.2 安装配置图示2.2.1 JDK安装2.2.2 配置系统环境变量 3. Maven安装3.1 Maven下载3.2 Maven解压及系统变量配置 4. Tomcat安装4.1 Tomcat下载4.2 Tomcat解压及系统变量配置 5. Redis安装5.1 Redis下载5.…

记录一次麒麟V10 安装sysbench各种报错(关于MySQL)处理过程

sysbench手工下载: https://github.com/akopytov/sysbench 下载.zip文件,上传到服务器上 解压、安装: unzip sysbench-master.zipcd sysbench-master/sh autogen.sh./configure 报错:没有mysql驱动 configure: error: mysql_c…

Marin说PCB之CAM350的软件使用知多少?

今天上海的气温那叫一个高啊,温度都达到了39左右了都,我都严重怀疑我不是在魔都上班而是在火焰山板砖去了。这么燥热的天气真的是严重影响了小编我的工作效率,没有心情工作啊,要去泳池避避暑,冲个凉也行啊。这种天气只…

力扣5----最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。示例 2: 输入:s "cbbd" 输出…

Feign-未完成

Feign Java中如何实现接口调用?即如何发起http请求 前三种方式比较麻烦,在发起请求前,需要将Java对象进行序列化转为json格式的数据,才能发送,然后进行响应时,还需要把json数据进行反序列化成java对象。 …

G2.【C语言】EasyX绘制颜色窗口

1.窗口 窗口&#xff1a;宽度*高度&#xff08;单位都是像素&#xff09; #include <stdio.h> #include <easyx.h> int main() {initgraph(640, 480);getchar();return 0; } 640是宽&#xff0c;480是高 2.操作窗口的三个按钮 #include <stdio.h> #incl…

go语言day10 接口interface 类型断言 type关键字

接口&#xff1a; 空接口类型&#xff1a; 要实现一个接口&#xff0c;就要实现该接口中的所有方法。因为空接口中没有方法&#xff0c;所以自然所有类型都实现了空接口。那么就可以使用空接口类型变量去接受所有类型对象。 类比java&#xff0c;有点像Object类型的概念&#x…

免费去马赛克软件,亲测支持视频和图片,这AI功能逆天了!

有小伙伴私信问阿星有什么去除马赛克的免费软件&#xff0c;求推荐好用的去马赛克软件。 市面上去马赛克的软件多如牛毛&#xff0c;但真正好用的真不多&#xff0c;而免费的是更少。今天阿星就分享一款 AI智能去马赛克软件&#xff0c;免费使用。软件支持去除图片和视频的马赛…

51单片机STC89C52RC——15.1 AD/DA(模数数模)

目的/效果 1 LCD1602 显示 可调电阻、光敏电阻、热敏电阻值&#xff08;AD&#xff09; 2 模拟信号控制LED明暗&#xff08;DA&#xff09; 一&#xff0c;STC单片机模块 二&#xff0c;AD/DA 2.1 AD/DA 介绍 AD&#xff08;Analog to Digital&#xff09;&#xff1a;模拟…

第1章 项目背景(学成在线),项目介绍,环境搭建

1.项目背景 1.1 在线教育市场环境 以下内容摘自https://report.iresearch.cn/content/2021/01/358854.shtml 在线教育行业是一个有着极强的广度和深度的行业&#xff0c;从校内到校外&#xff1b;从早幼教到职业培训&#xff1b;从教育工具到全信息化平台等等。 2020年的新…

用Excel处理数据图像,出现交叉怎么办?

一、问题描述 用excel制作X-Y散点图&#xff0c;意外的出现了4个交叉点&#xff0c;而实际上的图表数据是没有交叉的。 二、模拟图表 模拟部分数据&#xff0c;并创建X-Y散点图&#xff0c;数据区域&#xff0c;X轴数据是依次增加的&#xff0c;因此散点图应该是没有交叉的。…

linux centos 安装niginx并且添加ssl(https)模块

文章目录 前言一、nginx安装教程1.流程步骤 总结 前言 一、nginx安装教程 1.流程步骤 代码如下&#xff08;示例&#xff09;&#xff1a; 1.先下载linux安装包 2.解压安装命令 sudo tar -zxvf nginx-1.20.1.tar.gz3.进入解压后的目录 sudo cd nginx-1.20.14.安装 sudo y…

欢迎加入国家智能网联汽车创新中心OS开发训练营大家庭

欢迎加入国家智能网联汽车创新中心OS开发训练营大家庭。&#x1f680; 导学阶段启动 在正式开营之前&#xff0c;我们特别设置了导学阶段&#xff0c;旨在帮助大家更好地迎接颇具挑战性的项目实战。导学阶段包括一系列精心准备的视频课程和配套习题。github链接&#xff1a;htt…

vue侦听器watch()

侦听器watch&#xff08;&#xff09; 侦听器侦听数据变化&#xff0c;我们可以使用watch 选项在每次响应式属性变化时触发一个函数。 <template><h3>侦听器watch</h3><hr> <p>{{nessage}}</p> <button click"exchage">…

基于YOLOv10+YOLOP+PYQT的可视化系统,实现多类别目标检测+可行驶区域分割+车道线分割【附代码】

文章目录 前言视频效果必要环境一、代码结构1、 训练参数解析2、 核心代码解析1.初始化Detector类2. torch.no_grad()3. 复制输入图像并初始化计数器4. 调用YOLOv10模型进行目标检测5. 提取检测结果信息6. 遍历检测结果并在图像上绘制边界框和标签7. 准备输入图像以适应End-to-…

【致知功夫 各随分限】成长需要时间,助人须考虑对方的承受程度

帮助他人需考虑各人的分限所能及的&#xff0c;初学圣学需时间沉淀&#xff0c;存养心性 任何人都应该受到教育&#xff0c;不应受到贫富、贵贱的差异而排除在教育之外&#xff0c;对于不同材质的学生&#xff0c;需要因材施教&#xff1b; 每天都有新的认知&#xff0c;大我…