每天学点新知识,心情都美好了~
困扰了好几个工作日的Jmeter MQTT压测报错问题,今天在组长的引荐下跟一位测试大佬聊过后,终于解决了。。。
之前压测结果一直有报错
- mqtt connect 报502:Failed to establish Connection null.
- mqtt pub 报501:Publish failed for connection HiveMQTTConnection{clientId='conn042704_460077032539'}.
让研发帮忙看服务器端,服务器都还好好的,也没什么报错信息,搞了好几次之后,研发都不爱搭理我了。我也自觉是我这边的问题,测试结果都不敢下定论,进入死胡同。
今天跟大佬聊,给他看了下错误以及脚本配置,大佬给出两个方案,第二个方案实测有效!
jmeter.bat中修改一个配置:
set HEAP=-Xms1024m -Xmx8192m
这个改了之后,我运行一次还是有报错,但这个对资源的优化也是有用的,相当于是给jmeter更多的内存空间;聚合报告、查看结果树这两个监听,都勾选上“仅错误日志”
这个改了之后,我运行一次就没有报错了,有效!!!
后来网上再搜了下,如何有效减少压测机的性能(GUI模式),really 给力!真的是学到了~~~
1.“查看结果树”,需要勾选“仅日志错误”,这样只会保存错误日志到内存,数据不会多。如果保存所有,那么会保存每个请求信息和相关信息,而且这些数据都是保存到jvm内存的,且常驻数据无法回收,上万十万大量请求很快就会压垮jmeter。
2.“聚合报告”中小并(100以内)发可以保留;高并发去掉,添加“Simple Data Writer”且保存csv格式数据。“聚合报告”是非常消耗cpu的。
3.其他监听组件可以都去掉,测试完后通过保存的结果,线下生成图表报告