1.测试概述
1.1测试背景
本项目为一个网络聊天室,包含用户登录、获取用户信息等核心功能,同时涉及 WebSocket 在线消息处理及前端页面样式展示等模块。为确保系统功能的正确性、稳定性及用户体验的流畅性,需通过系统性测试验证各模块功能及整体运行效果。
1.2测试目的
-
验证系统核心功能的正确性,包括用户登录、注册、获取用户信息等功能是否按预期执行,WebSocket 在线消息处理是否准确无误。
-
检查前端页面样式及交互效果是否符合设计要求,页面过渡动画、导航栏、提示框等元素的展示和功能是否正常。
-
确保系统在不同场景下的稳定性和可靠性,例如用户并发登录、消息实时传输等场景。
-
发现并修复系统中存在的潜在缺陷和漏洞,提高系统的质量和安全性。
1.3测试环境
|----------|-----------------------------------------------------------------|
| 环境类别 | 详细信息 |
| 操作系统 | Windows 11 家庭中文版(版本号:24H2,内部版本:26080.7462) |
| 系统架构 | 64 位(基于 x64 的处理器) |
| 硬件配置 | 处理器:13th Gen Intel (R) Core (TM) i7-13620H(2.40 GHz);内存:16.0 GB |
| 设备型号 | Lenovo Legion Y700P IRH8 |
| 浏览器名称+版本 | Google Chrome 143.0.7499.170(正式版) |
| 浏览器位数 | 64位 |
| 浏览器驱动 | ChromeDriver 143.0.7499.169 |
| idea版本 | IntelliJ IDEA 2022.2.4(Ultimate Edition) |
| 自动化框架环境 | Selenium-Java:4.39.0;WebDriverManager:6.1.0;JUnit:4.9 |
2.测试计划
2.1测试用例:
2.1.1功能测试:

2.1.2页面测试:

2.1.3性能测试:

2.1.4兼容性测试:

2.1.5易用性测试:

2.1.6安全性测试:

3.手工测试:
1.模拟首次使用该网页,进入页面没有账号,点击跳转注册;

2.跳转成功,进行注册账号,首先测试错误注册,对于测试用例,使用正交法,利用工具生成对应的正交表:
|----|-----|-----|-------|----------|
| 2 | 用户名 | 密码 | 确认密码 | pairings |
| 1 | 0位 | 5位 | 与密码相同 | 3 |
| 2 | 0位 | 6位 | 与密码不同 | 3 |
| 3 | 0位 | 20位 | 空值 | 3 |
| 4 | 0位 | 21位 | 21位 | 3 |
| 5 | 1位 | 5位 | 与密码不同 | 3 |
| 6 | 1位 | 6位 | 与密码相同 | 3 |
| 7 | 1位 | 20位 | 21位 | 3 |
| 8 | 1位 | 21位 | 空值 | 3 |
| 9 | 20位 | 5位 | 空值 | 3 |
| 10 | 20位 | 6位 | 21位 | 3 |
| 11 | 20位 | 20位 | 与密码相同 | 3 |
| 12 | 20位 | 21位 | 与密码不同 | 3 |
| 13 | 21位 | 5位 | 21位 | 3 |
| 14 | 21位 | 6位 | 空值 | 3 |
| 15 | 21位 | 20位 | 与密码不同 | 3 |
| 16 | 21位 | 21位 | 与密码相同 | 3 |
3.利用得到的正交表进行注册测试:
接下来利用等价法的原理展示几个具有代表性的例子:
①存在内容为空:

②两次密码输入不一致:

③格式错误:
④注册成功,点击注册后跳转登录页面:


4.注册成功进行登录,使用等价法和边界法进行用例的设计:

①全部为空:

②全部错误:

③全部正确,进入client页面:

5.添加好友,输入用户名并点击查找,点击添加好友会有添加成功的弹窗提示:

6.若用户不存在则提示未查找到用户:

7.回到好友列表,找到指定好友,点击后自动创建并跳转到新的聊天框,发送信息查看是否可以正常发送信息:

8.登录对应好友账号查看是否收到消息:
4.自动化测试:
以页面书写测试类,然后对主要功能进行测试:
1.注册页面:
①测试注册页面能否正常加载;
②异常注册/正常注册;
③注册成功后是否能够正常登录。
2.登录页面:
①测试页面是否正常加载;
②异常登录/成功登录;
3.消息页:
①页面正常加载;
②点击好友列表中的任意好友跳转到聊天窗口;
③发送消息后对应对话框会置顶;
4.添加好友:
①页面正常加载;
②搜索用户并添加;
③用户不存在会有对应提示。
代码目录:

5.性能测试:
详细测试数据:
针对基于 WebSocket 的聊天室系统开展性能测试,验证系统在梯度并发用户访问下的核心接口(注册、登录、WebSocket 消息收发)性能表现,识别系统性能瓶颈,为系统优化提供数据支撑。
5.1测试流程:

5.2测试环境
|-------|------------------------------|
| 类别 | 配置信息 |
| 服务器 | 公网 IP:115.159.5.204,端口:8083 |
| 服务器配置 | CPU:4 核,内存:8GB,系统:Linux |
| 测试工具 | JMeter 5.6.3(含 WebSocket 插件) |
| 测试协议 | HTTP/HTTPS、WebSocket |
5.3测试场景(梯度压测)
基于SteppingThreadGroup(阶梯线程组)配置,压测流程如下:
- 初始并发:20 用户,突发 10 用户,20s 内完成启动;
- 持续运行:100 并发用户稳定运行 60s;
- 停止阶段:5s 内停止 20 用户,逐步降载。
5.4核心测试接口
|--------------|------|------|-----------------------------------|
| 接口名称 | 协议 | 请求方式 | 核心参数 |
| 注册接口 | HTTP | POST | userName、password、passwordCertain |
| 登录接口 | HTTP | POST | userName、password |
| WebSocket 连接 | WS | 长连接 | userId(登录后提取) |
| 消息收发 | WS | 双向通信 | content(消息内容) |
5.5可视化图表分析
①响应时间趋势(jp@gc - Response Times Over Time)
- 趋势描述:100 并发前响应时间稳定在 1.5s,超过 100 并发后升至 3s;
- 异常点:60s 时消息收发响应时间突增,达 4s。
②吞吐趋势(jp@gc - Transactions per Second)
- 趋势描述:50 并发时 TPS 达 60,100 并发时 TPS 降至 45;
- 瓶颈分析:TPS 随并发增加下降,存在资源瓶颈。
③活跃线程数趋势(jp@gc - Active Threads Over Time)
- 趋势描述:20s 内线程数升至 100,稳定运行 60s 无异常;
- 结论:线程组配置生效,梯度压测执行正常。