宝子们,今天咱就来好好唠唠 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 的采样器和监听器搭配起来,就能把系统的性能和功能测个底儿掉,赶紧去试试,让你的软件变得超级厉害!