JMeter 采样器超详细教程

news/2024/12/25 21:48:58/文章来源:https://www.cnblogs.com/geekzone/p/18628777

宝子们,今天咱就来好好唠唠 JMeter 里那些厉害的采样器,让你轻松拿捏性能测试和接口测试!

一、采样器大集合

先给宝子们来个采样器的 “全家福”,让你们心里有个底:

  • HTTP 请求采样器:就像是个超级网购小能手,能模拟在网上各种逛店、买东西的操作,啥网页请求、接口调用,它都能轻松搞定,像你在淘宝搜宝贝、在微博刷热搜,它都能模仿得有模有样。
  • FTP 请求采样器:这个就像是个大力士快递员,专门负责在文件的世界里搬东西,上传下载文件那叫一个快,公司的文件共享平台靠它就能知道是不是够强壮,能不能顶住大家同时传文件的压力。
  • JDBC 请求采样器:把它想象成一个聪明的账房先生,对数据库这个大账本了如指掌,你想查啥数据、改啥记录,只要告诉它 SQL 语句,它就能帮你办得妥妥当当,比如看看财务软件里的收支情况是不是算得明明白白。
  • Java 请求采样器:这可是个万能的魔法师,你有啥复杂的魔法咒语(自定义 Java 代码),它都能念出来,像一些特别的算法、奇怪的数据处理方式,交给它准没错,就好比让它用魔法算出一组复杂数据的结果。
  • JUnit 测试用例采样器:就像是学校里的严厉监考老师,拿着你之前写好的小测验(JUnit 测试用例),一个一个检查,看看你的软件是不是个好学生,有没有把知识都掌握牢,比如测试一个数学函数库是不是算啥都准。
  • SMTP 采样器:它就是那个风一样的信使,能快速把邮件发出去,看看邮件系统是不是够给力,会不会把信弄丢或者送得太慢,像公司发重要通知,就靠它来检测能不能及时送到大家手里。
  • OS Process 采样器:这是个细心的系统小管家,时刻盯着本地软件这个 “调皮孩子”,看它有没有在电脑这个 “家” 里捣乱,占用太多资源,比如你开了好几个大型软件,它就能告诉你电脑会不会卡得受不了。
  • Debug 采样器:宝子们遇到问题别慌,它就是你的贴心小助手,能把采样器执行过程中的那些小秘密都告诉你,像变量的值、请求的参数这些,就像给你一个手电筒,照亮你找问题的路。
  • BeanShell 采样器:它是个神奇的脚本小精灵,能按你的心意变出来各种东西,像临时生成个测试数据,或者给请求结果化个妆(加工处理),让测试更合你心意,比如给用户名加个随机后缀,让每次测试都不太一样。
  • GraphQL HTTP 请求采样器:这可是个寻宝小能手,专门在 GraphQL 这个宝藏世界里找宝贝(数据),对于那些新兴的社交平台、内容管理系统啥的,它能精准地把你想要的数据挖出来,比普通的 HTTP 请求厉害多了,就像用更高级的寻宝图找宝藏。
  • JMS Publisher:把它当作大喇叭广播员,在 JMS 消息的世界里大声喊出重要消息,让其他小伙伴(订阅者)都能听到,像电商系统里新订单来了,它就赶紧广播,通知各个部门准备干活。
  • JMS Point-to-Point:这是个精准的快递小哥,只会把消息送到指定的人手里,一点都不会出错,比如用户认证结果要传给特定模块,它就能使命必达,保证隐私和准确性。
  • JMS Subscriber:它就是那个认真听广播的乖孩子,听到 JMS Publisher 广播的消息后,会按照你说的做,比如把订单消息记下来或者更新数据库,确保整个业务流程顺畅得像滑滑梯。
  • AJP/1.3 Sampler:这个采样器像是服务器之间的 “幕后联络员”,负责在服务器之间悄悄传递重要信息,确保它们之间的沟通顺畅无阻,就像企业里不同部门之间的秘密信使,保障整个系统的高效运转。

二、各采样器详细玩法

(一)HTTP Request(HTTP 请求采样器)

宝子们,想测试网页或者 APP 的接口好不好用,就找它!

  • 咋添加和设置呢:在 JMeter 里找到线程组,右键点 “添加”,就能看到 HTTP 请求采样器啦。
  • 关键参数看这里
    • 协议:就像你选逛街的地方,是普通集市(http)还是高级商场(https),淘宝就得选 “https” 哦,不然进不去。
    • 服务器名称或 IP:这就是商场的地址,比如 “www.taobao.com”,可别写错啦,不然就找不到地方买东西咯。
    • 端口号:一般 http 是 80,https 是 443,不过有些网站有自己的 “秘密通道”,得按实际情况填。
    • 方法:这是你在商场的动作,看东西(GET)、卖东西(POST)、更新购物车(PUT)、删东西(DELETE),搜商品就用 “GET”,登录就用 “POST”。
    • 路径:相当于商场里的店铺位置,比如 “/search”,再加上参数,像跟店员说要红色 S 码衣服,就在参数里写 “color=red&size=S”,这样就能模拟各种操作啦。
  • 啥时候用它呢:只要是用 HTTP 协议通信的,像社交 APP 点赞、电商下单,都可以让它上场,看看系统反应快不快。

(二)FTP Request(FTP 请求采样器)

宝子们,有文件要传或者下,就喊它来帮忙!

  • 咋创建和配置:在线程组右键添加,就能找到它。
  • 参数详解来咯
    • 服务器名称或 IP:这是文件存放的地方,得填对。
    • 端口号:一般默认 21,要是改了,就按实际的填。
    • 用户名密码:这是打开文件库的钥匙,没有可不行。
    • 远程文件:就是要操作的文件名字。
    • 本地文件:下载就填保存路径,上传就填本地文件位置。
  • 啥时候用呢:测试文件服务器上传下载性能的时候,比如公司文件共享平台,看大家一起传文件会不会卡,就靠它啦。

(三)JDBC Request(JDBC 请求采样器)

宝子们,想看看数据库好不好使,就找它!

  • 咋添加呢:先给数据库配个 “钥匙”(JDBC Connection Configuration),填上数据库的 URL、用户名、密码、驱动类名,然后在线程组添加 JDBC 请求采样器。
  • 参数咋填
    • SQL 查询语句:比如 “SELECT * FROM transactions WHERE amount> 100”,这就是让它去账本里找大于 100 的交易记录,你可以写各种复杂的语句,看看数据库能不能快速回答你。
  • 啥时候用:测试数据库驱动的系统,像财务软件读写数据快不快、准不准,它就能告诉你。

(四)Java Request(Java 请求采样器)

宝子们,有自己的特殊代码逻辑要测试,它就是你的魔法棒!

  • 咋用呢
    • 把写好的 Java 类打成 JAR 包,放到 JMeter 的 “lib/ext” 目录下,这可很重要哦!
    • 在采样器里填上 Java 类的路径,比如 “com.example.math.AdditionCalculator”(假设是个加法计算器)。
    • 在参数区传入要算的数据,就像给魔法棒输入魔力。
  • 给个例子
public class AdditionCalculator {public int add(int num1, int num2) {return num1 + num2;}
}
  • 啥时候用它呢:当现成采样器搞不定特殊业务逻辑,像复杂算法、特别的数据处理,它就能派上用场,施展魔法。

(五)JUnit Request(JUnit 测试用例采样器)

宝子们,之前写了一堆小测试,想一起测测,它就是你的好帮手!

  • 咋操作呢
    • 把包含 JUnit 测试用例的 JAR 包放到 JMeter 的 “lib/ext” 目录。
    • 在采样器里选要测的 JUnit 测试类,比如 “com.example.unit.TestMathFunctions”(假设是数学函数测试)。
    • 然后运行测试计划,它就会像个严格的老师,一项一项检查,告诉你软件是不是合格。
  • 啥时候用呢:有 JUnit 测试用例,想在 JMeter 里批量执行,看看模块稳不稳,就用它。

(六)SMTP Sampler(SMTP 请求采样器)

宝子们,想测测邮件系统快不快,就靠它!

  • 咋配置呢
    • 在采样器里填上邮件服务器地址,像 “smtp.126.com”(以 126 邮箱为例)。
    • 端口号:普通是 25,SSL 加密可能是 465 或 587,看邮件服务器咋设置。
    • 用户名密码:这是邮箱的钥匙。
    • 还有收件人、发件人、邮件主题和内容。
  • 啥时候用呢:测试公司邮件服务器,看同时发很多邮件会不会卡顿、丢失,它就能模拟这个过程。

(七)OS Process Sampler(操作系统进程采样器)

宝子们,想看看软件有没有在电脑里捣乱,找它!

  • 咋用呢
    • 在采样器里填上本地软件的执行文件路径和参数,比如 “C:\Program Files\VideoEditor\VideoEdit.exe -batch C:\Videos*.mp4”(假设是视频编辑软件批量处理视频)。
    • 有工作目录也可以填上。
  • 啥时候用呢:测试本地软件对系统资源的占用,像办公软件、图像处理软件开多了电脑卡不卡,它就能告诉你。

(八)Debug Sampler(调试采样器)

宝子们,测试出问题了别着急,它来帮你找原因!

  • 咋用呢:把它放在你怀疑的采样器旁边,运行测试后,它就会像个侦探一样,把采样器执行的细节都告诉你,比如变量的值、请求参数,让你找到问题所在,就像给你一个放大镜,让你看清问题的蛛丝马迹。

(九)BeanShell Sampler(BeanShell 采样器)

宝子们,想在测试里玩点花样,它就能帮你!

  • 咋操作呢
    • 在脚本区写 BeanShell 脚本,比如生成随机用户名:
import java.util.Random;
Random random = new Random();
String username = "user" + random.nextInt(1000);
vars.put("username", username);
  • 后面的采样器就能用这个用户名,比如在 HTTP 请求参数里用 “${username}”,就像给测试加点料,让它更有趣。
  • 啥时候用呢:当你想在测试中执行自定义脚本逻辑,像生成数据、加工结果、改请求头,它就能满足你的小心思。

(十)GraphQL HTTP Request(GraphQL HTTP 请求采样器)

宝子们,遇到 GraphQL 接口,它就是你的秘密武器!

  • 咋配置呢
    • 像 HTTP 请求采样器一样,填好协议、服务器、端口等信息。
    • 在 “Query” 区写 GraphQL 查询语句,比如:
{user(id: 123) {nameposts {titlecontent}}
}
  • 啥时候用呢:测试使用 GraphQL 技术的接口,特别是那些复杂结构化数据需求的场景,比如新兴社交平台找特定用户的详细信息,它就能精准找到,比普通 HTTP 请求厉害多了,就像用更高级的工具挖更深的宝藏。

(十一)JMS Publisher(JMS 发布者采样器)

宝子们,在 JMS 消息世界里要广播消息,找它!

  • 咋配置呢
    • 先给 JMS 配好连接工厂和目的地,就像找到广播室和频道,填好服务器地址、端口、用户名、密码,还有目的地名字(比如 “orderQueue”)。
    • 然后在采样器里写要广播的消息,像 “新订单已生成,请及时处理!”。
  • 啥时候用呢:测试 JMS 消息系统,比如电商订单生成后通知其他系统,看消息能不能快速准确传出去,保证业务流程顺畅,它就像个大喇叭,让大家都听到重要消息。

(十二)JMS Point-to-Point(JMS 点对点采样器)

宝子们,有消息要精准送给一个人,它就是你的快递小哥!

  • 咋用呢
    • 像 JMS Publisher 一样配置 JMS 连接和目的地(这个目的地是特定接收者的队列)。
    • 在采样器里写要发的消息,比如 “用户 123 的个人信息已更新,请同步到数据库”。
  • 啥时候用呢:在 JMS 系统里,要给特定模块发消息,像用户认证结果返回,保证消息不送错,它就能做到,像个靠谱的快递员,使命必达。

(十三)JMS Subscriber(JMS 订阅者采样器)

宝子们,想听听 JMS 消息并处理,它就是你的小耳朵!

  • 咋操作呢
    • 配好 JMS 连接和要订阅的目的地(比如特定队列)。
    • 在采样器里写收到消息后的处理逻辑,比如把订单消息记到日志或者更新数据库状态。
  • 啥时候用呢:测试 JMS 系统里订阅者能不能正确处理消息,像库存管理系统处理订单消息,保证业务连贯,它就像个听话的小助手,听到消息就干活。

(十四)AJP/1.3 Sampler(AJP/1.3 请求采样器)

宝子们,服务器之间要悄悄传消息,它就是那个联络员!

  • 咋配置呢:在采样器里填上服务器名称或 IP、端口号(AJP/1.3 有默认端口),还有要请求的资源路径。比如应用服务器和 Tomcat 服务器通信,就可以用它模拟请求特定 JSP 页面或 Servlet,就像在服务器之间传小纸条,让它们配合得更默契。
  • 啥时候用呢:测试基于 AJP 协议的服务器通信,像企业级应用里多个服务器协同工作,保证它们沟通顺畅,它就能发挥作用。

三、用好监听器,测试更厉害

宝子们,采样器用好还不够,再配上监听器,那测试就更牛啦!

  • 查看结果树:这就像个超级放大镜,能把每个采样器的请求和响应细节都放大给你看。你能看到请求发了啥、服务器回了啥状态码(200 就是成功,404 就是找不到啦),还有响应的数据长啥样。要是接口返回奇怪的数据,或者页面找不到,看它就能找到线索,就像破案一样,从细节里找到真相。
  • 聚合报告:这是个智能小助手,能把采样器的性能数据汇总起来给你看。像平均响应时间、吞吐量(就是单位时间能处理多少请求,像工厂生产东西的速度)、错误率这些,一看就知道系统性能咋样。要是平均响应时间太长,或者错误率太高,就知道系统可能有点累了,要优化优化,就像给系统做个体检,数据就是体检报告。

宝子们,JMeter 的采样器和监听器搭配起来,就能把系统的性能和功能测个底儿掉,赶紧去试试,让你的软件变得超级厉害!

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

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

相关文章

CSRF跨站请求伪造攻击详解

本文为《白帽子Web讲安全(第2版)》——跨站请求伪造(CSRF)章节的阅读总结及摘录,详述了CSRF攻击的定义及防御方法等。一、CSRF攻击概述 1.1 CSRF攻击定义用户浏览器加载恶意网站时,浏览器中的恶意网站页面向另一目标网站自主发起一个恶意HTTP请求,该攻击方式即为CSRF攻击。…

R数据分析:工具变量回归的做法和解释,实例解析

前几天看了个视频,是2024年诺贝尔经济学奖得主在分享自己的研究,研究问题是“制度如何形成并影响经济繁荣”,在研究这个问题的时候他的PPT中提到研究的统计过程中用到了工具变量,想着再次大家介绍一下这个方法。说不定利用这个方法,哪天我的读者里面也出个诺贝尔奖得主呢,…

昆工25考研复试时间预测(信自院)

昆工昆明理工大学、计算机技术、人工智能、软件工程、网络空间安全、891计算机专业核心综合、计算机系统结构、计算机软件与理论、计算机应用技术、通信工程、817信号与系统、信号与信息处理、通信与信息系统、通信工程(含宽带网络、移动通信等)

WebP图片格式

WebP WebP 是一种图片文件格式,由 Google 开发,用于提供更好的图像压缩性能。支持有损压缩和无损压缩,同时支持透明度(类似 PNG 格式的 alpha 通道)和动画(类似 GIF 格式)。 WebP特点高效压缩 •有损压缩:与 JPEG 相比,WebP 的文件体积更小,同时保持类似的图像质量。…

谁让你创建两个对象的?

如果CLASSPATH下有两个不同版本的jar包,一个版本的jar包有@Component注解,另外一个版本没有,Spring到底会不会创建Bean?问题现象 之前遇到过一个问题,在一个微服务的目录下有相同功能 jar 包的两个不同的版本,其中一个版本里面的类有 @Component 注解,另外一个版本的类里…

打印三角形金字塔 、debug、java的方法、命令行传参、可变参数20241225

打印三角形金字塔 debug20241225package com.pangHuHuStudyJava.struct; public class Print_Tran {public static void main(String[] args) {for (int j = 0; j < 5; j++) {for (int r = 5; r > j; r--) {System.out.print( );}for (int s = 0; s < ((2*j)+1); s++…

OpenAI o3模型震撼发布:编程界的革命性突破,程序员的未来将何去何从?

当人工智能踏足编程领域,生产力的提升让人瞠目结舌。就在近日,OpenAI 发布了全新的 o3模型,其强大的代码生成能力和上下文理解能力,将编程带入了一个全新的时代。是机遇还是挑战?程序员们将如何面对这场技术风暴?o3模型究竟有何与众不同之处?它的发布会对程序员和整个软…

[Java/压缩] Java读取Parquet文件

序:契机生产环境有设备出重大事故,又因一关键功能无法使用,亟需将生产环境的原始MQTT报文(以 parquet 文件格式 + zstd 压缩格式 落盘)DOWN到本地,读取并解析。本文聚焦在 本地电脑,用 java 读取 parquet 文件相当多网络文档的读取代码无法正常运行,有必要记录一二,后续…

莫队从入门到人门

普通莫队 详介(P2709 小B的询问) 普通莫队处理问题的前提是问题可以离线,多次区间查询,\(O(n\sqrt m)\) 能过。 我们以 P2709 小B的询问 为例,假设当前区间为 \([l,r]\),答案为 \(ans\),那么 \(r\) 右移一位时,新加入一个数 \(x\),我们只要把 \(ans\) 加上 \(x\) 的贡…

nacos安装注意事项

一年多没玩了,都快忘了,最新版本已经2.3.x了 3.0也快问世了 Linux/Unix/Mac 单机启动命令: sh startup.sh -m standalone Windows startup.cmd -m standalone如果直接未启动就是集群模式,但是要注意nacos.properties里面配置集群信息本文来自博客园,作者:余生请多指教ANT…

PWN系列-2.27版本利用setcontext实现orw

PWN系列-2.27版本利用setcontext实现orw 知识 开启沙箱之后,我们就只能用orw的方式来得到flag。 这篇博客主要讲通过劫持__free_hook或者__malloc_hook利用setcontext在libc或者heap上执行rop或者shellcode。 在free堆块的时候,rdi会指向堆块,在检测到__free_hook有值的情况…

shell语法保姆级教程

Shell脚本 建立一个sh脚本 touch 1.sh (新建脚本文件)vi 1.sh(编写文件内容)按 i 可以写入内容,按esc :wq退出并保存解释 1、创建脚本文件 2、脚本文件中第一行为指定脚本编译器:# !/bin/bash 最终调用的都是dash执行shell脚本命令: 1、./1.sh难道我们必须要修改权限才能执…