基于SpringBoot 五子棋对战平台开展全流程质量保障工作围绕用户注册登录、实时匹配、双人对战、胜负判定、安全防护等核心业务链路完成接口自动化测试、WebSocket 通信测试、UI 自动化测试与性能压力测试。通过规范化、可复用的测试方案全面校验系统功能完整性、逻辑正确性、实时交互稳定性与高并发承载能力客观呈现系统质量状况为项目上线与持续迭代提供可靠的测试依据。一、测试核心范围本次测试围绕五子棋实时对战、公平稳定的核心定位以 “验证功能完整、对战流畅、权限安全、性能可靠” 为目标全面覆盖系统核心模块具体范围如下用户模块用户注册、用户登录等功能分场景测试。匹配模块开始/取消匹配、禁止同一账号多开等功能对战模块双玩家进入房间游戏就绪、重复落子判定、玩家中途掉线判负等功能。安全模块未登录拦截受限页面、WebSocket 未登录访问拦截等功能。非功能模块WebSocket 长连接稳定性、落子操作实时同步响应等功能具体测试范围如思维导图所示二、接口自动化测试一游戏匹配自动化测试本次针对五子棋系统匹配接口开展自动化测试基于 pytestwebsocket 技术栈构建测试脚本覆盖 WebSocket 实时匹配全业务场景实现核心流程的自动化验证。1、测试场景成功场景验证服务正常连接、用户登录后发起匹配、取消匹配的功能正确性确保开始匹配、取消匹配等核心操作可正常响应并返回预期成功结果。失败场景验证未登录状态下的权限拦截、非法指令的异常处理确保系统具备完善的身份校验与非法请求拦截能力。2、代码实现整套自动化脚本实现了可复用、可快速执行的测试能力无需人工手动操作即可完成匹配接口全场景校验高效验证接口功能完整性确保匹配业务始终符合预期逻辑。 匹配接口自动化测试 import json import pytest import websockets import requests #配置项 BASE_URL http://127.0.0.1:8080 WS_FIND_MATCH ws://127.0.0.1:8080/findMatch TEST_USER {username: zhangsan, password: 123456} # 登录 def login(): session requests.Session() resp session.post(f{BASE_URL}/login, dataTEST_USER) assert resp.status_code 200 return session # 成功场景 pytest.mark.asyncio class TestMatchSuccess: # 确认服务启动 async def test_connect_success(self): async with websockets.connect(WS_FIND_MATCH): assert True # 登录后匹配 async def test_start_match_success(self): session login() cookies session.cookies.get_dict() cookie_header ; .join([f{k}{v} for k, v in cookies.items()]) async with websockets.connect( WS_FIND_MATCH, additional_headers{Cookie: cookie_header} ) as ws: await ws.send(json.dumps({message: startMatch})) res await ws.recv() data json.loads(res) assert data[ok] is True assert data[message] startMatch #先开始匹配再取消匹配 async def test_stop_match_success(self): session login() cookies session.cookies.get_dict() cookie_header ; .join([f{k}{v} for k, v in cookies.items()]) async with websockets.connect( WS_FIND_MATCH, additional_headers{Cookie: cookie_header} ) as ws: await ws.send(json.dumps({message: startMatch})) await ws.recv() await ws.send(json.dumps({message: stopMatch})) res await ws.recv() data json.loads(res) assert data[ok] is True assert data[message] stopMatch #失败场景 pytest.mark.asyncio class TestMatchFail: # 未登录 async def test_fail_unauthorized(self): async with websockets.connect(WS_FIND_MATCH) as ws: await ws.send(json.dumps({message: startMatch})) res await ws.recv() data json.loads(res) assert data[ok] is False assert 未登录 in data[reason] or 请先登录 in data[reason] # 发送非法消息 async def test_fail_invalid_message(self): session login() cookies session.cookies.get_dict() cookie_header ; .join([f{k}{v} for k, v in cookies.items()]) async with websockets.connect( WS_FIND_MATCH, additional_headers{Cookie: cookie_header} ) as ws: await ws.send(json.dumps({message: asfdsgafg})) res await ws.recv() data json.loads(res) assert data[ok] is False三、UI自动化测试一登录游戏匹配对战自动化测试基于Selenium pytest技术栈搭建自动化测试框架通过脚本自动启动两个独立浏览器实例分别模拟玩家 A 和玩家 B 执行完整操作流程对系统核心业务流程进行端到端的自动化验证。1、代码实现import time import pytest from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from utils.request_util import host, Request BASE_URL http://127.0.0.1:8080 # 测试账号 USER_A {username: zhangsan, password: 123456} USER_B {username: lisi, password: 123456} def login_and_match(driver, user): driver.get(BASE_URL /login.html) time.sleep(0.5) # 输入账号密码 driver.find_element(By.ID, login-account).send_keys(user[username]) driver.find_element(By.ID, login-password).send_keys(user[password]) driver.find_element(By.ID, btn-login).click() # 等待进入大厅 WebDriverWait(driver, 5).until( EC.url_contains(/game_hall.html) ) time.sleep(1) # 点击开始匹配 driver.find_element(By.ID, match-button).click() time.sleep(0.5) def test_match(): #启动第一个浏览器 driver1 webdriver.Chrome() driver1.maximize_window() #启动第二个浏览器 driver2 webdriver.Chrome() driver2.maximize_window() try: login_and_match(driver1, USER_A) login_and_match(driver2, USER_B) # 等待匹配成功进入游戏房间 WebDriverWait(driver1, 20).until( EC.url_contains(/game_room.html) ) WebDriverWait(driver2, 20).until( EC.url_contains(/game_room.html) ) finally: time.sleep(3) driver1.quit() # 玩家一退出玩家二胜利 driver2.quit() if __name__ __main__: test_match()四、性能测试一登录功能压力测试本次性能测试针对五子棋系统 HTTP 接口分别模拟 20 并发、50 并发、100 并发场景开展压力测试从响应时间、吞吐量、错误率三个维度验证系统在不同负载下的性能表现测试结果如下关键指标分析响应时间表现在 20~100 并发压力下系统响应表现稳定优异平均响应时间始终维持在 7-8ms中位数与平均值高度接近95% 分位延迟不超过 11ms仅 100 并发场景下极个别请求受资源调度影响最大延迟升至 63ms但整体无明显性能劣化完全满足低延迟对战需求。吞吐量表现随着并发数从 20 提升至 100系统吞吐量稳定在 5.0-5.3/sec 区间无明显下降说明系统在当前负载下未出现性能瓶颈请求处理能力保持稳定能够支撑预期用户规模的访问。五、总结本次围绕五子棋对战平台开展了全流程质量保障工作通过接口自动化测试、UI 自动化测试、性能压力测试三大维度完成了系统核心业务链路的全面验证。在功能层面接口自动化测试覆盖了匹配服务的正常与异常场景验证了 WebSocket 通信的正确性、权限拦截有效性与消息交互稳定性UI 自动化测试通过双浏览器模拟用户操作完整验证了从登录、匹配到进入游戏房间的端到端流程保障了前端交互与业务流程的可用性。在性能层面压力测试结果表明系统在 20~100 并发场景下平均响应时间稳定在 7-8ms吞吐量维持在 5.0/sec 左右错误率为 0整体表现优异能够支撑预期用户规模的低延迟对战需求。综合来看本次测试全面校验了系统的功能完整性、逻辑正确性、交互稳定性与并发承载能力所有核心业务场景均通过验证系统质量符合设计目标为项目上线与后续迭代提供了可靠的质量依据。