博客系统测试报告

项目背景

随着互联网线上的业务普及,各类Web管理系统和存储数据和内容的Web线上工具成为企业线上运营的核心载体。为保障系统上线后业务流程流畅,功能稳定、数据准确,避免用户操作异常、功能失效、页面报错等线上问题,需要在产品上线前开展全面的功能测试工作。

本次针对博客系统进行全模块的功能测试,依据产品需求文档,校验系统登录、信息录入、文章的编辑,异常校验等核心功能,排查隐藏缺陷,保证系统满足用户的使用需求、业务逻辑合规、运行稳定,保障产品可以安全、稳定、正常使用。

项目简介

本项目为一款Web业务管理系统

项目业务包括:

登录系统:保障用户在使用正常的账号和密码时能够正常登录,用户信息的验证,登录完成后查找用户的信息是否正确。

博客首页:检查博客菜单模块,以便更快的了解和使用该系统进行内容的存储,以及在提交内容之后的列表页,能够快速查询以往提交的信息内容,方便以后的使用和提取信息。

编辑博客:正常的输入内容查看是否能够正确提交信息,在输入内容的过程中防止提交失败,或者,内容书写错误,以及内容信息查找不到。

博客详情:编辑提交之后,查询该内容是在什么时间进行提交是否记录时间,查看当时编辑的博客标题内容,以及重要信息的记录是否准确。

测试环境

1、操作系统:Windows11

2、浏览器:Microsoft Edge147.0.3912.72

3、测试工具:Postman、JMeter、Selenium

4、数据库:MySQL

涉及到的测试类型

功能测试:

进行了用户登录和注册内容,以及首页的信息查看和菜单模块内容,还有编辑博客页面的内容,最后是博客详情界面,问题:在编辑博客之后,系统提交成功,结果在博客详情页里,找不到编辑之后的博客内容

性能测试:

活跃线程数随时间变化,作用:展示压测过程中并发用户数的变化曲线验证阶梯式压测是否正常进行

响应时间随时间变化,作用:记录压测过程中每个时间点的平均响应随时间变化,判断系统响应是否稳定,是否存在性能瓶颈。是判断系统性能衰减,是否出现慢请求的关键指标

TPS随时间变化

作用:统计压测过程中系统每秒成功处理的请求数(吞吐量),是衡量系统处理能力的核心指标

直接反映系统在当前并发下的最大处理能力,判断系统的性能上限

自动化测试:

通过Python和Selenium的相互配合,写下,登录系统,首页,博客详情页,编辑博客的自动化脚本

登录页面

创建驱动对象

python 复制代码
import datetime
import os.path
import sys
from selenium import webdriver
from selenium.webdriver.edge.service import Service

class Driver:
    driver=None
    def __init__(self):
        options = webdriver.EdgeOptions()
        self.driver=webdriver.Edge(service=Service("D:\\edgedriver_win64\\msedgedriver.exe"))
        self.driver.implicitly_wait(3)

    def getScreenshot(self):
        #创建屏幕截图
        dirname=datetime.datetime.now().strftime("%Y-%m-%d")
        #判断dirname文件夹是否存在
        if not os.path.exists("../images/"+dirname):
            os.mkdir("../images/"+dirname)
        filename=sys._getframe().f_back.f_code.co_name+"-"+datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S")+".png"
        self.driver.save_screenshot("../images/"+dirname+"/"+filename)

BlogDriver=Driver()

驱动对象:控制浏览器设备的遥控器,不创建驱动对象,代码就碰不到浏览器

python 复制代码
import time
from selenium.webdriver.common.by import By
from common.Utils import BlogDriver

class BlogLogin:
    url=""
    driver=""
    def __init__(self):
        self.url="http://49.235.61.184:19090/blog_login.html"
        self.driver=BlogDriver.driver
        self.driver.get(self.url)


    #成功登录的测试用例
    def LoginSucTest(self):
        # self.driver.find_element(By.CSS_SELECTOR, "#username").clear()
        # self.driver.find_element(By.CSS_SELECTOR, "#password").clear()
        self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys("zhangsan")
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR,"#submit").click()
        self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.left > div > h3")
        BlogDriver.getScreenshot()

    #异常登录测试用例
    def LoginFailedTest(self):
        self.driver.find_element(By.CSS_SELECTOR, "#username").clear()
        self.driver.find_element(By.CSS_SELECTOR, "#password").clear()
        self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("zhangsan")#正确用户名
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("12345")#错误的密码
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        BlogDriver.getScreenshot()

login=BlogLogin()
login.LoginSucTest()

博客详情页

python 复制代码
from selenium.webdriver.common.by import By
from common.Utils import BlogDriver
#博客首页测试用例
class BlogList:
    url=""
    driver=""
    def __init__(self):
        self.url = "http://49.235.61.184:19090/blog_list.html"
        self.driver = BlogDriver.driver
        self.driver.get(self.url)

    #测试首页(登录情况下)
    def ListTestByLogin(self):

        #测试博客标题是否存在
        self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div:nth-child(2) > div.title")
        self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div:nth-child(2) > div.desc")
        #测试博客按钮是否存在
        self.driver.find_element(By.CSS_SELECTOR, "body > div.container > div.right > div:nth-child(2) > a")
        self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.left > div > h3")
        #添加屏幕截图
        BlogDriver.getScreenshot()

编辑博客

python 复制代码
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

from common.Utils import BlogDriver

class BlogEdit:
    url=""
    driver=""
    def __init__(self):
        self.url="http://49.235.61.184:19090/blog_edit.html"
        self.driver=BlogDriver.driver
        self.driver.get(self.url)

    def EditSucTestByLogin(self):
        self.driver.find_element(By.CSS_SELECTOR,"#title").send_keys("自动化测试程序")
        self.driver.find_element(By.CSS_SELECTOR,"#submit").click()

        adult=self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div:nth-child(2) > div.title").text
        assert adult=="自动化测试创建"
        BlogDriver.getScreenshot()

bug简述

UI显示问题,标题文字过长时,未自动换行或省略,超出页面边界,导致页面排版出错

缺陷:编辑博客时,原内容无法正常回显,输入框为空,导致用户需要重新输入内容

缺陷:发布博客时,点击提交按钮,系统提示发布成功,但在博客列表页无法看到新发布的内容,数据未保存到后台。

测试结论

本次针对博客系统的功能与性能测试已全部完成,测试覆盖了用户登录、博客列表、详情页等核心业务模块,结合JMeter阶梯式压测方案,对系统在不同并发场景下的稳定性、响应时间及吞吐量进行了全面验证,测试结论如下:

  1. 核心功能验证结论

系统各模块功能整体符合业务需求:用户登录、博客发布、列表查询、详情页访问等关键流程均能正常执行,正向场景测试通过率100%;表单校验、异常提示、页面跳转等交互逻辑符合预期,未发现阻断业务流程的严重缺陷。测试过程中发现的少量UI排版与文案细节问题,均不影响系统核心功能的正常使用,已记录并纳入后续优化范围。

  1. 性能压测验证结论

本次阶梯式压测(并发线程数2→5→10)结果表明:

  • 活跃线程数按预设模型平稳增长,压测执行过程稳定;

  • 系统响应时间随并发增加仅小幅上升,无剧烈波动或性能衰减现象;

  • 吞吐量(TPS)随并发提升同步增长,在10并发场景下达到稳定峰值,无TPS下降或服务中断情况。

整体来看,系统在目标并发压力下表现稳定,未出现性能瓶颈,能够满足当前业务场景下的用户访问需求。

  1. 综合结论与上线建议

本次测试验证了系统功能的完整性、逻辑的正确性及性能的稳定性,核心业务流程无严重缺陷,性能指标满足设计预期。结合本次测试结果,建议该版本系统可按计划上线发布,同时针对测试中发现的轻微缺陷进行后续迭代优化,进一步提升用户体验。

相关推荐
川石课堂软件测试13 小时前
软件测试:典型面试题库
数据库·python·功能测试·mysql·单元测试·grafana·prometheus
Bug 挖掘机15 小时前
一篇理清Prompt,Skill,MCP之间的区别
开发语言·软件测试·python·功能测试·测试开发·prompt·ai测试
编码七号1 天前
使用playwright做前端项目的端对端自动化测试
前端·功能测试·自动化
MESMarketing2 天前
互动分享 | 软件工具的安全合规实践
功能测试·测试工具·matlab·ci/cd·autosar
测试19982 天前
软件测试之持续集成
自动化测试·软件测试·python·功能测试·测试工具·测试用例·持续集成
汽车仪器仪表相关领域2 天前
Kvaser U100:工业级单通道CAN/CAN FD转USB接口,恶劣环境下的可靠通信桥梁
linux·运维·服务器·人工智能·功能测试·单元测试·可用性测试
兰.lan2 天前
【黑马ai测试】安享智慧理财项目(ai辅助提效)
人工智能·python·功能测试·ai
qq_452396233 天前
【工程实战】第十篇:性能监控集成 —— 自动化脚本的“副产品”:不仅仅是功能测试
python·功能测试·自动化
QH139292318804 天前
KEYSIGHT E5071C 端网络分析仪
网络·功能测试·嵌入式硬件·物联网·单元测试·集成测试·模块测试