一、功能测试(核心场景)
1. 正向流程
✅ 合法用户:正确的用户名+密码组合(区分大小写测试)
✅ 记住密码:关闭页面后重新打开是否自动填充(需结合安全测试)
✅ 登录跳转:成功登录后是否跳转至正确页面(检查URL重定向)
2. 异常流程
❌ 错误密码:连续5次错误输入是否触发锁定机制(次数可配置测试)
❌ 空输入:用户名/密码为空时点击登录的提示(前端校验还是服务端校验?)
❌ SQL注入:输入' or 1=1--等 payload 是否被拦截(安全测试必备)
3. 边界值测试
📏 超长输入:用户名/密码输入1000个字符时的处理(前端截断 or 服务端报错?)
⏳ 超时机制:登录成功后长时间不操作是否自动登出(JWT token有效期测试)
二、安全测试(黑客思维)
1. 请求分析
🔍 抓包测试:登录请求是否明文传输(必须HTTPS)
🛡️ 参数篡改:修改success=false为true能否绕过验证(响应体篡改测试)
🧩 CSRF攻击:检查是否存在随机token防护(重复提交同一请求是否有效)
2. 加密验证
🔑 密码加密:前端是否对密码做MD5/SHA256加密(防止键盘记录器)
📦 数据存储:成功登录后检查本地是否明文存储密码(Android SharedPreferences安全审计)
3. 暴力破解防护
⏱️ 频率限制:1秒内发起100次登录请求是否触发IP封禁
🤖 验证码规避:通过Burp Suite重放攻击测试(无验证码时特别重要)
三、兼容性测试(覆盖极端场景)
1. 设备维度
📱 Android/iOS:不同厂商ROM的键盘弹出机制(华为EMUI vs 小米MIUI)
🖥️ H5页面:微信内置浏览器 vs Chrome的cookie处理差异
2. 网络维度
🌐 弱网测试:模拟2000ms延迟时按钮是否防重复点击
🔌 断网恢复:输入密码后断网点击登录,恢复网络后的处理逻辑
3. 国际化测试
🈂️ 多语言输入:中文/阿拉伯文用户名是否正常提交
🕒 时区影响:JWT token生成是否依赖本地时间(时区切换测试)
四、用户体验测试(细节魔鬼)
1. 交互设计
👁️ 密码可见性:是否支持显示明文密码(符合GDPR要求)
⌨️ 键盘适配:输入密码时是否自动切换数字键盘
🚦 输入焦点:回车键是否触发登录(PC端重要体验)
2. 性能指标
⚡ 响应时间:登录请求超过3秒是否有loading提示
📉 内存泄漏:反复登录100次后内存占用曲线(Android Profiler监测)
3. 辅助功能
♿ 无障碍测试:屏幕朗读软件能否识别登录按钮
🎨 色盲模式:错误提示是否依赖颜色区分(需配合文字说明)
五、自动化测试(实战脚本示例)
python
复制
下载
# Selenium异常场景测试模板
def test_login_failure(driver):
cases = [
("admin", ""), # 空密码
("", "123456"), # 空用户名
("<script>alert(1)</script>", "pwd") # XSS测试
]
for username, pwd in cases:
driver.find_element(By.ID, "username").send_keys(username)
driver.find_element(By.ID, "password").send_keys(pwd)
driver.find_element(By.ID, "login-btn").click()
assert "用户名或密码错误" in driver.page_source
六、高阶测试建议
竞品对比:对比同类产品的登录策略(如微信的短信登录辅助)
埋点验证:检查登录成功/失败是否上报正确的BI事件
Monkey测试:随机点击登录按钮1000次观察崩溃率















暂无评论内容