当前位置: 首页 > news >正文

登录功能测试点

 

部分内容转载自 :http://www.cnblogs.com/puresoul/p/4593419.html

验证登录流程判断逻辑

前端

  账户名、密码、验证码 是否为空?

  密码是否符合规则(特殊字符、大小写、数字、长度..)

服务端

  验证码是否正确 (对应时间戳是否过期)

  账户是否存在 (未注册、已注销)

  密码是否正确  (记录连续输入错误次数,超过5次,账号锁定4小时。或提升验证等级,采取账号+密码+验证码+短信验证)

  返回session、token

 

 

一、基本功能测试点:

  1. 输入正确的用户名和密码登录成功
  2. 输入错误的用户名密码登录失败
  3. 用户名正确,密码错误,是否提示输入密码错误?
  4. 用户名错误,密码正常,是否提示输入用户名错误?
  5. 用户名和密码都错误,是否有相应提示?
  6. 用户名密码为空时,是否有相应提示?
  7. 如果用户未注册,提示请先注册,然后进行登录
  8. 已经注销的用户登录失败,提示信息友好?
  9. 密码框是否加密显示?
  10. 用户名是否支持中文、特殊字符?
  11. 用户名是否有长度限制?
  12. 密码是否支持中文,特殊字符?
  13. 密码是否有长度限制?
  14. 密码是否区分大小写?
  15. 密码为一些简单常用字符串时,是否提示修改?如:123456
  16. 密码存储方式?是否加密?
  17. 登录功能是否需要输入验证码?
    1. 验证码有效时间?
    2. 验证码输入错误,登录失败,提示信息是否友好?
    3. 输入过期的验证能否登录成功?
    4. 验证码是否容易识别?
    5. 验证码换一张功能是否可用?点击验证码图片是否可以更换验证码?
  18. 用户体系:比如系统分普通用户、高级用户,不同用户登录系统后可的权限不同。
  19. 如果使用第三方账号(QQ,微博账号)登录,那么第三方账号与本系统的账号体系对应关系如何保存?首次登录需要极权等

二、页面测试:

  1. 登录页面显示是否正常?文字和图片能否正常显示,相应的提示信息是否正确,按钮的设置和排列是否正常,页面是否简洁壮观等。
  2. 页面默认焦点是否定位在用户名的输入框中
  3. 首次登录时相应的输入框是否为空?或者如果有默认文案,当点击输入框时默认方案是否消失?
  4. 相应的按钮如登录、重置等,是否可用;页面的前进、后退、刷新按钮是否可用?
  5. 快捷键Tab,Esc,Enter 等,能否控制使用
  6. 兼容性测试:不同浏览器,不同操作系统,不同分辨率下界面是否正常

 、安全测试:

  1. 不登录:浏览器中直接输入登录后的地址,看是否可以直接进入
  2. 登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)
  3. 用户名和密码是否通过加密的方式,发送给Web服务器 

  4. 用户名和密码的验证,应该是用服务器端验证, 而不能单单是在客户端用javascript验证 

     

  5. 用户名和密码的输入框,应该屏蔽SQL 注入攻击 

     

  6. 用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击) 

     

  7. 错误登陆的次数限制(防止暴力破解) 

     

  8. 考虑是否支持多用户在同一机器上登录; 

     

  9. 考虑一用户在多台机器上登录

、性能测试:

  1. 单用户登录系统的响应时间是否符合"3-5-8"原则
  2. 用户数在临界点时并发登录是否还能符合"3-5-8"原则
  3. 压力:大量并发用户登录,系统的响应时间是多少?系统会出现宕机、内存泄露、cpu饱和、无法登录吗?
  4. 稳定性: 系统能否处理并发用户数在临界点以内连续登录N个时的场景?

 

、其它测试:

  1. 连续输入3次或以上错误密码,用记是否被锁一定时间(如:15分钟)?时间内不允许登录,超出时间点是否可以继续登录。
  2. 用户session过期后,重新登录是否还能重新返回这前session过期的页面?
  3. 用户名和密码输入框是事支持键盘快捷键?如:撤销、复制、粘贴等等
  4. 是否允许同名用户同时登录进行操作?考虑web和app同时登录
  5. 手机登录时,是否先判断网络可用?
  6. 手机登录时,是否先判断app存在新版本?
  7. 是否支持单点登录?
  8. 是否有埋点接口

相关文章:

  • vue项目ide(vue项目环境搭建)
  • 逆地址解析协议RARP
  • linux之history命令
  • 阿里、美团、网易、华为等十余厂秋招Java面经大合集
  • flexible.js 兼容bug修复
  • 2018.09.17python学习第五天part3
  • 2018世界人工智能大会
  • Sort Array By Parity
  • 区块链开发公司浅析区块链如何保障安全
  • [BZOJ] 2006: [NOI2010]超级钢琴
  • MTV框架和django基本命令
  • MySQL5.6 主从复制 ERROR 1776 (HY000): Parameters MASTER_LOG_FILE
  • 设计模式代理
  • [国家集训队]Crash的文明世界
  • 说说 C 语言编程利器 CLion
  • [译]CSS 居中(Center)方法大合集
  • 【Linux系统编程】快速查找errno错误码信息
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 2019.2.20 c++ 知识梳理
  • avalon2.2的VM生成过程
  • echarts花样作死的坑
  • exports和module.exports
  • JavaScript类型识别
  • java中的hashCode
  • maven工程打包jar以及java jar命令的classpath使用
  • MD5加密原理解析及OC版原理实现
  • MYSQL 的 IF 函数
  • nginx 配置多 域名 + 多 https
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • select2 取值 遍历 设置默认值
  • 入门到放弃node系列之Hello Word篇
  • 探索 JS 中的模块化
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 系统认识JavaScript正则表达式
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (离散数学)逻辑连接词
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • ***原理与防范
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .Net Redis的秒杀Dome和异步执行
  • // an array of int
  • /bin/rm: 参数列表过长"的解决办法
  • :中兴通讯为何成功
  • ;号自动换行
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)