时间:2025-11-05 14:13
人气:
作者:admin
每周读书与学习是由清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书的作者推出,分享作者多年的IT从业经历,希望对很多计算机科学技术IT类专业毕业生以及IT从业者有所帮助。
1、取样器
在前面的章节学习中,已经介绍了很多Jmeter源生自带的取样器,虽然Jmeter已经有了非常丰富的取样器,但是性能测试时还是会出现有些场景或者功能无法被覆盖到或者使用Jmeter中已有的取样器无法对系统完成性能测试。
1.1、WebSocket取样器
WebSocket 是一个建立在TCP协议基础之上的在当前很多Web系统中用的非常频繁的通信协议,虽然WebSocket 和Http协议很类似,但是Http是单向请求的,只能客户端主动向服务端发送请求,而WebSocket可以在客户端向服务端发送请求的基础上,也支持服务端向客户端主动发送请求。
如下图所示,并且WebSocket 支持长连接保持,也就是建立一次连接后,就可以一直使用该连接通道来进行客户端和服务端的长久通信,并且一旦因为网络等原因连接断开后,会进行自动重连,并且在HTML5等前端页面中也大量支持了WebSocket协议,也就意味着浏览器与服务器之间除了传统的Http协议外,也支持了WebSocket协议,比如通过WebSocket协议可以在浏览器页面中进行在线聊天等。

由于WebSocket协议被大量的应用系统使用,并且Jmeter自身并不支持该协议下的取样器请求,所以在开源社区中,出现了很多自定义实现的支持WebSocket协议的Jmeter取样器,比如在Github地址:https://github.com/fshutdown/JMeter-WebSocketSampler 中就有一个使用率很广的WebSocket协议的取样器,如下图所示。

该取样器当前最新的Release版本为1.0.3,可以点击图中右侧的版本连接,进行下载对应的已经编译好的Jar包,并且将该Jar包放在Jmeter的lib\ext目录下,如下图所示,在前面的章节中,已经介绍过,在Jmeter中,lib\ext目录下是用来专门放置第三方的Jar包目录。

将Jar包放置在lib\ext目录下后,再次启动Jmeter时,就可以在Jmeter的取样器下看到新加入的WebSocket 取样器,如下图所示。

在添加了WebSocket 取样器后,可以看到其界面下包含的主要功能如下图所示。

从图中可以看到WebSocket 取样器界面中包含的主要参数如下:
1.2、Dubbo取样器
Dubbo是阿里巴巴开源的一个高性能优秀的后端分布式服务框架,该框架是一款轻量级的高性能的Java RPC(Remote Procedure Call的缩写,即远程过程调用)框架,其总体架构设计如下图所示。

从图中可以看到Dubbo主要由如下几个部分组成。
由于Dubbo是一个高性能的分布式服务框架,在很多中小型的公司中被大量使用,所以在开源社区中,也出现了自定义实现的支持Dubbo的Jmeter的取样器,通过访问
GitHub网址:https://github.com/thubbo/jmeter-plugins-for-apache-dubbo 即可获取该取样器,如下图所示,该取样器的最新版本为2.7.8,从GitHub网址中下载最新版的Jar包,放到Jmeter的lib\ext目录下,然后启动Jmeter即可看到该取样器,如下图所示。
从图中可以看到Dubbo 取样器界面中包含的主要参数如下:


2、本次学习总结
3、作者寄语
最近几年,随着大模型、AIGC、智能体等概念的火爆,有人开始质疑:传统软件测试,尤其是性能测试,是不是已经“边缘化”了?
我们的答案是:恰恰相反,它比以往任何时候都更重要。
无论是电商平台的秒杀系统、银行核心交易链路,还是大模型推理服务的API网关,只要涉及高并发、低延迟、稳定性保障,性能测试就是不可绕过的“守门人”。而JMeter,作为开源、灵活、生态成熟的性能测试工具,依然是绝大多数团队的首选。
但我们也发现:市面上的JMeter资料,要么是零散的博客教程,要么是只讲操作不讲原理的“说明书”。缺少一本既能系统讲透原理,又能手把手带读者完成真实项目闭环的实战型图书——这正是我们策划这本书的初心。
我和张永松老师,都是在一线摸爬滚打多年的性能测试专家。我们在写作时反复强调一个理念:“性能测试不是点点鼠标,而是工程思维的体现。”
因此,这本书的“核心”体现在三个维度:
特别值得一提的是第11章《大模型辅助性能测试》。这不是为了蹭热点,而是真实探索:如何用AI生成测试脚本、构造复杂测试数据、甚至辅助分析性能瓶颈。我们编辑团队在审稿时就深受启发——未来的性能工程师,一定是“工具+AI+经验”的复合体。
书末附录整理了JMeter所有关键配置项,压测时随手翻阅,省去查文档的时间。这种“为读者省时间”的细节,在全书随处可见。
在审稿过程中,我们和出版社编辑反复打磨案例的真实性。比如第9章的秒杀系统,不仅模拟了商品查询、下单、支付的混合场景,还考虑了缓存击穿、数据库锁竞争、网络抖动等典型问题。读者学到的不是“理想化脚本”,而是能直接迁移到工作中的解决方案。
此外,书中所有代码、配置、截图均经过实机验证,配套资源(源码、PPT、答疑群)也已上线。我们希望这本书不仅是“读完就放”,而是能长期放在工位上,边看边敲的实战伴侣。
作为作者,我们深知:一本好书的价值,不在于它讲了多少“高深理论”,而在于它能否真正帮读者解决问题。《JMeter核心技术、性能测试与性能分析》或许没有炫目的概念,但它扎实、可靠、接地气——就像性能测试本身一样,沉默却关键。
如果你正在性能测试的路上摸索,不妨翻开这本书,和两位作者一起,把“压测”这件事,做得更专业、更高效、更有价值。
出处:本次学习的内容参考自清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书
作者的原创文章,转载须注明出处。原创文章归作者所有,欢迎转载,但是保留版权。对于转载了博主的原创文章,不标注出处的,作者将依法追究版权,请尊重作者的成果。