登录的测试用例设计点汇总
前端
账户名、密码、验证码 是否为空?
密码是否符合规则(特殊字符、大小写、数字、长度…)
服务端
验证码是否正确 (对应时间戳是否过期)
账户是否存在 (未注册、已注销)
密码是否正确 (记录连续输入错误次数,超过5次,账号锁定4小时。或提升验证等级,采取账号+密码+验证码+短信验证)
返回session、token
功能性用例设计点:
- 输入已注册的用户名和正确的密码,验证是否成功登录
- 输入已注册的用户名和不正确的密码,验证是否成功失败,且提示信息正确,提示:“账号或密码错误”
- 输入未注册的用户名和任意密码,验证是否登录失败,且提示信息正确,提示:“账号或密码错误”
- 使用未激活账户登录,验证是否登录失败,提示:“账号未激活”
- 使用被停用用户登录,验证是否登录失败,提示:“账号已停用”
- 用户名和密码两者都为空,验证是否登录失败,且提示信息正确,提示“账号或密码错误”
- 用户名和密码两者之一为空,验证是否登录失败,并且提示信息正确,如提示“请输入账号/请输入密码”
- 如果登录功能启用了验证码功能,在用户名和密码正确的情况下,输入正确的验证码,验证是否登录成功
- 如果登录功能启用了验证码功能,在用户名和密码正确的情况下,输入错误的验证码,验证是否登录失败,且提示信息正确,提示“验证码错误”
- 用户名和密码是否大小写敏感
- 页面上的密码框是否加密显示、或者是否需要有明暗码切换按钮
- 后台系统创建的用户第一次登录成功时,是否提示修改密码
- 忘记用户名和忘记密码的功能是否可用
- 前端页面是否根据设计需求限制用户名和密码长度
- 如果登录功能需要验证码,点击验证码图片或者点击换一张是否可以更换验证码,更换后的验证码是否可用
- 刷新页面是否会刷新验证码
- 如果验证码有时效性,需要分别时效性内和时效性外验证码的有效性
- 用户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面
- 不同级别的用户,比如管理员和普通用户,登录系统后权限是否正确
- 页面默认焦点是否定位在用户输入框中
- 快捷键Tab和Enter等,是否可以正常使用
- 为空和输入空格字符串的校验是否一致
- 使用中文键盘输入字母和使用英文键盘输入字母传入后端的字符长度是否一致
- 成功登录后的session的时效设置
- 输入栏是否设置快速删除按钮
- 用户名和密码是否支持特殊字符和中文
- 浏览器的前进后退按钮,是否有效
- 成功登出后,点击浏览器回退按钮,是否可以继续操作系统
- 需求中是否有登录时间限制,如果有验证时间限制是否有效
- 验证不同登录方式的正确性:扫码、账号密码、第三方……
- 若支持手机号+验证码登录,验证码是否有时间限制,移动设备是否可以直接获取验证码
- 操作错误提示信息是否简单明了
页面测试:
-
登录页面显示是否正常?文字和图片能否正常显示,相应的提示信息是否正确,按钮的设置和排列是否正常,页面是否简洁壮观等。
-
页面默认焦点是否定位在用户名的输入框中
-
首次登录时相应的输入框是否为空?或者如果有默认文案,当点击输入框时默认方案是否消失?
-
相应的按钮如登录、重置等,是否可用;页面的前进、后退、刷新按钮是否可用?
-
快捷键Tab,Esc,Enter 等,能否控制使用
-
兼容性测试:不同浏览器,不同操作系统,不同分辨率下界面是否正常
兼容性测试用例设计点:
- 不同浏览器下,验证登录页面的显示以及功能正确性
- 相同浏览器的不同版本下验证登录页面的显示以及功能正确性
- 不同移动设备终端的不同浏览器下,验证登录页面显示以及功能的正确性
- 不同分辨率的界面下,验证登录页面的显示以及功能正确性
安全性测试用例设计点:
- 用户密码后台存储是否加密
- 用户密码在网络传输过程中是否加密
- 密码是否具有有效期,密码有效期到期后,是否提示需要修改密码
- 不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面
- 密码输入框是否不支持复制粘贴
- 密码输入框内输入的密码是否都可以在页面源码模式下被查看
- 用户名和密码输入框分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面
- 用户名和密码输入框分别输入典型的“XSS跨站脚本攻击”字符串,验证系统行为是否被篡改,用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击)
- 连续多次登录失败的情况下,系统是否会阻止后续的尝试以应对暴力破解
- 同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性是否符合设计预期
- 同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性
- 是否可以记住密码,记住的密码保存是否加密,记住的密码是否有有效期,过了有效期后是否清空密码
- 是否支持第三方登录
- 密码的强弱性,复杂度校验
- 异地登录校验、更换设备登录校验、登陆信息异常是否考虑账户冻结停用、是否允许第三方平台存储密码
- 是否可以使用登录的api发送登录请求,并绕开验证码校验
- 是否可以用抓包工具抓到的请求包直接登录
- 截取到的token等信息,是否可以在其他终端上直接使用,绕开登录,token过期时间校验
- 登录错误后的提示是否存在安全隐患
- 登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)
- 错误登陆的次数限制(防止暴力破解)
性能压力测试的用例设计点:
单用户登录系统的响应时间是否符合"3-5-8"原则
用户数在临界点时并发登录是否还能符合"3-5-8"原则
压力:大量并发用户登录,系统的响应时间是多少?系统会出现宕机、内存泄露、cpu饱和、无法登录吗?
稳定性:系统能否处理并发用户数在临界点以内连续登录N个时的场景?
- 单用户登录的响应时间是否小于3秒
- 单用户登录时,后台请求数量是否过多
- 高并发场景下用户登录的响应时间是否小于5秒
- 高并发场景下服务端的监控指标是否符合预期
- 高集合点并发场景下,是否存在资源死锁和不合理资源等待
- 长时间大量用户连续登录和登出,服务器是否存在内存泄露
- 输入内容校验是否加入了函数防抖
其它测试:
-
连续输入3次或以上错误密码,是否被锁一定时间(如:15分钟)或者冻结账户?时间内不允许登录,超出时间点是否可以继续登录。
-
用户session过期后,重新登录是否还能重新返回这前session过期的页面?
-
用户名和密码输入框是否支持键盘快捷键?如:撤销、复制、粘贴等等
-
是否允许同名用户同时登录进行操作?考虑web和app同时登录
-
手机登录时,是否先判断网络可用?
-
手机登录时,是否先判断app存在新版本?
-
是否支持单点登录?
-
是否有埋点接口
汇总信息来源:
https://blog.csdn.net/qq_36800800/article/details/82463555
https://www.jianshu.com/p/573f1e809937
https://www.cnblogs.com/yanghj010/p/9635285.html
https://blog.csdn.net/sinat_41392571/article/details/80885242