Jmeter-Socket连接发送数据
本文介绍下通过Jmeter建立Socket连接,向服务端发送16进制数据。
配置TCP连接
一、建立TCP取样器配置
二、配置说明
TCPClient classname:TCP发送有三种启用方式:
- TCPClientImpl:文本数据,默认为这种
- BinaryTCPClientImpl:传输16进制数据,指定包结束符。这种16进制文件会通过Jmeter GUI来转换。
- LengthPrefixedBinaryTCPClientImpl:数据包中前2个字节为数据长度。可在bin/jmeter.properties配置文件中tcp.binarylength.prefix.length设置。
Target Server:TCP采样器中填写服务器地址、端口。
Connect:设置连接超时时间。
Response:设置响应超时时间。
Re-use connection:表示重复使用该连接发送请求。
Close connection:表示每次发送完该条数据后,关闭连接。
End of line(EOL) byte value:终止符。
- 根据服务器返回值截取最后一个字节, 注意如果是 16 进制,应该是两个字符
比如,在我的项目中返回值转为 16 进制的时候如下:
7e80010005013819415186010103e7020000d47e
那么最后一个字节(8 位)应该是 7e 换算为 10 进制后为 126,那么在 eol 处设置为 126。
注意:终止符为一个字节,16进制数大于7F(127)后,该EOL值为负数。比如:如果服务器返回最后一个字节为80,按单字节换成十进制为-128,EOL处的值要填写-128,。
如果TCP请求需要用户名/密码,可以在登录配置中填写。
建立TCP连接
一、建立TCP取样器
TCP取样器已经配置过了,这里可以不再填写IP、PORT等参数。
- 注意:如果需要使用同一连接重复发送数据,每个TCP取样器的Re-use connection都需要勾选上。
建立通道1:
二、发送签名数据
设置保持长连接,设置响应超时时间2000ms。
发送16进制文本内容,需要设置响应数据终止符,根据响应数据最后一个字节转成10进制数据。