Jmeter4.0之TCP 压测

前提:IP、端口号、入参、响应数据  开发都提供好。

一.步骤

1.新建线程组,并add -->Sampler-->TCP Sample

 

2.在TCP取样器中,设置TCP请求的参数,主要设置的参数为:

(1)TCPClient classname:org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl

  TCPClient classname 该参数一般有三个值设置:

  • org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl(以文本编辑器中的纯文本作为内容发送)
  • org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl(以文本编辑器中所编辑的16进制字符(hex)内容为基础转换为二进制的字节内容进行发送)(常用)
  • org.apache.jmeter.protocol.tcp.sampler.LengthPrefixedBinaryTCPClientImpl(在BinaryTCPClientImpl基础上默认以发送内容的长度以字节前缀进行填充)

(2)服务器IP和端口号:输入自定义的-开发提供,如下图  

(3)Text to send:待发送的数据报文 -开发提供,如下图中要发送的文本(16进制)

 

 

3.下载第三方的TCP插件包ApacheJMeter_tcp.jar,并放置在jmeter\apache-jmeter-4.0\lib\ext目录下

4.修改jmeter.properties 配置文件(路径apache-jmeter-4.0\bin下)

  搜索tcp 搜索到#tcp.handler=TCPClientImpl  是被注释掉的 在下面新增一行,如下:

        tcp.handler=BinaryTCPClientImpl   保存文件,并重启Jmeter

5.最最重要的一点  End of line(EOL) byte value  值的设置

因为响应数据是以05结尾的(16进制), 需要将其转换为10进制,所以此处的值应该设置为5

 

  

 以下重要概念来源请看这里    https://www.cnblogs.com/bf-blackfish/p/10579867.html  (写的很详细,解决了我的问题!!!)

 

 

 6.单线程接口运行成功

 

二.遇到的坑:

1.text  to send   输入的16进制  不能换行 换行会报错Response message: java.lang.IllegalArgumentException: Hex-encoded binary string contains an uneven no. of digits

  解决办法:删除掉多余的空行

2.End of line(EOL) byte value  该值不设置或者设置的不对  报500  jmeter.protocol.tcp.sampler.TCPSampler: org.apache.jmeter.protocol.tcp.sampler.ReadException:而且服务器一直没给返回,

  解决办法:文本结束符,非常重要 End of line(EOL) byte value:响应数据的最后2位,转换为10进制的值。取值区间[-128,127]

3.要想每一个tcp请求结束后关闭掉链接,不然服务器上会显示多个链接,一直没释放

   解决办法:勾选close connection:一个取样器就只会用一个tcp连接,也就是发送完报文以后,就关闭tcp连接。

4.建议设置超时时间和长连接(没用到  可以关注下)

       Timeouts:设置请求和响应的超时时间,超时的话会报500错误。它决定了在你没有输入End of line 的时候,什么时候断开tcp连接。如果没有填写的话就会一直在这里,

  Re-use connection:在一个线程里,复用一个连接,在要求TCP长连接的时候需要用到这个。

5.Test Action(试了下   没仔细研究)

  在jmeter使用过程中,接口之间相关关联,而有些接口响应时间较长,导致下个接口执行时,可能未能获取到需要的信息。这个时候需要对上个接口做延时处理,就用到Test Action。

6.响应断言

  勾选Main sample only   、响应文本 要测试的模式中,输入 响应数据

  

 

posted @ 2020-09-23 22:10  eosclover  Views(2077)  Comments(0Edit  收藏  举报