OnlineChat项目测试报告
一、项目背景
1.1 测试目标及测试任务的概括
本次测试的目标是确保网页聊天室项目功能的完整性、性能的稳定性,确保其能够顺利部署并满足预期的业务需求。具体的测试任务包括以下几个方面:
- 功能测试: 用户模块:用户的注册和登录。
- 主页面模块:实现聊天界面的主界面布局和样式。
- 好友管理模块:针对每个用户都具有哪些好友进行组织管理。
- 会话管理模块:针对每个用戶涉及到的聊天会话进行组织管理。
- 消息传输模块:实现消息转发功能。
- 用户界面测试:评估项目的UI是否友好,操作流程是否简便,设计是否符合用户习
- 稳定性测试:对系统进行长时间的持续使用,检测聊天室是否存在崩溃、卡顿等问题。
- 接口测试:确保项目与后端服务、数据库、第三方API接口的交互正确性。
- 安全性测试:检测系统的安全性,防止可能的漏洞攻击,如数据泄露、权限问题等。
1.2 被测的系统,代码以及文档等信息
- 系统名称:onlineChat项目
- 项目源码:https://gitee.com/miwenwen/chatroom/tree/master/chatroom
- 系统功能:用户的登录,注册,聊天主界面的布局和样式,好友管理,会话管理,消息的转发
- 技术栈:spring + springBoot + springMVC + JDK8
数据库:Mybatis + MySQL
实现服务器给客户端推送消息:WebSocket
二、测试安排
2.1 测试用例设计
2.2 测试方案设计
- 手动测试:主要对用户操作流程、界面显示、功能是否按预期运行进行手动测试。
- 自动化测试:使用测试工具(如Selenium、Junit)对核心功能进行自动化测试,提高测试效率。
- 性能测试:使用测试工具(jmeter)进行简单的性能测试
三、测试分类
3.1 测试方案
3.1.1 功能测试
对上述编写的测试用例进行测试
功能测试结果:测试用例100%通过
3.1.2 自动化测试
- 通过selenium和junit自动化测试工具对代码的核心功能进行自动化测试
- 自动化测试覆盖模块:登录,注册,聊天主界面,会话管理,用户管理,发送消息
- 自动化测试代码示例
https://gitee.com/miwenwen/chatroom/tree/master/Test02
自动化测试结果:测试用例100%通过
3.1.3 性能测试
使用jmeter进行简单的性能测试:包括登录,列表页面,上传音乐,收藏音乐等接口进行测试
-
添加线程组
压测场景中,通常为是⼀点的逐步增加线程数,因此这里添加SteppingThreadGroup,可以逐步增加线程的负载,逐步启动线程。这里我们添加20个线程,
-
设置HTTP请求默认值
项目中涉及到的接口协议、IP、端⼝号全都⼀样,可以单独抽取出来存放在默认值中,其他接⼝就可 以省略不写协议、IP、端⼝号
-
添加登录接口
为了使登录有更多的用户数据可以测试,可以使用SCV数据配置作为登录接口的参数
-
添加注册接口
-
添加获取会话列表接口
因为我们对列表页等页面添加了拦截器的功能,所以这里要设置cookie -
添加获取好友列表接口
-
添加获取会话消息列表接口
3.2测试结果
-
聚合报告
从聚合报告可以看到性能测试过程中整体的数据变化
-
ResponseTimesOverTime
- 事务类型:
- 图中显示了五种类型的事务:注册请求(绿色)、登录请求(红色)、获取会话列表(紫色)、获取会话的消息列表(青色)和获取好友列表(棕色)。
- 响应时间趋势:
- 在测试的大部分时间内,除了登录请求(红色)外,其他事务的响应时间都相对较低且稳定。这表明这些操作在正常负载下系统能够快速响应。
- 性能波动:
- 登录请求(红色)在测试的最后阶段出现了显著的响应时间峰值,这可能是由于系统在高负载下处理登录请求时遇到了性能瓶颈。
- 获取会话的消息列表(青色)在测试结束前也有一个较高的峰值,这可能表明在高负载下,这个操作的性能受到了影响。
- 系统稳定性:
- 除了最后阶段的峰值外,系统的响应时间整体上是稳定的,这表明系统在大多数情况下能够提供稳定的服务。
- 优化建议:
- 对于登录请求,可以考虑优化认证过程,比如使用更高效的认证机制或增加缓存来减少数据库的负载。
- 对于获取会话的消息列表,可能需要优化数据检索和传输过程,减少数据量或提高数据压缩效率。
- TransactionsperSecond(TPS)
- 事务类型:
- 图中显示了五种类型的事务:注册请求(success)(浅蓝色)、登录请求(success)(红色)、获取会话列表(success)(绿色)、获取会话的消息列表(success)(棕色)和获取好友列表(success)(深蓝色)。
- 事务数量:
- 每种事务的折线图显示了每秒的事务数量。从图中可以看出,登录请求和获取会话列表的事务数量相对较高,而注册请求和获取好友列表的事务数量相对较低。
- 性能趋势:
- 在测试的初期,所有事务的事务数量都有一个快速的增长,这可能是由于测试开始时用户并发增加导致的。
- 在大约00:00:15之后,事务数量趋于稳定,这表明系统在处理这些操作时达到了一个相对稳定的状态。
- 系统稳定性:
- 在测试的后期,事务数量的波动较小,这表明系统在高负载下能够保持相对稳定。
性能测试报告