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

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 语句并建立合理索引,提升数据加载效率;同时可适当增加接口超时控制与异常处理机制,优化完成后再次进行性能回归测试,确保系统在并发场景下更加稳定可靠。

相关推荐
斯班奇的好朋友阿法法2 小时前
Django 项目打包部署完整指南(适配你的项目,零报错)
python·django·sqlite
taxunjishu2 小时前
速冻食品物联网网关应用 DeviceNet转Profinet提升产线协同效率
物联网·网络协议·自动化
JustNow_Man2 小时前
【opencode】使用方法
linux·服务器·网络·人工智能·python
abigale032 小时前
.py 与 .ipynb 的核心差异 + Jupyter 内核缓存坑全解析
python·jupyter
Dxy12393102162 小时前
Python使用SymSpell详解:打造极速拼写检查引擎
开发语言·python
爱学习的小囧2 小时前
vSphere 每虚拟机 EVC 配置审计教程:PowerCLI 自动化实操
运维·自动化·esxi·vmware·虚拟化
AI_Claude_code2 小时前
网络基础回顾:DNS、IP封锁与HTTP/S协议关键点
网络·爬虫·python·tcp/ip·http·爬山算法·安全架构
赖134小0747姐2935电2 小时前
罗德与施瓦茨ZN-Z135经济型网络分析仪校准套件26.5G
网络·功能测试·科技·5g
架构师老Y2 小时前
012、缓存架构设计:Redis高级应用与优化
redis·python·架构