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

如何使用JMeter正确录制Telegram Bot请求完成负载测试

问题根因

录制不到有效请求的核心原因:

  • JMeter HTTP(s) Test Script Recorder仅能捕获走配置代理的HTTP/HTTPS协议流量,Telegram客户端默认使用自研MTProto协议传输消息,Bot的消息交互、按钮点击等操作走长连接通道,不属于普通HTTP短请求范畴,自然不会被HTTP代理捕获。
  • 首次操作抓到的随机*.png文件是Telegram界面静态资源,首次加载后就会命中本地缓存,后续操作不会重复请求,因此之后没有任何录制记录。
  • 你看到的“仅存在单个HTTP API请求”的描述,指的是每触发一次Bot操作,最终对应一次发往Telegram Bot API接口的HTTP调用,没有多余的交互请求,不存在漏抓一堆业务请求的情况。
可行解决方案

方案1:直接构造API请求(负载测试场景首选,效率最高)

Telegram Bot所有业务交互的HTTP API格式完全固定,无需抓包即可直接编写测试脚本:

  • 所有Bot API的基础请求路径格式为 https://api.telegram.org/bot<你的Bot Token>/<方法名>
  • 不同操作对应固定方法:发送文本消息对应sendMessage、点击回调查询按钮对应answerCallbackQuery、接收更新对应getUpdates/配置webhook,参数规则可直接参考公开的Telegram Bot API说明,替换为你自身业务的实际参数(chat_id、消息内容、回调标识等)即可。
  • 直接在JMeter中添加HTTP Request采样器,填写对应域名、路径、请求方法、参数即可生成测试请求,比录制得到的脚本更干净,无冗余静态资源请求。

方案2:抓包定位实际请求参数

如果需要确认自身业务操作对应的具体请求细节,不要依赖JMeter代理录制,换用对应方式抓包:

  • 若使用网页版Telegram操作Bot:直接打开Firefox开发者工具(按F12唤起),切换到「网络」面板,筛选Fetch/XHR类型请求,操作Bot时即可看到所有发往api.telegram.org的API请求,右键可直接复制请求完整信息或cURL命令,导入JMeter即可生成对应采样器。抓包前记得勾选面板上的「禁用缓存」选项,避免缓存导致漏抓。
  • 若使用桌面端/移动端Telegram操作Bot:这类客户端默认不读取系统代理配置,需要先在Telegram自身设置中手动添加HTTP代理,指向JMeter录制代理的端口,同时将JMeter生成的根证书导入系统/客户端信任列表才能抓到HTTPS流量。更简便的方式是用Wireshark监听对应网卡流量,添加host api.telegram.org过滤规则,即可看到所有Bot相关的API请求。

脚本优化提示

  • 从开发者工具复制cURL后,可直接通过JMeter菜单栏的Tools -> Import from cURL功能一键生成HTTP采样器,无需手动逐个填写参数。
  • 压测前需要给请求添加合理的响应断言,同时对业务参数(比如chat_id、消息内容、用户标识)做参数化,模拟真实用户的操作分布。
  • 注意Telegram官方API有默认调用频率限制,压测自研Bot时需要控制请求速率,避免触发官方限流影响正常服务。

内容的提问来源于stack exchange,提问作者Ailin Mustafayeva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 10:15:37