You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JMeter TCP采样器请求中处理并配置控制字符

JMeter TCP采样器控制字符配置方法

控制字符属于不可见ASCII字符,无法直接通过键盘输入到采样器的请求输入框,可通过以下三种方案实现配置:

  • 方案1:使用JMeter内置__char函数生成
    该函数可根据输入的ASCII码十进制值生成对应字符,是最简单的配置方式。例如:
    • 报文开头的STX(开始文本,ASCII码2):${__char(2)}
    • 报文结尾的ETX(结束文本,ASCII码3):${__char(3)}
    • 回车符CR(ASCII码13):${__char(13)}
    • 换行符LF(ASCII码10):${__char(10)}
      你可以直接把函数嵌入到请求字符串的对应位置即可,比如完整的请求格式可以写为${__char(2)}你的业务报文内容${__char(3)}。
  • 方案2:使用二进制客户端实现输入十六进制编码
    如果你的TCP采样器选择org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl作为客户端实现类,可以直接在请求框输入控制字符的十六进制编码+业务内容的十六进制编码,不需要额外转义。
    示例:要发送test的报文,直接输入027465737403即可,其中02是STX的十六进制编码,74657374是test的十六进制编码,03是ETX的十六进制编码。
  • 方案3:通过JSR223预处理脚本生成请求内容
    如果控制字符逻辑复杂,可添加JSR223预处理元件,用代码生成带控制字符的请求变量,示例代码如下:
    // 生成包含STX(\u0002)、业务内容、ETX(\u0003)的请求报文
    String tcpReq = "\u0002your_business_data\u0003"
    // 存入变量供采样器调用
    vars.put("tcpRequest", tcpReq)
    
    之后在TCP采样器的请求内容框直接填写${tcpRequest}即可。

配置注意事项

  • 需根据你的协议类型选择匹配的TCP客户端实现类:
    • 文本类协议优先选TCPClientImpl,配合__char函数使用
    • 二进制类协议优先选BinaryTCPClientImpl,直接输入十六进制串
  • 配置完成后可通过Wireshark抓包验证实际发送的字节流是否符合预期,避免编码转换导致控制字符偏差。

参考配置示意图

TCP采样器配置界面
控制字符配置示例

内容的提问来源于stack exchange,提问作者Prakash Ranasinghe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:57:04