📖 前言:云记个人博客系统是一个便捷的在线内容管理平台,它通过前后端分离的方式实现,目的是为用户提供一个高效、灵活并且易于使用的博客创作环境。实现这一目标需要全面的功能测试和稳定的质量保证。
目录
🕒 1. 项目背景
该个人博客系统采用前后端分离的方法来实现,并使用MySQL数据库存储数据。它支持查看个人用户的博客记录,包括时间、标题、内容和发布者等详细信息。
然而,该系统未设计注册功能,用户信息需预先在数据库中录入才能登录;用户头像已设为前端页面的静态图片,无法自定义;文章和分类的数量也未在后端实现,而是直接在前端页面静态显示。
🕒 2. 项目功能
本个人博客系统主要包含以下功能:登录、注销、撰写博客及删除博客等。
- 登录功能:用户名和密码已预设于后端数据库中,暂不支持账户注册,即:用户需使用已存在的用户名和密码登录。登录成功将跳转至博客列表页面。未登录状态下,右上角的主页和写博客按钮点击后会重定向至登录页面。
- 列表页面:列表页展示了一定数量的博客摘要,包括标题、发布时间和内容概览。左侧显示已登录用户信息、文章和分类数量等。右上角包含主页、写博客和注销三项功能:主页即列表页,写博客为博客编辑页,注销则会退出用户并返回登录页面。
- 详情页面:在列表页点击“查看全文”会跳转至详情页,展现博客全文。右上角设有主页、写博客、删除和注销四项功能:删除可移除博客,操作后页面会返回列表页,且博客被永久删除。
- 写博客:登录状态下任意页面点击“写博客”将进入编辑界面,完成博客撰写并点击“发布文章”后,文章将被发布且页面会跳转至列表页。
🕒 3. 设计测试用例
登录模块:
博客列表模块:
博客详情页模块:
博客编辑页模块:
🕒 4. 部分功能测试
🕘 4.1 登录页面
测试场景1: 输入正确的账号和密码,点击“登录”按钮
预期结果:登陆成功,跳转到博客列表页
实际结果:登陆成功,跳转到博客列表页
测试场景2:输入正确的账号,输入错误的密码,点击“登录”按钮
预期结果:登录失败,弹出对应提示框
实际结果:登录失败,弹出错误页面
测试用例3:账号密码为空,点击“登录”按钮
预期结果:登录失败,弹出对应提示框
实际结果:登录失败,弹出错误页面
🕘 4.2 博客列表页
测试场景1: 登录状态下没有发布过博客
预期结果:列表没有博客信息
实际结果:列表没有博客信息
测试场景2:登录状态下发布一篇博客,标题为“自动化测试”
预期结果:博客列表页展示一篇标题为“自动化测试”的博客信息
实际结果:博客列表页展示一篇为“自动化测试”的博客
🕘 4.3 发布博客
测试场景1:登录状态下,输入标题,输入正文,点击“发布文章”按钮
预期结果:发布博客成功,跳转到博客列表页展示相关信息
实际结果:发布博客成功,跳转到博客列表页
测试场景2:未登录状态下,无法发布博客
预期结果:弹出相应提示框,跳转登录页
实际结果:直接跳转登录页
🕘 4.4 删除博客
测试场景:登录状态下且当前博客详情是当前登录用户,点击删除
预期结果:删除成功
实际结果:删除成功
🕘 4.5 注销
测试场景:在已登录状态下点击 “ 注销 ” 按钮
预期结果:退出成功,跳转到登录页
实际结果:退出成功,跳转到登录页
🕒 5. 自动化测试
🕒 6. 性能测试
使用loadrunner进行简单性能测试:针对登录、编写并发布博客以及删除博客、注销等功能进行简单的性能测试。
然后在实现的过程中,插入集合点以及事务等,并通过设置来实现用户的并发操作。
a)访问博客登录页;
b)执行登录;
c)进入首页。
🕘 6.1 编写性能测试脚本
首先创建一个Web性能测试脚本:
开始录制:
Action()
{
// 开始事务1
lr_start_transaction("index_trans");
// 1.访问博客系统网页
web_url("web_url",
"URL=http://127.0.0.1:8080/blog_system/login.html",
"TargetFrame=",
"Resource=0",
"Referer=",
LAST);
// 登录的集合点
lr_rendezvous("login_rendezvous");
// 开始事务2
lr_start_transaction("login_trans");
// 2.输入登录账号和密码
web_submit_form("web_submit_form",
ITEMDATA,
"Name=userName", "Value={username}", ENDITEM,
"Name=password", "Value={password}", ENDITEM,
LAST);
// 结束事务2
lr_end_transaction("login_trans", LR_AUTO);
// 结束事务1
lr_end_transaction("index_trans", LR_AUTO);
return 0;
}
执行结果和分析:
🕘 6.2 创建测试场景
针对我们已经编写好的脚本打开controller工具,创建测试脚本,设置并发数为3:
设置执行策略如下:
场景运行结果:
🕘 6.3 生成测试报告
测试报告图表如下:
- 虚拟用户运行图:
作用:通过显示的虚拟用户数量可以判断出哪个时间段服务器负载最大(上图01:36 ~ 04:40负载最大)。
- 点击数图(每秒点击率)
作用:通过点击率可以判断出某时间段内服务器的负载。
- 吞吐量图
Q1:为什么吞吐量图和点击数图相似,但是吞吐量图要滞后一点?
答:因为吞吐量表示的是响应返回的资源数量,肯定是现有请求再有返回。
Q2:如果请求变多但是吞吐量没变化,原因是什么?
答:
- 服务器响应太慢,来不及反应;
- 压力没有到服务器;
- 服务器设计一定的阈值(到达阈值以后,虽然也收到了请求,但是服务器不会做任何处理),保证了服务器不会因为并发量过大而出现宕机的情况;
-
事务图
-
平均事务响应时间图
作用:可以观察到,虚拟用户在性能测试中,每秒在服务器上命中的次数,可以根据命中的次数评估虚拟用户生成的负载量。
OK,以上就是本期知识点“个人博客系统测试报告”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页