jmeter遇到的坑及解决办法

在使用JMeter进行性能测试时遇到了一些问题,包括监控服务器性能时的连接失败、版本不兼容导致的SampleSaveConfiguration错误以及脚本运行中的响应乱码和缺失Cookie。通过更换端口、降低JMeter版本、修改配置文件、添加信息头等方法成功解决了这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装官网最新版本,jmeter5
1.监控服务器性能
安装JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar在本机。
在服务器安装ServerAgent.zip,安装步骤自行百度。
1)装完后在本机打开telnet客户端。
打开命令行,输入telnet **** 4444
无法连接。
于是在服务器换了nohup命令去安装,让它在后台运行
nohup ServerAgent-2.2.3/startAgent.sh --udp-port 4444 --tcp-port 4444 &

2)仍然无法连接。

换端口
nohup ServerAgent-2.2.3/startAgent.sh --udp-port 4445 --tcp-port 4445 &

这次连接成功

启动jmeter,打开PerfMon Metrics Collector,这是监听服务器的插件。

3)运行已准备好的脚本,报
java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter
试了半天都是这个错误。
问题:jmeter版本太高,setFormatter方法在3.1版本后不支持。但是插件没有高版本,只能卸载5.0重装3.1。重装后成功。
补充:jmeter据说高版本可以使用这个办法:下载plugins-manager.jar ,复制到Jmeter文件夹的lib/ext路径下,重启Jmeter后,在选项菜单中就可以看到plugins-manager插件管理器了。打开,查找PerfMon勾上勾选,再点击右下角的Apply Changes…按钮即可
但是这个办法我亲测查不到PerfMon,可能是插件版本问题。

2.运行脚本
fiddler抓包打开百度首页
导入线程组,设置20个线程,不必设置永远。
运行,性能图看到了。

1)设置断言,选响应文本-substring,文本为百度。
运行报错,打开查看结果树,点开响应数据,发现响应的中文都是乱码,所以没取到。
解决:打开jmeter.properties 找到sampleresult.default.encoding 一项,解除注释,设置为utf-8
再运行,这次文本改为星缘若影(百度登录用户名)

2)运行报错,检查,发现这个脚本没有登录cookie,等于游客访问,检查不到。改文本为百度,运行成功。

3.抓包与自定义http请求

抓包下来的内容:
在这里插入图片描述
按内容写了一个http请求,运行报错。
问题:请求内部隐含了一个信息头管理器
在这里插入图片描述
打开管理器,发现头部信息有两项为必须参数
在这里插入图片描述
自己在请求处添加信息头,运行成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值