使用JMeter录制内网被测应用遇DNS失败与授权问题求助
解决JMeter录制内网应用时的授权配置问题
看起来你在录制内网应用时遇到了典型的授权拦截问题——DNS失败和503响应通常是因为JMeter发出的请求没有带上应用要求的身份验证信息,导致服务器拒绝了请求。下面我给你分场景讲几种实用的配置方法,帮你搞定录制授权:
1. 用HTTP授权管理器处理基础认证(Basic/Digest)
这是内网应用最常用的认证方式,配置起来很简单:
- 找到你录制用的线程组,右键它 →
Add > Config Element > HTTP Authorization Manager - 在管理器里填写:
- Base URL:输入内网应用的根域名(比如
http://internal-app.yourcompany.com),告诉JMeter哪些请求需要附加授权信息 - Username 和 Password:填你有权限访问应用的账号密码
- Mechanism:默认选
Basic就行,如果应用用的是Digest认证,就切换成Digest
- Base URL:输入内网应用的根域名(比如
- 配置好后,录制时JMeter会自动把授权头加到所有匹配Base URL的请求里,服务器就能识别你的身份了
2. 自定义授权头(Token/API Key场景)
如果你的应用用的是Bearer Token或者自定义API Key这类认证方式:
- 先在浏览器里正常登录应用,按F12打开开发者工具,切换到Network标签,随便找一个成功的请求,复制它的
Authorization头或者自定义授权头的完整内容 - 回到JMeter,给线程组添加
HTTP Header Manager(右键线程组 →Add > Config Element > HTTP Header Manager) - 在Header Manager里新增一行:
- Name:填授权头的名称(比如
Authorization) - Value:粘贴你复制的完整值(比如
Bearer abcdef123456...)
- Name:填授权头的名称(比如
- 这样录制的所有请求都会自动带上这个授权头,绕过身份验证拦截
3. Cookie会话认证的处理
如果应用是靠登录后的Cookie维持会话的,有两种办法:
方法一:录制完整登录流程
- 启动JMeter录制器之前,确保浏览器是未登录状态
- 启动录制后,在浏览器里一步步完成登录操作(输入账号、密码、点击登录)
- JMeter会自动捕获登录请求和服务器返回的Cookie,后续录制的所有请求都会自动带上这些Cookie,保持已登录的会话状态
方法二:手动导入Cookie
- 如果你已经登录过应用,打开浏览器开发者工具的Application > Cookies,找到对应内网域名的Cookie,复制它的
Name和Value - 在JMeter里给线程组添加
HTTP Cookie Manager(右键线程组 →Add > Config Element > HTTP Cookie Manager) - 点击
Add按钮,填写Cookie的Name、Value,Domain填内网应用的域名,Path一般填/ - 这样录制时JMeter会自动携带这些Cookie,模拟已登录状态
4. 顺带解决DNS失败的小技巧
如果还有DNS解析失败的问题,可以试试这两个办法:
- 打开JMeter安装目录下的
bin/system.properties文件,添加一行dns.server=你的内网DNS服务器IP,保存后重启JMeter - 或者直接用内网应用的IP地址代替域名,完全跳过DNS解析步骤
内容的提问来源于stack exchange,提问作者Vidhi Nigam
相关产品推荐
相关产品推荐

