目录1项目的测试目的2手工功能测试执行与结果2.1设计测试用例2.2 设计个人博客系统测试用例思维导图2.3 登录页面测试2.4 博客列表页面测试2.5 博客详情页面测试点击博客列表页的查看全文进入2.6 博客编辑页面测试2.6.1 发布博客测试2.7 博客退出功能测试3. 使用 Java Selenium 实现 Web 自动化测试3.1新建项目3.2安装Maven 项目 pom.xml 里的依赖配置3.2.1selenium-javaSelenium 自动化核心库3.2.2webdrivermanager浏览器驱动自动管理工具3.2.3commons-ioApache IO 工具包3.3创建common包并在包中创建Selenium 工具类Utils. java3.3.1全局成员变量3.3.2构造方法 public Utils(String url)3.3.3浏览器创建方法 createDriver() 核心初始化3.3.4截图方法 ScreenShot(String str)依赖 commons-iojava3.3.5关闭浏览器方法 quit()3.4入口类 RunTests作用3.5创建tests包并在包中创建参照测试用例编写的Java类3.5.1LoginPage 登录页面继承 Utils3.5.1.1 构造方法3.5.1.2 checkPageRight ()登录页面元素完整性校验3.5.1.3LoginSus ()正常登录正向用例3.5.1.4LoginFail ()错误密码登录反向用例3.5.2. ListPage 博客列表页面继承 Utils关键知识点3.5.3 EditPage 新建博客编辑页面继承 Utils重点细节3.5.4 DetailPage 博客详情页面继承 Utils3.5.4。1 checkDetailEdit ()详情页编辑更新博客3.5.4.2 checkDetailDel ()详情页删除博客整套代码完整业务流程串联4. 自动化测试对比手工测试特点与核心优势4.1 Java Selenium 自动化测试特点4.2 自动化测试核心优点5. Java 完整自动化测试源码仓库链接1项目的测试目的本报告基于简易个人博客系统整合手工功能测试与 JavaSelenium Web 自动化测试结果记录全流程测试执行情况、缺陷统计、自动化脚本运行数据评估系统整体质量输出版本上线验收结论为后续迭代回归提供自动化测试基准。2手工功能测试执行与结果2.1设计测试用例设计测试用例一般从功能测试界面测试性能测试兼容性测试易用性测试安全测试几个方面2.2 设计个人博客系统测试用例思维导图2.3 登录页面测试账号数据持久化存储在 MySQL仅输入匹配数据库的用户名密码才能成功跳转博客列表页。页面 UI 展示居中登录弹窗用户名、密码输入框、绿色提交按钮、注册跳转链接背景图正常渲染无错位。正向场景账号zhangsan密码123456预期点击提交自动跳转博客列表首页左侧展示用户昵称、文章统计实际页面正常跳转用户信息、已发布文章列表全部加载完成异常场景 1正确账号错误密码zhangsan / 12345预期弹窗提示「用户密码不正确」停留在登录页异常场景 2错误账号正确密码wangwu / 123456预期弹窗提示「用户不存在」异常场景 3错误账号 错误密码wangwu / 12345预期弹窗提示「用户不存在」异常场景 4用户名 / 密码全部为空直接提交预期前端校验弹窗「用户名不能为空」不发起后端请求2.4 博客列表页面测试登录成功后自动进入列表页页面分为左侧用户信息栏、右侧文章列表区、顶部导航栏。左侧栏展示用户头像、昵称、文章总数、分类数量右侧列表每篇博客展示标题、发布日期、内容摘要、「查看全文」按钮分页控件底部分页数字、上一页 / 下一页按钮校验点已登录状态文章数量与数据库一致未登录直接访问列表 URL 会强制跳转登录弹窗。2.5 博客详情页面测试点击博客列表页的查看全文进入点击列表「查看全文」携带 blogId 参数跳转详情页权限区分核心页面元素左侧用户信息右侧博客标题、发布时间、完整正文本人文章底部展示【编辑】【删除】绿色按钮权限校验当前登录用户是文章作者可读、可编辑、可删除他人发布文章隐藏编辑、删除按钮仅只读删除交互点击删除弹出确认弹窗确认后删除当前文章自动返回列表页文章总数 - 1。2.6 博客编辑页面测试顶部导航栏点击「写博客」进入富文本编辑页用于新增博客。页面组成顶部富文本工具栏、标题输入框、正文编辑区、右上角橙色「发布文章」按钮。2.6.1 发布博客测试约束规则标题、正文任意一项为空点击发布触发前端拦截提示不提交数据正向流程填写标题 正文点击发布预期自动跳转博客列表页左侧文章数量 1列表第一条展示最新发布博客实际页面正常刷新新增文章置顶展示数据库同步新增记录。2.7 博客退出功能测试页面右上角导航栏存在「注销」按钮点击注销清除浏览器 session 会话预期效果强制跳转登录页面用户名、密码输入框自动清空无缓存残留校验浏览器回退按钮无法重新进入列表、详情、编辑页面全部拦截至登录弹窗。3. 使用 Java Selenium 实现 Web 自动化测试搭建自动化环境Javaselenium webdrivermanager(驱动管理) 浏览器编写自动化代码common/-Utils. java创建驱动对象、等待、屏幕截图....tests/-LoginPage. java- ListPage. java- DetailPage. java- EditPage. java登录页面的所有用例 列表页面的所有用例 详情页面的所有用例 发布博客页面的所有用例image 存放屏幕截图3.1新建项目首先点击文件-再点击新建-再点击项目打开后在新建项目中编写好合适的项目名和自己想要创建的路径构建系统选择Maven之后点击创建就可以了3.2安装Maven 项目 pom.xml 里的依赖配置创建好后就到了这个界面之后需要安装Maven 项目 pom.xml 里的依赖配置3.2.1selenium-javaSelenium 自动化核心库作用Java 实现的 Web 自动化测试框架用来操控浏览器Chrome/Firefox/Edge 等模拟点击、输入、页面跳转、抓取网页数据做 UI 自动化、爬虫、功能测试。版本 4.0.0 是 Selenium 新版底层架构和 3.x 有较大改动。3.2.2webdrivermanager浏览器驱动自动管理工具作用解决 Selenium 传统痛点 —— 不用手动下载、配置chromedriver/geckodriver浏览器驱动。代码里一行代码就能自动识别本地浏览器版本自动下载对应驱动、配置系统环境路径。搭配 selenium-java 使用大幅简化自动化初始化代码。3.2.3commons-ioApache IO 工具包作用Apache 提供的文件 / IO 操作工具类封装大量简化文件读写、文件夹复制删除、流处理、文件遍历的工具方法。本项目用于屏幕截图3.2.4进行项目同步鼠标右键 点击Maven再点击同步项目之后可以在右侧检查依赖项是否添加3.3创建common包并在包中创建Selenium 工具类Utils. java创建包并添加合适名称common在包中创建Java类并添加合适名称UtilsSelenium 工具类Utils代码3.3.1全局成员变量java运行static WebDriver driver静态全局驱动所有地方共用同一个浏览器窗口单例思想。WebDriverWaitSelenium 显式等待精准等待元素出现比全局隐式等待更稳定。3.3.2构造方法public Utils(String url)java运行作用实例化Utils工具类时自动启动浏览器并打开指定网页同时创建等待器。3.3.3浏览器创建方法createDriver()核心初始化java运行关键功能自动管理驱动不用手动下载 chromedriverWebDriverManager 自动处理。单例浏览器只创建一次 Chrome 实例防止多开浏览器占用资源。Chrome 参数--remote-allow-origins*修复 Selenium4 高版本和 Chrome 新版本跨域报错。隐式等待 3 秒全局查找元素通用等待时长。3.3.4截图方法ScreenShot(String str)依赖 commons-iojava运行说明自动按日期分文件夹存储截图方便分类管理入参str是自定义标记比如传入 登录失败、数据页面区分截图场景。文件命名带时分秒避免同场景截图覆盖。抛出IOException调用时需要捕获或向上抛出异常。3.3.5关闭浏览器方法quit()java运行driver.quit()关闭所有窗口 结束 chromedriver 进程如果用driver.close()只会关当前标签页驱动后台残留。3.4入口类 RunTests创建并添加名称代码作用自动化测试执行入口严格按照业务流程串行跑完整业务链路登录 → 查看博客列表 → 新建发布博客 → 详情页编辑 → 详情页删除 → 关闭浏览器抛出IOException是因为截图方法需要文件 IO 异常处理InterruptedException兼容页面等待休眠。3.5创建tests包并在包中创建参照测试用例编写的Java类3.5.1LoginPage 登录页面继承 Utils3.5.1.1 构造方法java运行调用父类Utils构造器自动启动浏览器、打开登录页面、初始化等待器。3.5.1.2 checkPageRight ()登录页面元素完整性校验java运行原理findElement找不到元素会直接抛异常以此校验页面元素正常加载截图自动用方法名命名方便区分哪一步的页面快照。3.5.1.3LoginSus ()正常登录正向用例java运行3.5.1.4LoginFail ()错误密码登录反向用例java运行测试场景密码错误时弹出提示框自动化捕获并关闭弹窗。3.5.2. ListPage 博客列表页面继承 Utils核心方法checkBlogList()校验列表文章信息 跳转详情页java运行关键知识点assert断言自动化测试判断结果是否正确断言失败程序直接终止跳转后保存详情页 URLDetailPage可以直接复用这个地址不用重新拼接。3.5.3 EditPage 新建博客编辑页面继承 Utils方法editSuc()测试新建博客发布成功完整流程java运行重点细节文本编辑器CodeMirror是特殊 DOM直接sendKeys不生效必须用Actions模拟鼠标点击激活输入框再输入内容。3.5.4 DetailPage 博客详情页面继承 Utils3.5.4。1 checkDetailEdit ()详情页编辑更新博客java运行3.5.4.2 checkDetailDel ()详情页删除博客java运行整套代码完整业务流程串联启动 Chrome 浏览器Utils.createDriver打开登录页校验页面元素 → 错误密码登录弹窗→ 正确账号登录进入博客列表页校验文章标题 / 时间 / 内容 → 点击查看全文跳详情保存详情 URL打开新建博客编辑页填写动态标题、富文本内容 → 发布博客回到详情页编辑更新标题、校验修改生效 → 删除博客全部用例执行完毕关闭浏览器释放驱动4. 自动化测试对比手工测试特点与核心优势4.1 Java Selenium 自动化测试特点适合重复回归场景版本迭代后核心流程重复校验无需人工重复操作存在开发、维护成本页面前端 CSS / 按钮文字修改时需要同步更新 Java 代码中的元素定位仅覆盖标准流程复杂 UI 视觉校验、细微交互体验仍需要手工测试补充自带日志 截图留存报错自动保存页面截图快速定位失败场景依赖环境稳定测试服务器、浏览器版本变更会影响脚本执行稳定性。4.2 自动化测试核心优点分层 PO 架构解耦页面、工具、用例完全分离代码可读性高定位缺陷模块简单全局单例驱动封装统一管理浏览器实例避免重复创建驱动消耗内存提升执行速度多等待机制兼容页面渲染全局隐式等待 局部显示等待解决前端异步加载导致的元素找不到问题比人工盯守页面更稳定自动截图归档每条测试步骤留存页面快照失败场景无需复现即可分析问题批量一键回归新版本上线前一键执行全部核心流程用例短时间完成全流程校验大幅节省测试人力标准化断言校验所有预期结果通过代码断言固化不存在人工测试主观判断误差。5. Java 完整自动化测试源码仓库链接Gitee 开源仓库https://gitee.com/ma-ziy/java-automated-testing.git)
简易个人博客系统测试报告
发布时间:2026/7/9 10:55:45
目录1项目的测试目的2手工功能测试执行与结果2.1设计测试用例2.2 设计个人博客系统测试用例思维导图2.3 登录页面测试2.4 博客列表页面测试2.5 博客详情页面测试点击博客列表页的查看全文进入2.6 博客编辑页面测试2.6.1 发布博客测试2.7 博客退出功能测试3. 使用 Java Selenium 实现 Web 自动化测试3.1新建项目3.2安装Maven 项目 pom.xml 里的依赖配置3.2.1selenium-javaSelenium 自动化核心库3.2.2webdrivermanager浏览器驱动自动管理工具3.2.3commons-ioApache IO 工具包3.3创建common包并在包中创建Selenium 工具类Utils. java3.3.1全局成员变量3.3.2构造方法 public Utils(String url)3.3.3浏览器创建方法 createDriver() 核心初始化3.3.4截图方法 ScreenShot(String str)依赖 commons-iojava3.3.5关闭浏览器方法 quit()3.4入口类 RunTests作用3.5创建tests包并在包中创建参照测试用例编写的Java类3.5.1LoginPage 登录页面继承 Utils3.5.1.1 构造方法3.5.1.2 checkPageRight ()登录页面元素完整性校验3.5.1.3LoginSus ()正常登录正向用例3.5.1.4LoginFail ()错误密码登录反向用例3.5.2. ListPage 博客列表页面继承 Utils关键知识点3.5.3 EditPage 新建博客编辑页面继承 Utils重点细节3.5.4 DetailPage 博客详情页面继承 Utils3.5.4。1 checkDetailEdit ()详情页编辑更新博客3.5.4.2 checkDetailDel ()详情页删除博客整套代码完整业务流程串联4. 自动化测试对比手工测试特点与核心优势4.1 Java Selenium 自动化测试特点4.2 自动化测试核心优点5. Java 完整自动化测试源码仓库链接1项目的测试目的本报告基于简易个人博客系统整合手工功能测试与 JavaSelenium Web 自动化测试结果记录全流程测试执行情况、缺陷统计、自动化脚本运行数据评估系统整体质量输出版本上线验收结论为后续迭代回归提供自动化测试基准。2手工功能测试执行与结果2.1设计测试用例设计测试用例一般从功能测试界面测试性能测试兼容性测试易用性测试安全测试几个方面2.2 设计个人博客系统测试用例思维导图2.3 登录页面测试账号数据持久化存储在 MySQL仅输入匹配数据库的用户名密码才能成功跳转博客列表页。页面 UI 展示居中登录弹窗用户名、密码输入框、绿色提交按钮、注册跳转链接背景图正常渲染无错位。正向场景账号zhangsan密码123456预期点击提交自动跳转博客列表首页左侧展示用户昵称、文章统计实际页面正常跳转用户信息、已发布文章列表全部加载完成异常场景 1正确账号错误密码zhangsan / 12345预期弹窗提示「用户密码不正确」停留在登录页异常场景 2错误账号正确密码wangwu / 123456预期弹窗提示「用户不存在」异常场景 3错误账号 错误密码wangwu / 12345预期弹窗提示「用户不存在」异常场景 4用户名 / 密码全部为空直接提交预期前端校验弹窗「用户名不能为空」不发起后端请求2.4 博客列表页面测试登录成功后自动进入列表页页面分为左侧用户信息栏、右侧文章列表区、顶部导航栏。左侧栏展示用户头像、昵称、文章总数、分类数量右侧列表每篇博客展示标题、发布日期、内容摘要、「查看全文」按钮分页控件底部分页数字、上一页 / 下一页按钮校验点已登录状态文章数量与数据库一致未登录直接访问列表 URL 会强制跳转登录弹窗。2.5 博客详情页面测试点击博客列表页的查看全文进入点击列表「查看全文」携带 blogId 参数跳转详情页权限区分核心页面元素左侧用户信息右侧博客标题、发布时间、完整正文本人文章底部展示【编辑】【删除】绿色按钮权限校验当前登录用户是文章作者可读、可编辑、可删除他人发布文章隐藏编辑、删除按钮仅只读删除交互点击删除弹出确认弹窗确认后删除当前文章自动返回列表页文章总数 - 1。2.6 博客编辑页面测试顶部导航栏点击「写博客」进入富文本编辑页用于新增博客。页面组成顶部富文本工具栏、标题输入框、正文编辑区、右上角橙色「发布文章」按钮。2.6.1 发布博客测试约束规则标题、正文任意一项为空点击发布触发前端拦截提示不提交数据正向流程填写标题 正文点击发布预期自动跳转博客列表页左侧文章数量 1列表第一条展示最新发布博客实际页面正常刷新新增文章置顶展示数据库同步新增记录。2.7 博客退出功能测试页面右上角导航栏存在「注销」按钮点击注销清除浏览器 session 会话预期效果强制跳转登录页面用户名、密码输入框自动清空无缓存残留校验浏览器回退按钮无法重新进入列表、详情、编辑页面全部拦截至登录弹窗。3. 使用 Java Selenium 实现 Web 自动化测试搭建自动化环境Javaselenium webdrivermanager(驱动管理) 浏览器编写自动化代码common/-Utils. java创建驱动对象、等待、屏幕截图....tests/-LoginPage. java- ListPage. java- DetailPage. java- EditPage. java登录页面的所有用例 列表页面的所有用例 详情页面的所有用例 发布博客页面的所有用例image 存放屏幕截图3.1新建项目首先点击文件-再点击新建-再点击项目打开后在新建项目中编写好合适的项目名和自己想要创建的路径构建系统选择Maven之后点击创建就可以了3.2安装Maven 项目 pom.xml 里的依赖配置创建好后就到了这个界面之后需要安装Maven 项目 pom.xml 里的依赖配置3.2.1selenium-javaSelenium 自动化核心库作用Java 实现的 Web 自动化测试框架用来操控浏览器Chrome/Firefox/Edge 等模拟点击、输入、页面跳转、抓取网页数据做 UI 自动化、爬虫、功能测试。版本 4.0.0 是 Selenium 新版底层架构和 3.x 有较大改动。3.2.2webdrivermanager浏览器驱动自动管理工具作用解决 Selenium 传统痛点 —— 不用手动下载、配置chromedriver/geckodriver浏览器驱动。代码里一行代码就能自动识别本地浏览器版本自动下载对应驱动、配置系统环境路径。搭配 selenium-java 使用大幅简化自动化初始化代码。3.2.3commons-ioApache IO 工具包作用Apache 提供的文件 / IO 操作工具类封装大量简化文件读写、文件夹复制删除、流处理、文件遍历的工具方法。本项目用于屏幕截图3.2.4进行项目同步鼠标右键 点击Maven再点击同步项目之后可以在右侧检查依赖项是否添加3.3创建common包并在包中创建Selenium 工具类Utils. java创建包并添加合适名称common在包中创建Java类并添加合适名称UtilsSelenium 工具类Utils代码3.3.1全局成员变量java运行static WebDriver driver静态全局驱动所有地方共用同一个浏览器窗口单例思想。WebDriverWaitSelenium 显式等待精准等待元素出现比全局隐式等待更稳定。3.3.2构造方法public Utils(String url)java运行作用实例化Utils工具类时自动启动浏览器并打开指定网页同时创建等待器。3.3.3浏览器创建方法createDriver()核心初始化java运行关键功能自动管理驱动不用手动下载 chromedriverWebDriverManager 自动处理。单例浏览器只创建一次 Chrome 实例防止多开浏览器占用资源。Chrome 参数--remote-allow-origins*修复 Selenium4 高版本和 Chrome 新版本跨域报错。隐式等待 3 秒全局查找元素通用等待时长。3.3.4截图方法ScreenShot(String str)依赖 commons-iojava运行说明自动按日期分文件夹存储截图方便分类管理入参str是自定义标记比如传入 登录失败、数据页面区分截图场景。文件命名带时分秒避免同场景截图覆盖。抛出IOException调用时需要捕获或向上抛出异常。3.3.5关闭浏览器方法quit()java运行driver.quit()关闭所有窗口 结束 chromedriver 进程如果用driver.close()只会关当前标签页驱动后台残留。3.4入口类 RunTests创建并添加名称代码作用自动化测试执行入口严格按照业务流程串行跑完整业务链路登录 → 查看博客列表 → 新建发布博客 → 详情页编辑 → 详情页删除 → 关闭浏览器抛出IOException是因为截图方法需要文件 IO 异常处理InterruptedException兼容页面等待休眠。3.5创建tests包并在包中创建参照测试用例编写的Java类3.5.1LoginPage 登录页面继承 Utils3.5.1.1 构造方法java运行调用父类Utils构造器自动启动浏览器、打开登录页面、初始化等待器。3.5.1.2 checkPageRight ()登录页面元素完整性校验java运行原理findElement找不到元素会直接抛异常以此校验页面元素正常加载截图自动用方法名命名方便区分哪一步的页面快照。3.5.1.3LoginSus ()正常登录正向用例java运行3.5.1.4LoginFail ()错误密码登录反向用例java运行测试场景密码错误时弹出提示框自动化捕获并关闭弹窗。3.5.2. ListPage 博客列表页面继承 Utils核心方法checkBlogList()校验列表文章信息 跳转详情页java运行关键知识点assert断言自动化测试判断结果是否正确断言失败程序直接终止跳转后保存详情页 URLDetailPage可以直接复用这个地址不用重新拼接。3.5.3 EditPage 新建博客编辑页面继承 Utils方法editSuc()测试新建博客发布成功完整流程java运行重点细节文本编辑器CodeMirror是特殊 DOM直接sendKeys不生效必须用Actions模拟鼠标点击激活输入框再输入内容。3.5.4 DetailPage 博客详情页面继承 Utils3.5.4。1 checkDetailEdit ()详情页编辑更新博客java运行3.5.4.2 checkDetailDel ()详情页删除博客java运行整套代码完整业务流程串联启动 Chrome 浏览器Utils.createDriver打开登录页校验页面元素 → 错误密码登录弹窗→ 正确账号登录进入博客列表页校验文章标题 / 时间 / 内容 → 点击查看全文跳详情保存详情 URL打开新建博客编辑页填写动态标题、富文本内容 → 发布博客回到详情页编辑更新标题、校验修改生效 → 删除博客全部用例执行完毕关闭浏览器释放驱动4. 自动化测试对比手工测试特点与核心优势4.1 Java Selenium 自动化测试特点适合重复回归场景版本迭代后核心流程重复校验无需人工重复操作存在开发、维护成本页面前端 CSS / 按钮文字修改时需要同步更新 Java 代码中的元素定位仅覆盖标准流程复杂 UI 视觉校验、细微交互体验仍需要手工测试补充自带日志 截图留存报错自动保存页面截图快速定位失败场景依赖环境稳定测试服务器、浏览器版本变更会影响脚本执行稳定性。4.2 自动化测试核心优点分层 PO 架构解耦页面、工具、用例完全分离代码可读性高定位缺陷模块简单全局单例驱动封装统一管理浏览器实例避免重复创建驱动消耗内存提升执行速度多等待机制兼容页面渲染全局隐式等待 局部显示等待解决前端异步加载导致的元素找不到问题比人工盯守页面更稳定自动截图归档每条测试步骤留存页面快照失败场景无需复现即可分析问题批量一键回归新版本上线前一键执行全部核心流程用例短时间完成全流程校验大幅节省测试人力标准化断言校验所有预期结果通过代码断言固化不存在人工测试主观判断误差。5. Java 完整自动化测试源码仓库链接Gitee 开源仓库https://gitee.com/ma-ziy/java-automated-testing.git)