【项目实战】博客系统完整测试报告(含自动化+性能测试)

1.项目背景

本个人博客系统采用前后端分离架构开发,结合数据库存储业务数据,并部署于云服务器运行。系统前端由登录页、列表页、详情页、编辑页 4 个核心页面构成,模拟实现了轻量化个人博客的基础能力,配合后端完成了用户登录、博客编辑、账号注销、博客删除、强制登录等核心功能,可满足个人用户简单的博客记录需求,支持查看博客的发布时间、标题、内容、发布者等完整信息。

同时,项目当前存在部分功能限制:

  1. 未设计用户自主注册功能,需提前在数据库中录入用户信息,完成账号校验后才可登录;
  2. 用户头像为前端静态配置,不支持用户自定义修改;
  3. 个人信息栏的文章数、分类数为前端静态展示,未实现后端动态统计逻辑。

2. 项目功能

本个人博客系统核心功能如下,一目了然:

2.1. 登录 / 注销功能

  • 登录:账号密码预存于数据库,无注册功能,登录成功后跳转博客列表页;未登录时点击「主页 / 写博客」,强制跳转登录页
  • 注销:登录状态下点击「注销」,退出账号并返回登录页

2.2. 列表页(博客首页)

  • 展示博客简介(标题、发布时间、内容概要),点击「查看全文」跳转详情页
  • 左侧显示登录用户、文章数、分类数(静态展示)
  • 顶部导航:「主页」(返回列表页)、「写博客」(进入编辑页)、「注销」(退出登录)

2.3. 详情页

  • 查看单篇博客完整内容
  • 顶部支持「主页」「写博客」「删除」「注销」操作
  • 点击「删除」可删除当前博客,删除后自动跳转回列表页

2.4. 写博客(编辑页)

  • 登录后任意页面点击「写博客」,进入富文本编辑页
  • 编辑博客标题、内容,点击「发布文章」完成发布,自动跳转回列表页

3.测试计划

测试用例思维导图:

4. 测试工具

Xmind :思维导图工具,用于梳理测试范围、设计测试思路与测试点,形成测试框架。

PyCharm(python):专门用来写 Python 代码的编辑器(IDE),写自动化代码的 "工作台"。

Selenium :Web 自动化测试工具,它是 Python 的一个第三方库(工具包),让浏览器 "自动干活" 的工具。

webdriver-manager:Selenium 的驱动管理工具 ,同样是 Python 的第三方库,给 Selenium 配驱动的小助手。

Postman:接口测试工具, 侧重于接口功能测试,用于验证单个接口的请求与返回是否正确,适合接口调试与功能验证;

jmeter:性能测试工具,侧重于接口性能测试、压力测试,用于模拟多用户并发访问,检测系统在高并发下的响应速度与稳定性。

5.设计到的测试动作/类型

  • 功能测试:使用 Postman 对博客系统后端接口进行功能测试,验证接口请求参数、返回数据是否符合预期,确保接口逻辑正确。

  • 自动化测试:基于 Selenium+Python+PyCharm 搭建 Web 自动化测试框架,配合 webdriver-manager 自动管理浏览器驱动,实现核心业务流程的自动化回归测试。

  • 性能测试:使用 JMeter 对博客系统进行性能测试,针对核心页面与高频接口设计压测脚本,模拟不同并发用户数进行负载测试,采集响应时间、吞吐量、错误率等关键性能指标,验证系统在高并发场景下的稳定性与承载能力。

6.功能测试

采用手动 UI 测试 + Postman 接口测试结合的方式开展,全面验证博客系统功能正确性与完整性。

6.1 手动 UI 测试

通过浏览器操作前端页面,模拟用户真实使用场景,覆盖系统全流程核心功能:

  • 登录 / 注销模块:验证正常登录、异常登录(账号 / 密码错误)、未登录强制跳转、注销退出等场景,确保权限控制逻辑正常
  • 博客列表页:验证博客标题、发布时间、内容摘要展示,「查看全文」按钮跳转,左侧个人信息栏显示,顶部导航栏(主页 / 写博客 / 注销)交互
  • 博客详情页:验证博客完整内容展示,「编辑 / 删除」按钮功能,删除二次确认弹窗,删除后列表页同步更新
  • 博客编辑 / 发布页:验证富文本编辑器使用,标题 / 内容输入校验,「发布文章」按钮功能,发布后列表页新增博客
  • 权限校验:验证未登录状态下访问所有页面,均强制跳转至登录页,保障系统访问安全

执行测试用例:

1.登录页面测试

正常展示页面:

输入正确的用户名和密码,正常进入博客首页。

输入错误的用户名和正确的密码,出现警示弹窗。

输入正确的用户名和错误的密码,出现警示弹窗。

输入错误的用户名和错误的密码,出现警示弹窗。

  1. 博客首页测试

3.博客详情页测试

4.博客编辑页面测试

6.2 Postman 接口测试

使用 Postman 对博客系统后端核心接口进行功能测试,不依赖前端页面,直接验证接口逻辑正确性:

  • 覆盖接口:用户登录接口、博客列表查询接口、用户个人信息接口、博客详情查询接口、新建博客接口、删除博客接口、更新博客接口
  • 测试内容:验证接口请求参数合法性、返回数据格式正确性、业务逻辑一致性,覆盖正常请求、异常参数、非法请求等场景
  • 测试目的:确保后端接口逻辑稳定,与前端功能形成双重验证,提前定位后端潜在问题

1.用户登录接口login

2.博客列表查询接口getList

3.用户个人信息接口getUserInfo

4.详情页接口getBlogDetail?blogId=...

5.新建博客接口add

6.删除博客接口delete?blogId=...

7.更新博客接口update

7.自动化测试

7.1.安装相关库

做 Web 自动化测试,需要安装两个核心 Python 库:

  1. selenium 库:Web 自动化测试工具,提供丰富的 API,用于模拟浏览器操作(点击、输入、跳转等),实现自动化测试。
  2. webdriver-manager 库:浏览器驱动自动管理工具,无需手动下载 / 更新浏览器驱动(如 ChromeDriver),自动匹配浏览器版本,避免版本不兼容问题,保障自动化脚本稳定运行。

安装命令(Python 终端执行):

  1. 安装 selenium
bash 复制代码
pip install selenium==4.0.0
  1. 安装 webdriver-manager
bash 复制代码
pip install webdriver-manager

下载后可以得到:

7.2.自动化测试脚本

创建结果如下:

代码参考:博客系统自动化测试脚本

运行结果:

8.性能测试

1.测试登陆页面接口

2.测试列表页面接口

3.测试用户个人信息接口

4.测试详情页接口

5.测试添加博客接口

6.删除博客接口

7.更新博客接口

8.性能测试

(1).梯度压测线程组

本次性能测试采用 jp@gc - Stepping Thread Group(阶梯线程组) 配置,模拟真实用户逐步加压、稳定承载、逐步降压 的访问场景。

解读:每隔3秒启动5个线程,这5个线程必须在1秒之内完成准备。

解读:每隔1秒结束5个线程。

(2).活跃的线程数量:

该现象本质是服务器高并发负载下出现请求堆积 / 超时:压测收尾阶段,线程发送请求后,服务器因资源耗尽、队列拥堵无法及时返回响应,导致客户端线程长时间等待,表现为响应时间陡增、线程无法正常退出。

(3).聚合报告:

聚合报告显示,列表页平均响应时间(13014ms)远超其他页面,说明列表页接口在压测中出现严重延迟 / 阻塞,成为系统性能瓶颈,导致请求长时间等待、进程无法正常退出。

(4).吞吐量:

响应时间结果图:

两张图形成完整的性能闭环:响应时间图直观展示了列表页的处理延迟,TPS 图则印证了延迟导致的系统处理能力瘫痪。列表页因服务器端阻塞,响应时间持续飙升,直接导致其每秒可完成的事务数(TPS)极低、请求大量堆积,最终在压测收尾阶段出现响应时间无限拉长、请求超时的现象,充分证明列表页是博客系统的核心性能瓶颈。

(5).性能测试报告:

JMeter测试报告是⼀个全面而详细的文档,它提供了关于测试执行结果的详细信息,帮助用户全面评估系统的性能并进行性能优化。 生成性能测试报告的命令:

复制代码
Jmeter -n -t 脚本⽂件 -l ⽇志⽂件 -e -o ⽬录
-n : ⽆图形化运⾏
-t : 被运⾏的脚本
-l : 将运⾏信息写⼊⽇志⽂件,后缀为jtl的⽇志⽂件
-e : ⽣成测试报告
-o : 指定报告输出⽬录

示例:

性能测试报告生成 成功后,在first文件夹下将出现以下内容:

双击index.html文件,界面展示如下:

9.测试结论

本次对个人博客系统开展了完整的功能测试、接口测试、Web 自动化测试及性能测试,全面验证系统在功能正确性、流程稳定性及高并发场景下的表现,综合结论如下:

  1. 功能与接口测试结论

    系统登录、博客列表展示、博客详情查看、新增、编辑、删除及权限控制等核心功能均正常可用,未登录强制跳转、注销退出、数据联动更新等逻辑符合需求设计。Postman 接口测试覆盖登录、查询、发布、删除、更新等全部核心接口,用例执行通过率 100%,接口返回数据规范、业务逻辑正确,功能层面满足基础使用要求。

  2. 自动化测试结论

    基于 Selenium+Python 完成 Web 自动化脚本开发,实现了登录验证、页面跳转、博客发布与删除等关键流程的自动执行,脚本运行稳定,可快速完成回归测试,有效提升了重复测试效率,保证版本迭代时功能不被破坏。

  3. 性能测试结论

    本次采用 JMeter 阶梯线程组模拟 20 用户并发压测,登录、用户信息、详情页、添加博客等接口响应时间均在合理范围内,表现稳定;但博客列表页接口存在明显性能瓶颈,平均响应时间高达 13014ms,峰值超过 70 秒,吞吐量显著偏低。

    从响应时间图与 TPS 图可明显看出:压测中后期列表页请求出现严重阻塞与堆积,服务器处理不及时,导致收尾阶段线程长时间等待无法退出,系统在持续并发下稳定性不足,列表页为当前系统主要性能短板。

  4. 整体总结与建议

    本博客系统功能完整、接口稳定、自动化回归流程可行,可满足个人轻量化使用场景;但在高并发访问下,列表页查询性能不足,存在响应超时、请求堆积风险。

    建议后续优化列表页数据库查询逻辑,优化 SQL 语句并建立合理索引,提升数据加载效率;同时可适当增加接口超时控制与异常处理机制,优化完成后再次进行性能回归测试,确保系统在并发场景下更加稳定可靠。

相关推荐
进击的明明11 小时前
当AI开始“边想边干”:深入聊聊ReAct,以及如何用Python手搓一个简单Agent
python·面试·agent
全栈弄潮儿12 小时前
Python实战第8期:函数
后端·python·编程语言
卷无止境13 小时前
暗流与破局:AI时代的代码安全审查工具全景指南
后端·python
卷无止境16 小时前
一人公司的全栈选型指南:让 AI Agent 写得快,也让生意跑得稳
后端·python
众壹新能源科技17 小时前
逆变器自带无功不够用,加装5MVar SVG后功率因数从0.85回到0.99
运维·人工智能·自动化
滴啦嘟啦哒18 小时前
【具身笔记】【π0.5 微调与仿真】五、在MuJoCo中实现可视化仿真
笔记·python·vla·具身
全栈练习生18 小时前
AI安全与红队测试
python·ai
费曼学习法18 小时前
把「发送成功」当「送达」?我排查 IM 长消息被静默吞掉的完整过程
python·ai编程·自动化运维
鸽鸽程序猿18 小时前
【项目】【在线判题系统】b端题目增删改
开发语言·python
NetX行者18 小时前
Python 工程化入门:从脚本到规范的 Python 项目结构
网络·python