聊呗(聊天系统)

聊呗


一、项目介绍

基于Websocket实现的多⽤户聊天系统,实现了⽤户注册、登 录、私聊、群聊、上下线提醒等基本功能。

1.数据库设计:

2.封装数据库操作:

  • 基础类BaseDao中封装数据源、数据库连接、关闭资源等操作
  • AccountDao继承BaseDao实现用户的注册和登陆

3.使用WebSocket实现私聊与群聊

4.客户端与服务端的通信过程

  • 用户登录,客户端与服务端建立连接,将自己的用户名与Socket保存到服务端缓存
  • 服务端保存新用户上线的信息
  • 服务端将当前在线用户信息发送给客户端
  • 服务端将新用户上线信息广播给其他用户
  • 客户端读取服务端发来的在线好友信息
  • 客户端新建一个后台线程不断读取服务端发来的消息

二、项目测试

1.单元测试:

在编码过程中使用IDEA配置JUnit对用户dao层、工具类等各个模块进行单元测试 ,验证软件最小单位的正确性。

1.功能测试:

自动化测试:使用Selenium工具+Python语言进行Web自动化测试,测试用户注册、登录、私聊、群聊等功能。

测试代码:https://github.com/BetterMe1/TestChatRoom

手工测试:

(1)注册

  • 验证用户名的长度、字符类型(公共测试用例)
  • 验证密码的长度、字符类型、密码是否在界面隐式输入(公共测试用例)
  • 用户名或密码为空时是否可以注册,是否有提示(公共测试用例)
  • 用户名和密码是否可以复制粘贴(公共测试用例)
  • 用户名、密码正确且用户没有被注册过,点击注册是否弹出注册成功提示框,并跳转到登录页面
  • 用户名或密码错误或用户已被注册,点击注册是否弹出注册失败提示框,页面不跳转
  • 连接断开时是否可以成功注册

(2)登录:       

  • 调用用户名、密码的公共测试用例验证
  • 用户名、密码正确且存在,点击登录是否弹出登录成功提示框,并跳转到聊天页面
  • 用户名或密码错误或用户不存在,点击登录是否弹出登录错误提示框,页面不跳转
  • 是否可以登录已被删除的用户
  • 是否可以多次登录同一个用户
  • 用户名、密码正确时是否可以被记住
  • 页面下方MyBlog是否可以正常单击并跳转到正确界面
  • 页面下方Github是否可以正常单击并跳转到正确界面
  • 正确登陆后所有在线好友是否收到新用户上线提醒
  • 连接断开时是否可以成功登陆

(3)聊天输入框:

  • 验证输入框输入文字的长度、字符类型
  • 输入框为空时点击发送是否可以成功发送
  • 输入框内容是否可以复制粘贴
  • 连接断开时是否可以成功发送消息

(4)群聊:

  • 发送消息是否所有在线用户都可以收到
  • 消息的显示与发送顺序是否一致

(5)私聊:

  • 聊天人员是否可以正常选择
  • 是否所有选择的人员可以收到消息,其他人员都无法收到
  • 消息的显示与发送顺序是否一致

(6)下线

  • 当有用户下线时是否剩余所有在线用户都可以收到下线通知

2.页面测试:

  • 查看页面布局、字体、颜色、是否美观等,缩放页面查看效果

3.安全性测试:

  • 登录失败是否有次数限制
  • 是否可以同时登录多个相同账号

4.易用性测试

  • 输入框使用Tab键切换
  • 输入用户名和密码按回车登录

5.性能测试:

使用LoadRunner对用户登录事务做性能测试:

300个并发用户,持续时间60s,事务通过总数265.32,平均每秒点击次数17.27
600个并发用户,持续时间60s,事务通过总数306.85,平均每秒点击次数19.13
800个并发用户,持续时间60s,事务通过总数281.56,平均每秒点击次数18.33

6.兼容性测试

  • 在Chrome、Firefox、IE等浏览器上,调用整个项目的公共测试用例测试兼容性

项目代码:https://github.com/BetterMe1/chatroom

你可能感兴趣的:(测试)