仅有输入用户名和密码和一个登录按钮,如何测试登录界面?

一、功能测试(核心场景)

1. 正向流程

✅ 合法用户:正确的用户名+密码组合(区分大小写测试)

✅ 记住密码:关闭页面后重新打开是否自动填充(需结合安全测试)

✅ 登录跳转:成功登录后是否跳转至正确页面(检查URL重定向)

2. 异常流程

❌ 错误密码:连续5次错误输入是否触发锁定机制(次数可配置测试)

❌ 空输入:用户名/密码为空时点击登录的提示(前端校验还是服务端校验?)

❌ SQL注入:输入' or 1=1--等 payload 是否被拦截(安全测试必备)

3. 边界值测试

📏 超长输入:用户名/密码输入1000个字符时的处理(前端截断 or 服务端报错?)

⏳ 超时机制:登录成功后长时间不操作是否自动登出(JWT token有效期测试)


二、安全测试(黑客思维)

1. 请求分析

🔍 抓包测试:登录请求是否明文传输(必须HTTPS)

🛡️ 参数篡改:修改success=falsetrue能否绕过验证(响应体篡改测试)

🧩 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次观察崩溃率

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容