目录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)
如何为你的数字图书馆自动填充图书信息:Calibre豆瓣插件深度解析 如何为你的数字图书馆自动填充图书信息:Calibre豆瓣插件深度解析 【免费下载链接】calibre-douban Calibre new douban metadata source plugin. Douban no longer provides book APIs to the public, so it can only use web crawling to obtain data. This is a c…
DLSS Swapper终极指南:三步快速提升游戏性能的免费工具 DLSS Swapper终极指南:三步快速提升游戏性能的免费工具 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在为游戏卡顿、帧率不稳定而烦恼吗?想提升游戏性能却不知道从何下手?DLSS S…
终极指南:5步掌握网易游戏NPK资源文件解包技术 终极指南:5步掌握网易游戏NPK资源文件解包技术 【免费下载链接】unnpk 解包网易游戏NeoX引擎NPK文件,如阴阳师、魔法禁书目录。 项目地址: https://gitcode.com/gh_mirrors/un/unnpk 想要探索《阴阳师》、《魔法禁书目录》等网易游戏的精美资源却…
计算机毕业设计之课堂教学管理系统设计与实现 按照章程自主开展课堂教学管理系统,课堂教学管理是实施素质教育的重要途径和有效方式,在加强校园文化建设、提高学生综合素质、引导学生适应社会、促进学生成才就业等方面发挥着重要作用,是新形势下有效凝聚学生、开展课堂教学管理系统提高学…
ASP.NET硬编码MachineKey漏洞剖析:从ViewState安全到RCE防御实战 1. 项目概述:一次由“信任”引发的安全崩塌最近在分析一些企业级文件共享与同步解决方案的安全事件时,一个典型的案例引起了我的高度关注:针对 Gladinet CentreStack 及其商业版本 Triofox 的攻击活动。这个案例之所以典型,是因为…
2026云手机性价比盘点 低价高配实测避坑全攻略 2026年时的云手机市场,已并非仅仅“能用就行”的初级阶段了。依据行业数据所显示的情况,国内云手机市场的规模,已然突破了120亿元。对于那些有着长期托管以及多开挂机需求的用户来讲,选择云手机,早就不是去看谁家的广告打得响度高,而是要比较谁家的ARM原生虚拟化做得坚固、离线…
还在为网盘限速烦恼吗?八大网盘直链解析神器完全免费使用指南 还在为网盘限速烦恼吗?八大网盘直链解析神器完全免费使用指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…
2026 湖南工程职称指导服务流程解析 | 从诊断到答辩,透明可查 一套完整的职称申报指导服务周期通常 6—12 个月,覆盖论文规划、继续教育、全套材料打磨、线上系统填报、答辩全阶段,所有规划内容均提前明确时间节点,让申报人清晰掌握各阶段准备重点,避免遗漏事项。 2026 年度湖南省工程系列职称…
Unity WebGL部署Apache Tomcat:MIME配置、Gzip压缩与缓存优化实战 1. 项目概述:当Unity WebGL遇上Apache Tomcat如果你是一名Unity开发者,想把精心制作的WebGL游戏或应用部署到自己的服务器上,那么Apache Tomcat大概率是你绕不开的一环。这不仅仅是把一堆构建出来的文件扔进一个文件夹那么简单。我见过太多项…
掌握Docker多阶段构建镜像优化技巧 掌握Docker多阶段构建镜像优化技巧在容器化技术日益普及的今天,Docker已成为开发与运维领域的基石工具。然而,随着应用复杂度提升,构建出的Docker镜像体积庞大、层数繁多、安全性欠佳等问题逐渐凸显,直接影响着部署效率、传输速度…
Ansible的AWX与作业模板调度 在当今快速迭代的IT运维与开发领域,自动化已成为提升效率、保障一致性的核心支柱。Ansible作为一款强大的IT自动化工具,以其无代理、简单易用的特点广受欢迎。而AWX,作为Ansible上游项目提供的企业级Web界面、API及任务引擎,则将A…
3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾为Windows右键菜单中那些…
GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复 如果你正在用 GXDE OS 或者任何基于 Deepin 的发行版,并且遇到了“检测到窗口系统采用 Wayland 协议,程序即将退出”这类弹窗,或者发现 VMware Tools 在 Ubuntu 24.04 这类默认 Wayland 的系统上启动失败,那这篇文章就是为你准备的…
企业AI落地困境与AgenticOps实践指南 1. 企业AI落地的现实困境与破局之道过去两年,大模型技术呈现爆发式增长,从GPT-3到GPT-4,从LLaMA到DeepSeek,模型参数规模从百亿级跃升至万亿级,多模态能力从单一文本扩展到图文音视频的综合处理。然而在企业应用层面&a…
[C++]内存管理:串顺序存储的内存回收 在串(字符串)的顺序存储中,内存回收的方式取决于字符串的存储方式以及所使用的编程语言和相关库。以下以 C 为例进行说明,因为 C 对内存管理有较为直接的控制。 1. 基于 char 数组的串顺序存储 如果使用普通的 char 数组来存储字…
移动端游戏功耗测试实战:电流、功率、亮度和场景对比 移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建 本文是“足球口袋教练 HarmonyOS 离线应用实战”系列第 3 篇。示例项目是一个 HarmonyOS / ArkTS / ArkUI 编写的离线足球训练助手,围绕真实页面、真实截图和可复现操作展开。 本篇要解决的问题 训练 App 的首页不能只展示欢迎语,它要解决“我现在该点哪…