Jmeter之TCP取样器

1.在线程组中添加“TCP取样器”java

 

2.填写数据git

如下截图是必须配置的apache

 

TCPClient classname:  填写TCP报文格式(有三类),默认前缀:org.apache.jmeter.protocol.tcp.sampler.json

  • TCPClientImpl:普通文本传输,可设置他的编码格式(eg:json串)
  • BinaryTCPClientImpl:十六进制报文(经常使用)
  • LengthPrefixedBinaryTCPClientImpl:继承BinaryTCPClientImpl类,并在BinaryTCPClientlmpl前面增长两个字节数据长度。

Target Server:填写正确的IP,和端口并发

Timeouts:最大链接时间和响应时间,一旦超时就被当作失败。(通常不设置)tcp

Re-use connectionTCP长链接,一个线程里,复用这个链接(经常使用)测试

 

End of line(EOL) byte value响应数据的最后2位,转换为10进制的值。取值区间[-128,127]编码

  • 由于TCP长链接是不会断开的,咱们须要从响应数据来判断并告知TCP取样器此次请求已经得到了数据/响应成功,而后运行其余线程
  • 例如:响应数据为“F000”,最后2位是“00”,因此这里填入“0”spa

  • 若是不知道返回数据,能够调测。由于没有设置EOL因此在运行后,自行点击stop。而后在“查看结果树”的响应数据中查看数据。线程

  •  

    再若是,这个长链接就是没有数据返回,那就磨着开发给个返回值,毕竟我就是这样作的~哈哈。之后发现其余解决方法更新这里

要发送的文本:这个文本须要开发提供

  • 坑1:十六进制数之间不能有空格(报错:Response message: java.lang.IllegalArgumentException: Hex-encoded binary string contains an uneven no. of digits)
  • 坑2:不能有换行(报错:Response message: java.lang.IllegalArgumentException: Hex-encoded binary string contains an uneven no. of digits)

 

3.jmeter属性配置文件修改

依据当前采用的报文格式,修改

#tcp.handler=TCPClientImpl
#tcp.handler=BinaryTCPClientImpl
#tcp.handler=LengthPrefixedBinaryTCPClientImpl

 

 

 4.单线程测试经过后,设置并发量,启动查看测试结果

 

相关文章
相关标签/搜索