Web银行软件登录负载测试问题及非Basic认证识别与测试方案咨询
问题1:登录模块负载测试设计方案
- 先抓包还原真实登录流程:打开浏览器开发者工具(F12)切换到「网络」标签,正常操作登录,重点确认:
- 登录请求的方法(通常为POST)、目标URL
- 请求体中的参数(比如
username/password,还有可能的csrf_token、captcha等校验字段) - 响应返回的认证凭证(比如Session Cookie、JWT Token等)
- 替换HTTP Authorization Manager为普通HTTP请求:在JMeter中添加HTTP Request,填入抓包到的URL和请求方法,将参数(含参数化的用户名密码)按抓包结果填入「参数」或「请求体」区域。如果存在csrf token,需先添加HTTP Request请求首页,用正则表达式提取器或CSS选择器提取token,再传入登录请求。
- 正确参数化用户名密码:使用CSV Data Set Config,配置文件路径、分隔符,将用户名和密码列映射为变量(比如
${user}、${pass}),在登录请求的参数中直接引用这些变量。 - 添加有效断言验证结果:不要仅依赖响应码,添加Response Assertion,检查响应内容中是否包含「登录成功」/「登录失败」的关键词,或者响应JSON中的特定字段(比如
code:200或token存在),确保错误密码能触发失败断言。 - 解决录制问题:如果BlazeMeter录制失败,换用JMeter自带的HTTP(S) Test Script Recorder:
- 启动JMeter代理,设置端口(比如8888)
- 配置浏览器代理到JMeter的端口
- 导入JMeter的根证书到浏览器,避免HTTPS请求无法抓取
- 录制时只保留登录相关请求,过滤掉静态资源(如js、css、图片)
问题2:确认目标软件的认证类型
- 检查请求头:登录请求的请求头中如果没有
Authorization: Basic xxxxx,直接排除Basic Authentication。 - 分析登录请求与响应:
- 若登录后响应返回
Set-Cookie头,且后续请求携带该Cookie,即为Session认证(基于Cookie的会话) - 若登录响应返回JSON格式的
access_token/id_token,后续请求头携带Authorization: Bearer xxxxx,即为Token认证(常见JWT、OAuth2) - 若请求体包含
grant_type=password、client_id等参数,大概率是OAuth2 Password授权模式
- 若登录后响应返回
- 查看WWW-Authenticate响应头:部分认证类型会在未授权的响应中返回
WWW-Authenticate头,比如Bearer、Digest,可直接从该字段识别类型。 - 观察密码传输方式:抓包能看到明文密码的,是表单提交的简单认证;若密码是加密后的字符串,可能是前端做了哈希处理,或是使用了HTTPS之外的额外加密。
内容的提问来源于stack exchange,提问作者sakib rahman
相关产品推荐
相关产品推荐

