欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jmeter对udp接口压测

程序员文章站 2022-06-13 23:06:03
...

1.下载JMeter 

http://jmeter.apache.org/download_jmeter.cgi

 

2.下载插件 

https://jmeter-plugins.org/downloads/all/

Download plugins-manager.jar and put it into lib/ext directory, then restart JMeter.

就是把这个文件放到apache-jmeter/lib/ext目录下

 

3.JMeter3添加UDP插件

启动JMeter ,选项 - plugins-manager - Available plugins - UDP Protocol Support

 

4.JMeter2添加UDP插件

注意如果是JDK 6 只能使用Jmeter2,并且下载下面三个包

JMeterPlugins-ExtrasLibs-1.1.3.zip,

JMeterPlugins-Extras-1.1.3.zip,

JMeterPlugins-Standard-1.1.3.zip

.将上述三个压缩包中的 lib文件夹 覆盖 jmeter目录下的lib文件夹

 

 5.jp@gc-UDP Request中Data Encode/Decode class中内容

可以选择下面三种

 

Full Class Name Comments  
kg.apc.jmeter.samplers.HexStringUDPDecoder This is most useful implementation, converts data from/to HEX-encoded sequences. For example, 6a6d6574657220706c7567696e73 corresponds to jmeter plugins.  
kg.apc.jmeter.samplers.DNSJavaDecoder This implementation requires Extras With Libs Set to be installed. Request data must contain three fields, separated with spaces: name, type, class. Example: www.com. A IN. Response data converted to text using DNSJava. Request flags can be set using +/- integer value on new line, eg 7 sets reqursion desired flag.  
kg.apc.jmeter.samplers.UDPSampler This implementation used as default when no valid class name specified in GUI. It makes no conversion on data.  

 我用的  kg.apc.jmeter.samplers.UDPSampler

 

 

6.结果乱码

选择处理器按右键,选添加-后置处理器-BeanShell PostProcessor,script中填入

 

prev.setDataEncoding("UTF-8");

 

 

7.非GUI模式压测 

将压测用例保存到bin目录下 *.jmx文件,./jmeter.sh -n -t mytest.jmx -l mytest.jtl

 

8.参看*.jtl结果

随便找个地方新建聚合报告,选择文件处选择目标JTL文件

 

9.建议

第一次压测的时候可以考虑添加断言,1个线程跑几次的方式测试返回结果是否正确,因为通过添加“观察结果树”选择*.jtl文件,结果也是空的。不能排除有返回但结果不是预期的情况。

压测与内存和CPU均有关系,压测时需要注意线程数,有文献指出服务器端线程数应为CPU核数+1。压测端可以在线程组中设置Ramp-Up Period(in seconds) 全部线程启动完成时间和调度器设置中的持续时间,将两个时间拉长,基本可以从输出中观察到线程与tps的关系。