# test02 **Repository Path**: student-deng-cheng/test02 ## Basic Information - **Project Name**: test02 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-20 - **Last Updated**: 2026-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Web聊天室自动化测试项目 ## 项目简介 本项目是针对 Web 聊天室应用的自动化测试项目,使用 Selenium WebDriver + TestNG 实现,采用 Page Object Model(POM)设计模式,覆盖登录、注册、消息收发、UI元素验证等核心功能模块的自动化测试。 ## 技术栈 - **测试框架**: Selenium WebDriver 4.15.0 - **测试运行框架**: TestNG 7.8.0 - **浏览器驱动管理**: WebDriverManager 5.8.0 - **编程语言**: Java 8+ - **构建工具**: Maven - **验证码识别**: Tesseract OCR 5.8.0(可选) - **Redis 客户端**: Jedis 4.3.1(用于获取邮箱验证码) ## 项目结构 ``` Web_chatroom_test/ ├── pom.xml # Maven 配置文件 ├── README.md # 项目说明文档 ├── test/ │ ├── java/ │ │ ├── common/ # 通用工具类 │ │ │ ├── CaptchaUtil.java # 验证码处理工具 │ │ │ ├── EmailCodeUtil.java # 邮箱验证码工具 │ │ │ └── TestUtils.java # 测试工具类 │ │ └── tests/ │ │ ├── BaseTest.java # 测试基类 │ │ ├── TestConfig.java # 测试配置 │ │ ├── LoginPage.java # 登录页面对象 │ │ ├── RegisterPage.java # 注册页面对象 │ │ ├── ChatPage.java # 聊天页面对象 │ │ ├── RunTest.java # 测试运行主类 │ │ └── cases/ # 测试用例 │ │ ├── login/ │ │ │ └── LoginNormalTest.java # 登录测试 │ │ ├── register/ │ │ │ └── RegisterNormalTest.java # 注册测试 │ │ └── ui/ │ │ └── ChatPageUITest.java # UI元素测试 │ └── resources/ │ └── testng.xml # TestNG 配置文件 └── .gitignore # Git 忽略文件 ``` ## 环境要求 - **JDK**: 1.8 或更高版本 - **Maven**: 3.6 或更高版本 - **Chrome 浏览器**: 已安装 Chrome 浏览器 - **被测系统**: Web 聊天室应用运行在 `http://localhost:8080` - **数据库**: MySQL(确保测试账号已创建并互为好友) ## 配置说明 ### 1. 测试配置 在 `TestConfig.java` 中配置测试环境信息: ```java // 测试环境URL public static final String BASE_URL = "http://localhost:8080"; public static final String LOGIN_URL = BASE_URL + "/login.html"; public static final String REGISTER_URL = BASE_URL + "/register.html"; public static final String CHAT_URL = BASE_URL + "/client.html"; // 测试账号 public static final String TEST_ACCOUNT = "1378720801"; public static final String TEST_PASSWORD = "12345678"; public static final String TEST_ACCOUNT_2 = "8456329621"; public static final String TEST_PASSWORD_2 = "12345678"; ``` ### 2. 浏览器配置 项目使用 WebDriverManager 自动管理浏览器驱动,无需手动下载配置。 ## 运行方式 ### 方式一:通过 IDEA 运行 1. 打开项目,等待 Maven 依赖下载完成 2. 确保被测系统(Web 聊天室)已启动 3. 运行 `RunTest.java` 的 `main` 方法,执行所有测试用例 ### 方式二:通过 Maven 命令运行 ```bash # 进入项目目录 cd Web_chatroom_test # 运行所有测试 mvn test # 运行特定测试类 mvn test -Dtest=LoginNormalTest ``` ### 方式三:使用 TestNG XML 运行 ```bash # 运行 testng.xml 配置的所有测试 mvn test -DsuiteXmlFile=test/resources/testng.xml ``` ## 测试用例说明 ### 1. 登录模块测试 (`LoginNormalTest`) - **正常登录**: 使用正确账号、密码、验证码登录 - **错误登录**: 使用错误账号或密码登录,验证错误提示 - **空信息登录**: 账号或密码为空,验证错误提示 ### 2. 注册模块测试 (`RegisterNormalTest`) - **邮箱格式验证**: 测试邮箱格式错误(过短、过长) - **验证码验证**: 测试未发送验证码、验证码错误等场景 - **密码长度验证**: 测试密码长度不符合要求 ### 3. UI元素测试 (`ChatPageUITest`) - **点击联系人查看消息**: 验证点击联系人后跳转并显示历史记录 - **查看通讯录联系人**: 验证好友列表正常显示 - **搜索功能**: 验证搜索元素存在(功能未实现) ## 核心特性 - ✅ **Page Object Model**: 采用 POM 设计模式,提高代码可维护性 - ✅ **自动化驱动管理**: 使用 WebDriverManager 自动下载和管理浏览器驱动 - ✅ **验证码处理**: 测试模式下使用固定验证码 "123456" - ✅ **异步加载处理**: 针对 WebSocket 和 AJAX 异步加载进行了优化等待 - ✅ **测试报告**: 自动生成 TestNG 测试报告 ## 注意事项 1. **验证码处理**: 测试中使用固定验证码 "123456",实际生产环境需要 OCR 识别或临时禁用验证码验证 2. **测试数据**: 运行测试前请确保数据库中有测试账号(`1378720801`、`8456329621`)且互为好友 3. **被测系统**: 确保 Web 聊天室应用已启动并运行在 `http://localhost:8080` 4. **好友列表**: 部分测试需要好友关系数据,可运行 `add_friend_relation_only.sql` 添加测试数据 ## 测试结果 测试运行后,报告会生成在: - `test-output/` 目录(TestNG 默认输出目录) - IDEA 的 Run 窗口也会显示测试结果 ## 项目亮点 - ✅ 完整的自动化测试流程(登录 → 注册 → UI验证) - ✅ 清晰的代码结构,易于维护和扩展 - ✅ 覆盖正常流程和异常场景 - ✅ 针对 WebSocket 实时通信进行了特殊处理