博客系统测试文档

一、 项目背景

项目名称: Web博客系统

项目描述: 一个支持用户登录、发布并管理个人文章的Web应用系统。

测试背景: 为确保其核心功能的正确性、稳定性及用户体验,并实践测试理论与自动化技术的结合,特开展本次测试。

二、 项目简介

测试目标:验证"用户登录"、"文章发布"两大核心业务流程的功能正确性。

测试周期: 2026-02 ~ 2026-03

测试模式:个人独立完成从"测试分析" -> "用例设计" -> "手动测试" -> "自动化实现" -> "报告总结"的全流程。

三、 测试计划

  1. 测试范围:

核心功能:用户登录、文章发布。

测试类型: 功能测试、UI自动化测试,接口自动化,性能测试。

  1. 测试策略:

首先进行充分的手动功能测试,深入理解业务逻辑与各种场景。

针对高频、稳定的核心流程,将其转化为自动化脚本,用于快速回归。

  1. 资源与环境:

测试环境:Windows 11 + Chrome 浏览器

技术栈: Python , Selenium WebDriver,pytest,jmeter等等

四、 测试工具与技术

测试管理 XMind(用例设计)

自动化测试 Python + Selenium WebDriver

Pytest + Requests 接口自动化测试

JMeter 进行接口与Web性能测试

元素定位 浏览器开发者工具

版本控制 Git

报告撰写 CSDN博客

五、 测试设计与分析

1. 功能测试用例设计

测试登陆页面

正确的用户名和密码,登录成功

用户名为空或者密码为空,显示报错

正确的账号错误密码显示密码错误

错误用户名和正确密码提示用户名不存在

博客首页,可以看到用户信息和博客信息都能看到

博客详情页,可以看到博客内容信息(题目时间和内容)

博客编辑页

首先页面元素比较到位,又博客标题编辑框,博客内容编辑框,发布博客按钮

标题为空有内容发布会提示错误

标题不为空内容为空也会显示错误

2. UI自动化测试脚本设计

核心技术: Python + Selenium

设计模式: 采用`线性脚本`与`模块化`思想,对`页面元素定位`进行分离管理。

关键代码逻辑

弹窗定位问题,先切换到弹窗,再点击确认或取消,在继续操作

隐式等待,在3秒内可以查找到元素就不会报错

主要创建两个软件包和一个储存照片的地方

这个是总代码运行各个函数的地方,体现了封装

这个是导入库后创建驱动,只用创建一个可以多文件使用,下边是封装了截图函数,每个文件都可以调用

.博客登录,可以看到先赋值驱动然后执行自动话函数(获取页面元素,点击,清除,等待,等等操作比较简单)

.博客列表页,查看元素是否存在,不存在会报错

博客详情页,其实逻辑都差不多

博客编辑(测试是否正常发布)

3.接口自动化测试脚本设计

接口常见问题

接口请求头要加用户凭证,作为请求服务器的权限,cookie是校验信息

方法

一般post请求,参数一般是data,get请求,参数一般是params

请求头要添加登录返回的data也就是登录凭证才能请求成功

详情页get请求

登录用data参数,博客园意思是上传cookie作为登录凭证

项目架构

全局架构,pytest即可运行用例

上边那个不能有,下边可以

pytest可以自动执行用例

yaml文件,存储数据,用于提取和存储数据

封装request方法,info是用来输出日志信息

封装日志文件,确保调用时可以往对应日志输出东西

输出对应日志

这里是用例的几个文件

注意这里是测试报告,allure已经配置好的

日志模块,可以设置日志登记,从上到下级别增大,默认输出到终端,可以自定义输出到文件里

这个是自定义日志可以输出到日志上,先创建文件处理器,指定输出文件,然后如果不需要日志格式器的话直接将处理器添加到日志记录器就可以,如果需要的话要设置日志格式器并设置到文件处理器上再添加到日志记录器上,这是固定流程

4.性能测试设计

这里用jmeter并发测试了登录和列表页,并且通过折线图分析了吞吐量,响应时间,错误率等指标

这里是发送20个线程,每隔三秒启动5个线程,每5个线程在1s内准备完毕,在60s后,每隔1秒退出5个线程

活跃线程数,可以看到前10几秒线程到顶峰,中间很稳,后边陆陆续续退出后在结尾有个线程迟迟没有退出

这里响应时间和线程活跃度对应了,中间比较平稳结尾响应时间很长是因为有个线程没有退出,这里和错误率有关系,毕竟同时并发那么多线程,有些错误也正常

这个是吞吐量指标,可以看到中间部分几乎和响应时间成反比,其实吞吐量是性能指标的主要判断内容,响应时间长证明性能较低

这里聚合报告有一定错误率,可能和刚才的线程退出有关,有助于排查问题

吞吐量:每秒处理事务数(tps和qps)

负载测试:系统性能最高的点

压力测试,系统崩之前的点

六、 项目测试Bug简述

发布博客是倒着显示的,不太美观(算轻度bug,影响效率不影响质量)

这里的异常和响应时间可以看出来有线程没有没有退出,算是性能有bug

七、 测试结论与收获

本次对博客系统的测试表明:

  1. 核心功能稳定:"用户登录"、"文章发布"等主要业务流程通过功能与接口测试,符合需求定义,未发现阻断性缺陷。

  2. 自动化覆盖有效:基于 Python + Pytest + Requests 构建的接口自动化框架与 Selenium UI 自动化脚本,覆盖核心场景,具备回归测试执行能力,可显著提升版本验证效率。

  3. 性能基线建立:通过 JMeter 完成关键接口的压力测试,系统在常规并发下响应稳定,性能表现满足预期。

项目收获

  1. 技术能力提升

掌握了基于 Pytest 的接口自动化测试框架搭建与脚本编写,具备数据驱动、日志收集与报告生成的全链路实施能力。

熟练使用 Selenium 完成 Web 端核心业务流程的自动化测试,并运用 Page Object 模式提升代码可维护性。

  1. 工程化思维与实践

实践了从需求分析、用例设计、脚本开发到测试报告输出的完整测试流程,建立了标准化作业意识。

通过模块化架构设计(如工具类封装、数据与脚本分离),提升了代码复用性与项目可维护性。

  1. 可交付成果与价值

产出可重复执行的自动化测试脚本集、可视化测试报告,形成可复用的测试资产。

为后续项目积累了自动化测试框架基础,并具备了快速响应迭代测试需求的能力。

相关推荐
扶苏-su2 小时前
Java反射实战:动态操作Car类属性
java
anzhxu2 小时前
MySQL Workbench菜单汉化为中文
java
96772 小时前
C++ 内存管理的核心——RAII 机制。两种锁 lock_guard, unique_lock
java·jvm·c++
chenhdowue2 小时前
Vue 表格组件 vxe-table 进阶,灵活导出指定数据的 CSV 文件
javascript·vue.js·vxe-table
bearpping2 小时前
MySQL JSON数据类型全解析(JSON datatype and functions)
java
lclcooky2 小时前
JavaWeb项目打包、部署至Tomcat并启动的全程指南(图文详解)
java·tomcat
清汤饺子2 小时前
Everything Claude Code:让我把 AI 编程效率再翻一倍的东西
前端·javascript·后端
想进大厂的小徐2 小时前
Spring 容器启动与 Bean 创建流程
java·spring boot·spring
dreamxian2 小时前
微服务1 -- MybatisPlus
java·微服务·架构