如何在JMeter中录制非Http/Https类型的弹窗请求
JMeter非HTTP/HTTPS弹窗请求录制解决方案
JMeter默认自带的HTTP(S) Test Script Recorder仅支持捕获走代理的HTTP/HTTPS协议请求,非HTTP/HTTPS协议的弹窗交互本身就不在它的捕获范围内,可按以下步骤处理:
- 第一步:先确认弹窗交互的实际协议
打开浏览器开发者工具(按F12唤起)切到网络面板,筛选展示所有类型流量,确认弹窗触发时的请求类型;如果开发者工具抓不到,就用Wireshark监听当前使用的网卡流量,定位弹窗触发时段的数据包,确认交互用的是WebSocket、FTP、自定义TCP/UDP还是其他协议,同时记录对应的服务端地址、端口、报文结构、交互时序。 - 第二步:根据协议类型选择对应处理方式
- 如果是WebSocket协议:打开JMeter的Plugins Manager,搜索安装
WebSocket Samplers by Peter Doornbosch插件,安装完成后既可以用插件自带的录制功能捕获WebSocket流量,也可以对照抓包拿到的报文参数,手动添加WebSocket Sampler编写请求。 - 如果是FTP、JDBC、SMTP这类JMeter原生已经支持的标准协议:不需要额外录制,直接在线程组下添加对应协议的Sampler,对照抓包拿到的连接信息、请求参数填写配置即可。
- 如果是自定义TCP/UDP私有协议,或者是本地插件/ActiveX控件唤起的系统级弹窗(这类交互根本不经过浏览器代理,JMeter代理模式天然抓不到):没有一键录制的方案,要么通过Wireshark抓全量交互报文,拆解清楚报文规则后用TCP Sampler或者自定义Java请求Sampler手动构造请求;如果这部分弹窗交互不属于压测范围,也可以直接Mock掉这部分逻辑,跳过非HTTP环节的脚本构建。
- 如果是WebSocket协议:打开JMeter的Plugins Manager,搜索安装
注意:不要浪费时间调整HTTP录制组件的端口、过滤规则、代理配置尝试捕获非HTTP流量,这类配置只对HTTP/HTTPS协议生效,对其他协议没有作用。
内容的提问来源于stack exchange,提问作者Ganesh Pethkar
相关产品推荐
相关产品推荐

