尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

简易个人博客系统测试报告

简易个人博客系统测试报告
📅 发布时间:2026/7/9 10:56:43

目录

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-java(Selenium 自动化核心库)

3.2.2webdrivermanager(浏览器驱动自动管理工具)

3.2.3commons-io(Apache IO 工具包)

3.3创建common包并在包中创建Selenium 工具类Utils. java

3.3.1全局成员变量

3.3.2构造方法 public Utils(String url)

3.3.3浏览器创建方法 createDriver() 核心初始化

3.3.4截图方法 ScreenShot(String str)(依赖 commons-io)

java

3.3.5关闭浏览器方法 quit()

3.4入口类 RunTests

作用:

3.5创建tests包并在包中创建参照测试用例编写的Java类

3.5.1LoginPage 登录页面(继承 Utils)

3.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 博客详情页面(继承 Utils)

3.5.4。1 checkDetailEdit ():详情页编辑更新博客

3.5.4.2 checkDetailDel ():详情页删除博客

整套代码完整业务流程串联

4. 自动化测试对比手工测试:特点与核心优势

4.1 Java Selenium 自动化测试特点

4.2 自动化测试核心优点

5. Java 完整自动化测试源码仓库链接


1项目的测试目的

本报告基于简易个人博客系统,整合手工功能测试与 Java+Selenium Web 自动化测试结果,记录全流程测试执行情况、缺陷统计、自动化脚本运行数据,评估系统整体质量,输出版本上线验收结论,为后续迭代回归提供自动化测试基准。

2手工功能测试执行与结果

2.1设计测试用例

设计测试用例一般从功能测试+界面测试+性能测试+兼容性测试+易用性测试+安全测试几个方面

2.2 设计个人博客系统测试用例思维导图

2.3 登录页面测试

账号数据持久化存储在 MySQL,仅输入匹配数据库的用户名密码,才能成功跳转博客列表页。

  1. 页面 UI 展示:居中登录弹窗,用户名、密码输入框、绿色提交按钮、注册跳转链接,背景图正常渲染无错位。
  2. 正向场景:账号zhangsan,密码123456
    • 预期:点击提交,自动跳转博客列表首页,左侧展示用户昵称、文章统计
    • 实际:页面正常跳转,用户信息、已发布文章列表全部加载完成
  3. 异常场景 1:正确账号,错误密码(zhangsan / 12345)
    • 预期:弹窗提示「用户密码不正确」,停留在登录页
  4. 异常场景 2:错误账号,正确密码(wangwu / 123456)
    • 预期:弹窗提示「用户不存在」
  5. 异常场景 3:错误账号 + 错误密码(wangwu / 12345)
    • 预期:弹窗提示「用户不存在」
  6. 异常场景 4:用户名 / 密码全部为空直接提交
    • 预期:前端校验弹窗「用户名不能为空」,不发起后端请求

2.4 博客列表页面测试

登录成功后自动进入列表页,页面分为左侧用户信息栏、右侧文章列表区、顶部导航栏。

  1. 左侧栏:展示用户头像、昵称、文章总数、分类数量;
  2. 右侧列表:每篇博客展示标题、发布日期、内容摘要、「查看全文」按钮;
  3. 分页控件:底部分页数字、上一页 / 下一页按钮;
  4. 校验点:已登录状态文章数量与数据库一致;未登录直接访问列表 URL 会强制跳转登录弹窗。

2.5 博客详情页面测试(点击博客列表页的查看全文进入)

点击列表「查看全文」携带 blogId 参数跳转详情页,权限区分核心:

  1. 页面元素:左侧用户信息,右侧博客标题、发布时间、完整正文;本人文章底部展示【编辑】【删除】绿色按钮;
  2. 权限校验:当前登录用户是文章作者:可读、可编辑、可删除;他人发布文章,隐藏编辑、删除按钮,仅只读;
  3. 删除交互:点击删除弹出确认弹窗,确认后删除当前文章,自动返回列表页,文章总数 - 1。

2.6 博客编辑页面测试

顶部导航栏点击「写博客」进入富文本编辑页,用于新增博客。页面组成:顶部富文本工具栏、标题输入框、正文编辑区、右上角橙色「发布文章」按钮。

2.6.1 发布博客测试

  1. 约束规则:标题、正文任意一项为空,点击发布触发前端拦截提示,不提交数据;
  2. 正向流程:填写标题 + 正文,点击发布;
    • 预期:自动跳转博客列表页,左侧文章数量 + 1,列表第一条展示最新发布博客;
    • 实际:页面正常刷新,新增文章置顶展示,数据库同步新增记录。

2.7 博客退出功能测试

页面右上角导航栏存在「注销」按钮:

  1. 点击注销,清除浏览器 session 会话;
  2. 预期效果:强制跳转登录页面,用户名、密码输入框自动清空,无缓存残留;
  3. 校验:浏览器回退按钮无法重新进入列表、详情、编辑页面,全部拦截至登录弹窗。

3. 使用 Java Selenium 实现 Web 自动化测试

搭建自动化环境

Java+selenium + 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-java(Selenium 自动化核心库)

作用:Java 实现的 Web 自动化测试框架,用来操控浏览器(Chrome/Firefox/Edge 等),模拟点击、输入、页面跳转、抓取网页数据,做 UI 自动化、爬虫、功能测试。

版本 4.0.0 是 Selenium 新版,底层架构和 3.x 有较大改动。

3.2.2webdrivermanager(浏览器驱动自动管理工具)

作用:解决 Selenium 传统痛点 —— 不用手动下载、配置chromedriver/geckodriver浏览器驱动。代码里一行代码就能自动识别本地浏览器版本,自动下载对应驱动、配置系统环境路径。

搭配 selenium-java 使用,大幅简化自动化初始化代码。

3.2.3commons-io(Apache IO 工具包)

作用:Apache 提供的文件 / IO 操作工具类,封装大量简化文件读写、文件夹复制删除、流处理、文件遍历的工具方法。

本项目用于屏幕截图

3.2.4进行项目同步

鼠标右键 点击Maven再点击同步项目,之后可以在右侧检查依赖项是否添加

3.3创建common包并在包中创建Selenium 工具类Utils. java

创建包并添加合适名称common

在包中创建Java类并添加合适名称Utils

Selenium 工具类Utils

代码:

3.3.1全局成员变量

java

运行

  • static WebDriver driver:静态全局驱动,所有地方共用同一个浏览器窗口,单例思想。
  • WebDriverWait:Selenium 显式等待,精准等待元素出现,比全局隐式等待更稳定。

3.3.2构造方法public Utils(String url)

java

运行

作用:实例化Utils工具类时,自动启动浏览器并打开指定网页,同时创建等待器。

3.3.3浏览器创建方法createDriver()核心初始化

java

运行

关键功能:

  1. 自动管理驱动:不用手动下载 chromedriver,WebDriverManager 自动处理。
  2. 单例浏览器:只创建一次 Chrome 实例,防止多开浏览器占用资源。
  3. Chrome 参数--remote-allow-origins=*:修复 Selenium4 高版本和 Chrome 新版本跨域报错。
  4. 隐式等待 3 秒:全局查找元素通用等待时长。

3.3.4截图方法ScreenShot(String str)(依赖 commons-io)

java

运行

说明:

  1. 自动按日期分文件夹存储截图,方便分类管理
  2. 入参str是自定义标记(比如传入 "登录失败"、"数据页面",区分截图场景)。
  3. 文件命名带时分秒,避免同场景截图覆盖。
  4. 抛出IOException,调用时需要捕获或向上抛出异常。

3.3.5关闭浏览器方法quit()

java

运行

  • driver.quit():关闭所有窗口 + 结束 chromedriver 进程;
  • 如果用driver.close()只会关当前标签页,驱动后台残留。

3.4入口类 RunTests

创建并添加名称

代码:

作用:

自动化测试执行入口,严格按照业务流程串行跑完整业务链路:登录 → 查看博客列表 → 新建发布博客 → 详情页编辑 → 详情页删除 → 关闭浏览器抛出IOException是因为截图方法需要文件 IO 异常处理,InterruptedException兼容页面等待休眠。

3.5创建tests包并在包中创建参照测试用例编写的Java类

3.5.1LoginPage 登录页面(继承 Utils)

3.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断言:自动化测试判断结果是否正确,断言失败程序直接终止;
  • 跳转后保存详情页 URL,DetailPage可以直接复用这个地址,不用重新拼接。

3.5.3 EditPage 新建博客编辑页面(继承 Utils)

方法editSuc():测试新建博客发布成功完整流程

java

运行

重点细节

文本编辑器(CodeMirror)是特殊 DOM,直接sendKeys不生效,必须用Actions模拟鼠标点击激活输入框再输入内容。


3.5.4 DetailPage 博客详情页面(继承 Utils)

3.5.4。1 checkDetailEdit ():详情页编辑更新博客

java

运行

3.5.4.2 checkDetailDel ():详情页删除博客

java

运行


整套代码完整业务流程串联

  1. 启动 Chrome 浏览器(Utils.createDriver)
  2. 打开登录页:校验页面元素 → 错误密码登录(弹窗)→ 正确账号登录
  3. 进入博客列表页:校验文章标题 / 时间 / 内容 → 点击查看全文跳详情,保存详情 URL
  4. 打开新建博客编辑页:填写动态标题、富文本内容 → 发布博客
  5. 回到详情页:编辑更新标题、校验修改生效 → 删除博客
  6. 全部用例执行完毕,关闭浏览器释放驱动

4. 自动化测试对比手工测试:特点与核心优势

4.1 Java Selenium 自动化测试特点

  1. 适合重复回归场景:版本迭代后核心流程重复校验无需人工重复操作;
  2. 存在开发、维护成本:页面前端 CSS / 按钮文字修改时,需要同步更新 Java 代码中的元素定位;
  3. 仅覆盖标准流程:复杂 UI 视觉校验、细微交互体验仍需要手工测试补充;
  4. 自带日志 + 截图留存:报错自动保存页面截图,快速定位失败场景;
  5. 依赖环境稳定:测试服务器、浏览器版本变更会影响脚本执行稳定性。

4.2 自动化测试核心优点

  1. 分层 PO 架构解耦:页面、工具、用例完全分离,代码可读性高,定位缺陷模块简单;
  2. 全局单例驱动封装:统一管理浏览器实例,避免重复创建驱动消耗内存,提升执行速度;
  3. 多等待机制兼容页面渲染:全局隐式等待 + 局部显示等待,解决前端异步加载导致的元素找不到问题,比人工盯守页面更稳定;
  4. 自动截图归档:每条测试步骤留存页面快照,失败场景无需复现即可分析问题;
  5. 批量一键回归:新版本上线前一键执行全部核心流程用例,短时间完成全流程校验,大幅节省测试人力;
  6. 标准化断言校验:所有预期结果通过代码断言固化,不存在人工测试主观判断误差。

5. Java 完整自动化测试源码仓库链接

Gitee 开源仓库(https://gitee.com/ma-ziy/java-automated-testing.git)

相关新闻

  • 10分钟玩转QMK Toolbox:机械键盘固件刷写终极指南
  • 2026年AI智习室与普通智习室核心差异深度拆解:技术、实测与中立选型指南
  • 如何为你的数字图书馆自动填充图书信息:Calibre豆瓣插件深度解析

最新新闻

  • 提取word所有图片至特定文件夹-宏命令
  • APP开发公司哪家好?2026年外包供应商分类对比与D-coding选型观察
  • 2026 湖南工程职称指导服务流程解析 | 从诊断到答辩,透明可查
  • 2026最新CC-Switch配置DeepSeek安装包下载安装教程,完美适配Codex本地调用
  • 【AI逆向】APT组织“蔓灵花”某恶意样本分析报告
  • Awoo Installer:Switch游戏安装终极指南 - 简单三步搞定NSP/XCI格式

日新闻

  • SQL 查询语句的标准逻辑执行顺序(即语义处理顺序),它与实际书写顺序不同,但决定了数据库如何解析和执行查询
  • ORB-SLAM2 重定位模块深度解析:从 BoW 候选帧到 PnP 优化的 6 步流程
  • 罗技鼠标宏压枪脚本终极指南:从原理到实战的完整解析

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号