浅识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.mfbz.cn/a/777635.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JVM基础篇】Java的四种垃圾回收算法介绍

文章目录 垃圾回收算法垃圾回收算法的历史和分类垃圾回收算法的评价标准标记清除算法优缺点 复制算法优缺点 标记整理算法(标记压缩算法)优缺点 分代垃圾回收算法(常用)JVM参数设置使用Arthas查看内存分区垃圾回收执行流程分代GC算…

上万组风电,光伏,用户负荷数据分享

上万组风电,光伏,用户负荷数据分享 可用于风光负荷预测等研究 获取链接🔗 https://pan.baidu.com/s/1izpymx6R3Y8JsFdx42rL0A 提取码:381i 获取链接🔗 https://pan.baidu.com/s/1izpymx6R3Y8JsFdx42rL0A 提取…

【算法笔记自学】第 5 章 入门篇(3)——数学问题

5.1简单数学 #include <cstdio> #include <algorithm> using namespace std; bool cmp(int a,int b){return a>b; } void to_array(int n,int num[]){for(int i0;i<4;i){num[i]n%10;n /10;} } int to_number(int num[]){int sum0;for(int i0;i<4;i){sumsu…

计算组的妙用!!页面权限控制

需求描述&#xff1a; 某些特殊的场景下&#xff0c;针对某页看板&#xff0c;需要进行数据权限卡控&#xff0c;但是又不能对全部的数据进行RLS处理&#xff0c;这种情况下可以利用计算组来解决这个需求。 实际场景 事实表包含产品维度和销售维度 两个维度属于同一公司下面的…

搭建互联网医院实战:从源码到在线问诊APP的全流程开发

今天&#xff0c;笔者将讲述在线问诊APP的全流程开发&#xff0c;帮助开发者理解和掌握搭建互联网医院的核心技术和步骤。 一、需求分析与设计 需求分析包括明确目标用户、功能需求、性能需求等。设计阶段则包括系统架构设计、数据库设计和前后端界面设计等。 1.目标用户&…

柯桥职场英语学习商务英语口语生活英语培训生活口语学习

辣妹用英语怎么说&#xff1f; 辣妹在英语中通常被翻译为“hot girl”或“spicy girl”&#xff0c;但更常见和直接的是“hot chick”或简单地使用“hot”来形容。 举个例子: Shes a real hot girl with her trendy outfit and confident attitude. 她真是个辣妹&#xff0…

Ubuntu 20版本安装Redis教程

第一步 切换到root用户&#xff0c;使用su命令&#xff0c;进行切换。 输入&#xff1a; su - 第二步 使用apt命令来搜索redis的软件包&#xff0c;输入命令&#xff1a;apt search redis 第三步 选择需要的redis版本进行安装&#xff0c;本次选择默认版本&#xff0c;redis5.…

谷粒商城-记录创建工程和模块时遇到的两个问题

文章目录 一&#xff0c;Maven工程出现Gradle相关的信息1&#xff0c;问题描述2&#xff0c;解决办法 二&#xff0c;找不到maven插件1&#xff0c;问题描述2&#xff0c;解决方案 三&#xff0c;补充知识&#xff1a;Maven和Gradle 这篇记录几个在创建工程和模块后遇到的几个问…

代码随想录算法训练营第四十五天| 300.最长递增子序列、 674. 最长连续递增序列、 718. 最长重复子数组

300.最长递增子序列 题目链接&#xff1a;300.最长递增子序列 文档讲解&#xff1a;代码随想录 状态&#xff1a;不会&#xff0c;递推状态的时候只想着如何从dp[i-1]推导dp[i]&#xff0c;没想过可能需要枚举dp[0-i] 思路&#xff1a; 找出所有比自己小的数字的dp[j],在这些dp…

超过GPT-4V,国产开源多模态大模型来了!支持视频理解/超高分辨率图片理解/多轮对话...

扫码领取享50优惠&#xff01;随时可用&#xff0c;先到先得&#xff01; 大家好&#xff0c;开源多模态大模型真的是每天都在疯狂的涌现&#xff0c;今天分享一个国产大模型 InternLM-XComposer-2.5 中文名&#xff1a;浦语灵笔2.5 仅使用 7B LLM 后端就达到了 GPT-4V 级别的能…

全能PDF工具集 -- PDF Shaper Professional v14.3 特别版

软件简介 PDF Shaper是一款功能强大的PDF工具集&#xff0c;它提供了一系列用于处理PDF文档的工具。这款软件使用户能够轻松地转换、分割、合并、提取页面以及旋转和加密PDF文件。PDF Shaper的界面简洁直观&#xff0c;使得即使是新手用户也能快速上手。它支持广泛的功能&…

Okhttp hostnameVerifier详解

hostnameVerifier 方法简介核心原理参考资料 方法简介 本篇博文以Okhttp 4.6.0来解析hostnameVerfier的作用&#xff0c;顾名思义&#xff0c;该方法的主要作用就是鉴定hostnname的合法性。Okhttp在初始化的时候我们可以自己配置hostnameVerfier&#xff1a; new OkHttpClien…

奇迹MU 骷髅战士在哪

BOSS分布图介绍 我为大家带来各地区怪物分布图。在游戏前期&#xff0c;很多玩家可能会不知道该去哪里寻找怪物&#xff0c;也不知道哪些怪物值得打。如果选择了太强的怪物&#xff0c;弱小的玩家可能会无法抵御攻击。如果选择了低等级的boss&#xff0c;收益可能并不理想。所…

【数据库原理】课程笔记

数据库原理 一、数据库系统基础 数据模型的类型 概念数据模型&#xff1a; 概念数据模型也称概念模型或信息模型,是对现实世界中问题域内事务(特性)的描述,是以用户观点实现世界的模型(图形表示)。主要用于描述事物的概念化结构,使数据库的设计人员在设计初期,避开计算机系统及…

基于大象机器人UltraArm P340机械臂和传送带,实现教育场景中的自动化分拣系统!

引言 今天我们将展示一个高度自动化的模拟场景&#xff0c;展示多个机械臂与传送带协同工作的高效分拣系统。在这个场景中&#xff0c;机械臂通过视觉识别技术对物体进行分类&#xff0c;并通过精确的机械操作将它们放置在指定的位置。这一系统不仅提高了分拣的速度和准确性&am…

Go语言--复合类型之指针与数组

分类 指针 指针是一个代表着某个内存地址的值。这个内存地址往往是在内存中存储的另一个变量的值的起始位置。Go 语言对指针的支持介于 Java 语言和 C/C语言之间,它既没有想 Java 语言那样取消了代码对指针的直接操作的能力,也避免了 C/C语言中由于对指针的滥用而造成的安全和…

【紫外线发光器件小结】 UV-B LED 308nm

之前有介绍光的波长和频率计算。 波长小于390nm,频率高于770太赫兹的电磁波忙&#xff0c;或者光。基本有一段就叫做紫外线。 紫外线有分为UV-A/B/C;三小段&#xff1b; 如下图&#xff1a; 高压汞灯与UV LED的光谱&#xff1b;黑色线汞灯&#xff0c;蓝色LED

通信协议:常见的芯片内通信协议

相关阅读 通信协议https://blog.csdn.net/weixin_45791458/category_12452508.html?spm1001.2014.3001.5482 本文将简单介绍一些常见的芯片间通信协议&#xff0c;但不会涉及到协议的具体细节。 一、AMBA&#xff08;Advanced Microcontroller Bus Architecture&#xff09;…

(七)[重制]C++命名空间与标准模板库(STL)

​ 引言 在专栏C教程的第六篇C中的结构体与联合体中&#xff0c;介绍了C中的结构体和联合体&#xff0c;包括它们的定义、初始化、内存布局和对齐&#xff0c;以及作为函数参数和返回值的应用。在专栏C教程的第七篇中&#xff0c;我们将深入了解C中的命名空间&#xff08;nam…

C++(Qt)-GIS开发-简易瓦片地图下载器

Qt-GIS开发-简易瓦片地图下载器 文章目录 Qt-GIS开发-简易瓦片地图下载器1、概述2、安装openssl3、实现效果4、主要代码4.1 算法函数4.2 瓦片地图下载url拼接4.3 多线程下载 5、源码地址6、参考 更多精彩内容&#x1f449;个人内容分类汇总 &#x1f448;&#x1f449;GIS开发 …