jmeter进行tcp压测的脚本编写

- 适用场景 -

1. Socket连接,TCP传输

2. 客户端向服务器发送「十六进制格式文件」

3. 特别注意结束符的填写

4、本文重点阐述tcp压测脚本的编写,压测结果如果分析等问题后续分享

-如何配置-

1、基础插件安装不再赘述

2、压测脚本编写

2.1、创建线程组、线程配置

用户数、执行次数、执行时间等根据实际业务场景填写。

2.2、添加TCP取样器

2.3、配置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基础上默认以发送内容的长度以字节前缀进行填充)

因为我们是16进制报文,所以选择org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl

2)ServerName or IP Port Number:这里输入主机服务器IP地址和端口号

3)Connect:设置连接超时时间。

4)Response:设置响应超时时间。

5)Re-use connection:表示是否重复使用该连接发送请求,如果勾选,表示可以共用一个socket

6)Close connection:表示每次请求后是否关闭socket,如果关闭,则下一个tcp sampler会重新创建socket

7)End of line(EOL) byte value:终止符,表示tcp请求的结束符。只有当客户端在取响应流中读到结束符才会认为本次业务完成,否则一直阻塞,直到流被关闭。

如上图,根据服务器返回值截取最后一个字节,注意16进制,应该是两个字符。那么最后一个字节(8 位)应该是 9b 换算为十进制后为 155( 提供一个换算工具:在线进制转换),因为这个结束符只有在-128到127之间才有效,而我们的结尾字节算出来是155超过了支持的范围,超过范围的计算步骤如下:以十六进制9b,十进制155为例

(1)计算标记位的二进制--10011011

(2)计算该二进制的补码(最高位-符号位为1表示这是一个负数,0表示正数,负数的补码为符号位不变,数据位取反后加1;正数反码、补码是其本身

10011011的数据位取反为 1 1100100 再加1后为1 1100101(其中最高位1为符号位)
(3)计算步骤2中的数据位1100101的十进制为101,符号位1为负数,因此最终计算结果为-101

3、配置断言、结果查看等

4、以上全部配置完成就可以执行压测了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值