当前位置: 首页 > article >正文

web个人博客系统——测试报告

一、报告概述1.项目背景本次测试的项目为个人博客系统是为满足个人博客撰写而研发的Web 系统。系统主要实现用户登录、博客编辑、博客管理等业务能力用于提供个人博客网页。为保障系统上线后功能正常、流程稳定、用户体验良好按照项目计划对博客功能、兼容性、易用性等开展全面测试形成本测试报告。2.测试目的功能验证确保所有核心功能符合需求规格说明书要求验证用户注册与登录流程的正确性确认问卷 / 考试创建、编辑、发布流程完整可用检查题库管理与试题操作功能完整性验证模板管理及共享功能正常运行。用户体验优化评估系统界面布局的合理性与易用性测试导航逻辑是否符合用户操作习惯验证错误提示信息清晰准确检查响应式设计在不同设备上的展示效果。系统稳定性保障评估系统在高并发场景下的稳定性测试系统长时间运行的性能表现验证网络中断、服务器错误等异常情况下的系统行为确保数据一致性与完整性。安全性加固防止未授权访问与数据泄露验证用户认证与授权机制有效性对 SQL 注入、XSS 等常见 Web 攻击进行安全防护测试检查敏感数据在存储与传输过程中的加密处理。兼容性确认确保系统在主流浏览器下正常运行验证不同操作系统环境下的运行表现测试多种设备类型及分辨率的适配效果。3.测试环境操作系统Windows 11浏览器Chrome、Edge测试工具Selenium二、测试用例三、手动测试1.登录界面功能测试场景一输入正确的密码和用户点击登录预期结果登陆成功直接跳转到博客列表首页测试场景二输入错误的密码和正确的用户进行登录预期结果登录失败提示密码错误测试场景三输入错误的用户和正确的密码进行登录预期结果登录失败提示用户不存在测试场景四输入正确的用户不输入密码进行登录预期结果提示账号和密码不能为空2.博客列表页功能测试场景一点击博客列表“查看全文按钮”预期功能跳转到对应博客页面测试场景二点击博客列表“写博客按钮”预期结果跳转到博客编辑页面测试场景三点击“注销按钮”预期结果退出登录测试场景四登录状态下从链接打开预期结果正确显示博客列表页测试场景五未登录状态下从连接打开预期结果跳转到登录界面3.博客编辑页功能测试场景一登录状态下从博客详情页打开预期结果跳转到博客编辑页面测试场景二正常填写博客内容点击“发布内容”预期结果正常发布博客列表正常显示测试场景三更改已发布博客内容预期结果更改结果正常显示测试场景四测试功能栏的各种功能预期结果正常使用实际结果emoji 功能无法使用Bugemoji功能被禁用测试场景五不填写标题或内容点击“发布文章”预期结果弹窗显示“标题和内容不能为空”实际结果弹窗显示为空Bug提示弹窗异常未能正常显示提示4.博客详情页功能测试场景一登录状态下从链接打开预期结果成功登陆测试场景二未登录状态下从链接打开预期结果跳转到登录界面四、兼容性测试测试场景一在Chrome浏览器下进入问卷考试系统预期结果无异常且一切布局显示功能等与其一致测试场景一在Chrome浏览器下进入问卷考试系统预期结果无异常且一切布局显示功能等与其一致五、自动化测试自动化测试项目代码文件结构BlogeAutoTest/├── cases/│ ├── __init__.py│ ├── BlogLogin.py│ ├── BlogList.py│ ├── BlogDetail.py│ ├── BlogEdit.py│ └── RunCases.py├── common/│ ├── __init__.py│ └── Utils.py├── images/存放截图└── test.py1.驱动类(Utils.py)import os import sys from datetime import datetime from fileinput import filename from webbrowser import Chrome from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager class Driver: driver def __init__(self): optionswebdriver.ChromeOptions() self.driverwebdriver.Chrome( serviceService(ChromeDriverManager().install()), optionsoptions ) def getScreenShot(self): #创建屏幕截图 #图片名称路径../images/2026-3-13/2026-3-13-9:17:06.png dirname datetime.now().strftime(%Y-%m-%d) #判断dirname文件夹是否存在若不存在则创建文件夹 if not os.path.exists(../images/dirname): os.mkdir(../images/dirname) filenamesys._getframe().f_back.f_code.co_name-datetime.now().strftime(%Y-%m-%d-%H%M%S).png self.driver.save_screenshot(../images/dirname/filename) # 实例化驱动对象 BlogDriver Driver()2.登录模块测试类BlogLogin.py#登录测试 import time from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from common.Utils import BlogDriver class BlogLogin: url None driver None def __init__(self): self.url http://47.108.157.13:8090/blog_login.html # 从自定义工具类获取已初始化的浏览器驱动 self.driver BlogDriver.driver self.wait WebDriverWait(self.driver, 20) # 打开登录页面 self.driver.get(self.url) time.sleep(2) def LoginFailTest(self): #登录失败测试用例密码错误场景 # 清空并输入用户名admin self.driver.find_element(By.CSS_SELECTOR, #username).send_keys(zhangsan) # 清空并输入错误密码111 self.driver.find_element(By.CSS_SELECTOR, #password).send_keys(111) # 点击登录按钮 self.driver.find_element(By.CSS_SELECTOR, #submit).click() # 预期提示文本用户名或密码错误! expect_text 用户名或密码错误! # 获取页面body的实际文本内容 actual_text self.driver.find_element(By.CSS_SELECTOR, body).text self.wait.until(EC.alert_is_present(), message5秒内未出现Alert弹窗) alert self.driver.switch_to.alert # 3. 获取弹窗文本 actual_text alert.text.strip() expect_text 密码错误 # 断言验证预期提示与实际提示一致不一致则抛出AssertionError assert expect_text actual_text, f登录失败提示校验失败预期{expect_text}实际{actual_text} alert.accept() #BlogDriver.getScreenShot() # 返回登录页面 # self.driver.back() time.sleep(2) def LoginSucTest(self): #登录成功测试用例 # 清空并输入用户名admin self.driver.find_element(By.CSS_SELECTOR, #username).clear() self.driver.find_element(By.CSS_SELECTOR, #username).send_keys(zhangsan) # 清空并输入密码123 self.driver.find_element(By.CSS_SELECTOR, #password).clear() self.driver.find_element(By.CSS_SELECTOR, #password).send_keys(123456) # 点击登录按钮#submit self.driver.find_element(By.CSS_SELECTOR, #submit).click() #self.driver.find_element(By.CSS_SELECTOR,body div.container div.left div h3) try: element WebDriverWait(self.driver, 10).until( EC.visibility_of_element_located((By.CSS_SELECTOR, body div.container div.left div h3)) ) print(元素找到并可见) except: print(元素在10秒内未出现。) time.sleep(3) #self.driver.back()3.详情模块测试类BlogDetail.py#博客详情页 from selenium.webdriver.common.by import By from common.Utils import BlogDriver class BlogDetail: url driver def __init__(self): self.url http://47.108.157.13:8090/blog_detail.html?blogId68517 self.driver BlogDriver.driver title self.driver.title #列表⻚已经跳过来了⽆需再指定url跳转 if not title博客列表⻚: self.driver.get(self.url) def DetailCheck(self): #body div.container div.right div:nth-child(1) a BlogDriver.getScreenShot() self.driver.find_element(By.CSS_SELECTOR,body div.container div.right div h3) self.driver.find_element(By.CSS_SELECTOR,body div.container div.right div div.date) self.driver.find_element(By.CSS_SELECTOR, #content p) BlogDriver.getScreeShot()4.编辑模块测试类BlogEdit.py#博客编辑页 import time from selenium.webdriver.common.by import By from common.Utils import BlogDriver #测试博客编辑页面 class BlogEdit: url driver def __init__(self): self.url http://47.108.157.13:8090/blog_edit.html self.driver BlogDriver.driver self.driver.get(self.url) #正确发布博客登陆状态下 def EditSucTestByLogin(self): ##title self.driver.find_element(By.CSS_SELECTOR,#title).send_keys(自动化测试创建) #找到编辑区域输入关键词(编辑区域不可操作 #菜单栏无法元素无法定位 #博客系统编辑区域默认情况下就不为空可以暂不处理 #直接点击发布按钮来发布博客 self.driver.find_element(By.CSS_SELECTOR,#submit).click() #点击完成之后出现页面的跳转页面跳转需要加载时间可能会出现代码执行的速度比页面渲染的速度要快导致元素查找不到因此可以添加等待 #添加隐式等待和显示等待都可以任选择一个 #隐式等待创建浏览器对象之后就可以加上因为隐式等待的作用域在driver整个生命周期 #显示等待可以作用在当前代码中 #body div.container div.right div:nth-child(1452) div.title time.sleep(3) actualself.driver.find_element(By.CSS_SELECTOR,body div.container div.right div:nth-child(1) div.title).text assert actual 自动创建博客150004684 #屏幕截图 BlogDriver.getScreenShot()5.列表模块测试类BlogList.py#博客列表 from selenium.webdriver.common.by import By from common.Utils import BlogDriver import time class BlogList: url driver def __init__(self): self.driver BlogDriver.driver self.urlhttp://47.108.157.13:8090/blog_list.html self.driver.get(self.url) time.sleep(10) def ListTest(self): self.driver.find_element(By.CSS_SELECTOR,body div.container div.left div img) self.driver.find_element(By.CSS_SELECTOR,body div.container div.right div:nth-child(1) a) articles self.driver.find_elements(By.CSS_SELECTOR, body div.container div.right div) assert len(articles) 10 #body div.container div.right div:nth-child(1) a self.driver.find_element(By.CSS_SELECTOR, body div.container div.right div:nth-child(1) a).click() title self.driver.title assert title 博客详情页 BlogDriver.getScreenShot()6.启动文件RunCases.pyfrom cases.BlogEdit import BlogEdit from cases.BlogList import BlogList from common.Utils import BlogDriver from cases import BlogLogin from cases import BlogList from cases import BlogDetail from cases import BlogEdit if __name____main__: BlogLogin.BlogLogin().LoginFailTest() BlogLogin.BlogLogin().LoginSucTest() BlogList.BlogList().ListTest() BlogEdit.BlogEdit().EditSucTestByLogin() BlogDriver.driver.quit()六、bug描述1.博客编辑页面不填写标题或内容点击“发布文章”弹窗显示空白内容提示功能失效尝试使用编辑功能区的emoji功能弹窗提示emoji功能被禁用七、测试总结个人博客系统的核心业务功能登录、博客增删改查、页面跳转、权限控制均能正常实现在 Chrome 浏览器下兼容性良好且已基于 Selenium 实现核心流程的自动化测试博客编辑页存在 2 个细节功能缺陷无核心功能故障整体系统可用性较高修复编辑页 Bug 后可进一步提升用户体验。

相关文章:

web个人博客系统——测试报告

一、报告概述1.项目背景本次测试的项目为个人博客系统,是为满足个人博客撰写而研发的Web 系统。系统主要实现用户登录、博客编辑、博客管理等业务能力,用于提供个人博客网页。为保障系统上线后功能正常、流程稳定、用户体验良好,按照项目计划…...

手把手玩转UUV三维路径跟踪

UUV三维路径跟踪,LOS制导PID控制实现 模型参数可调,期望轨迹可调,速度可调 MATLAB编程实现想要可直接联系~~~水下无人潜器(UUV)的路径跟踪听着高大上,但其实只要抓住LOS制导PID这对黄金组合,配合…...

高清互联双雄@ACP#GSV6155 与 SD642 赋能多场景显示切换新生态

在 Type-C 拓展坞、多屏显示终端、KVM 切换器等设备爆发式增长的当下,信号传输的稳定性、兼容性与切换灵活性成为产品竞争力的核心。基石酷联(GSCoolink)推出的 GSV6155 高性能信号重定时器与 SD642 高速多路复用器,以互补协同的产…...

基于三菱PLC的五层电梯控制系统设计探索

No.614 基于三菱PLC的五层电梯控制系统的设计5层电梯在自动化控制领域,电梯控制系统一直是一个经典且复杂的项目。今天咱就聊聊基于三菱PLC的五层电梯控制系统设计,这个系统设计可不简单,涉及到好多关键的逻辑和功能实现。 硬件框架 五层电梯…...

【Java SE】super 关键字详解

super 关键字详解 super 的本质与作用super 的三种用法a) 调用父类构造方法b) 访问父类属性b) 调用父类方法 深入理解 super 的查找机制(查找路径规则)super 与 this 的完整对比常见陷阱陷阱1:在静态方法中使用 super陷阱2:super …...

【2026年拼多多春招- 3月15日 -第四题- 多多的扩容计划】(题目+思路+JavaC++Python解析+在线测试)

题目内容 多多最近在做一条服务链路的大促扩容预案。他拿到了未来nnn个时间点的负载预测。 第iii个时间点 业务需求为aia_i...

洛谷 B4500:[GESP202603 三级] 凯撒密码 ← 字符串

【题目来源】 https://www.luogu.com.cn/problem/B4500 【题目描述】 凯撒密码是一种替换加密技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是 3 的时候,所有…...

基于超螺旋滑模观测器的永磁同步电机无位置传感器控制策略全套仿真与公式推导资料更新及调试过程图文详解

最新版基于超螺旋滑模观测器的永磁同步电机无位置传感器控制策略 全套仿真、公式推导、配套论文以及调试过程如图 补充最新资料最近在实验室折腾永磁同步电机的无感控制,发现超螺旋滑模观测器这玩意儿真香。传统滑模观测器抖得跟筛糠似的,信号噪声能把人…...

Java 文件操作与 IO 流入门指南

在 Java 开发中,文件操作与 IO 流是处理数据持久化、数据交互的核心能力。本文将结合代码实例与核心概念,带你系统梳理 Java 文件 IO 的基础用法与设计思想。一、核心前置认知:输入输出的本质在文件 IO 体系中,输入与输出的定义需…...

目标检测数据集 第130期-基于yolo标注格式的纺织品纹理缺陷检测数据集(含免费分享)

目录 目标检测数据集 第130期-基于yolo标注格式的纺织品纹理缺陷检测数据集(含免费分享) 超实用纺织品纹理缺陷检测数据集分享,助力计算机视觉研究! 1、背景 2、数据详情 2.1 数据规模与构成 2.2 图像内容与场景 2.3 标注规范 3、应用场景 3.1 …...

如何在中国国内下载GitLab的源代码

明德融创工作室(Minter Fusion Studio, MFS) 出品 一、GitLab概述 1. Git Git是一个免费、开源、高性能的分布式版本控制系统。它可以记录下你对文件所做出的每一次修改,你可以随时查看谁在什么时候修改了文件的哪个部分。 Git是当今世界上…...

【测试基础】02-软件的生命周期和软件的测试流程

什么是软件工程(了解) 软件开发语言 机器码->汇编语言->c语言->高级语言(java) 定义 随着我们c语月的诞生,开发软件变得更加的团队化,因此暴露出一个巨大的问题,就是协作。 我们迫切需要一个方法和手段来约束我们的开发过程&#xf…...

Sentinel 集群限流:分布式服务统一控流

在分布式微服务架构成为企业标配的今天,流量管控早已告别“单机单打独斗”的时代。当一个服务部署数十甚至上百个实例,单机限流的局限性愈发凸显——单实例流量未超阈值,集群总流量却可能因分布不均而超限,最终导致服务雪崩、业务…...

【RAG】【Data-Processor】【node_parsers03】语义双重合并分块(Semantic Double Merging Chunking)案例分析

本案例展示了如何使用LlamaIndex中的语义双重合并分块器(SemanticDoubleMergingSplitterNodeParser)来智能地分割文本,这是一种更高级的语义分块方法,通过双重合并过程来创建语义连贯的文本块。1. 案例目标本案例的主要目标是:演示语义双重合…...

深入浅出计算机网络基石:详解 OSI 模型、TCP/IP 模型及数据通信全过程

前言大家好,这里是程序员阿亮,今天也是在公司里面当起黑奴了,实习生,大小周,不包饭,吃公司饭还要收钱。。。但是博客还是要写滴今天来给大家讲解一下OSI七层模型和TCP/IP模型这是计算机网络中的基础架构&am…...

【“小白致命坑”】[特殊字符] 备战蓝桥杯C++:别再写嵌套循环了!一招掌握 STL 结构体多级排序

【“小白致命坑”】🚀 备战蓝桥杯C:别再写嵌套循环了!一招掌握 STL 结构体多级排序 在备战蓝桥杯的过程中,我们经常会遇到一类非常经典的排序题(比如历年真题中的“奖学金”问题): “先按总分从…...

C语言_指针函数double字面量运算符

1、/除法运算符 //printf( 1/3); 输出是0, 无打印 printf( 4/3); 报错 printf(“%d\n”, 4/3); 正常,输出1 确保printf的第一个参数是一个字符串字面量,即直接用双引号括起来的字符串。 2、指针: 地址运算符& 和间接运算符 * &nur…...

免费开源毕设:基于YOLO的道路缺陷检测系统

🛣️ 基于 YOLO 的道路缺陷检测系统 (Road Defect Detection System) 本项目是一个功能完整的道路缺陷(如路面坑洼 Pothole)智能检测系统。基于最新的 Ultralytics YOLO 系列模型构建,并提供了一个美观、易用的 Streamlit Web 交…...

Java必背45道

一、Java基础8道 1. 和 equals() 的区别是什么? 在java中 和 equals()主要的区别在于比较的内容不同。是一个运算符,对于基本数据类型来说,比较的是数值本身,比如比较两个int 数值是否相同;对于引用数据类型&#xf…...

Phi-3-vision-128k-instruct惊艳案例:宠物照片→品种识别+健康风险+喂养建议

Phi-3-vision-128k-instruct惊艳案例:宠物照片→品种识别健康风险喂养建议 1. 模型简介 Phi-3-Vision-128K-Instruct 是一款轻量级的多模态模型,专注于高质量的文本和视觉数据处理。作为 Phi-3 模型家族的一员,它支持长达128K的上下文长度&…...

【Docker 27集群调度优化终极指南】:20年SRE亲测的7大反模式与5个生产级调优阈值

第一章:Docker 27集群调度优化的认知跃迁Docker 27(即 Docker Engine v27.x)引入了调度器内核级重构与资源感知型调度策略,标志着从静态标签匹配向动态拓扑感知的范式转变。传统基于 docker service create --constraint 的硬性约…...

DeOldify图像上色服务MySQL数据管理实战:任务记录与结果存储

DeOldify图像上色服务MySQL数据管理实战:任务记录与结果存储 老照片修复和上色,听起来是个挺有情怀的事儿,但如果你是一家需要处理成千上万张历史照片的机构,比如档案馆、博物馆或者影视制作公司,这事儿立马就从“情怀…...

Alpamayo-R1-10B WebUI深度使用:调整Samples=3生成多候选轨迹并评估置信度排序

Alpamayo-R1-10B WebUI深度使用:调整Samples3生成多候选轨迹并评估置信度排序 1. 项目概述 Alpamayo-R1-10B是专为自动驾驶研发设计的开源视觉-语言-动作(VLA)模型,其核心能力在于通过类人因果推理生成车辆行驶轨迹。该模型基于100亿参数架构&#xff…...

StructBERT情感分类模型在科技产品评测分析中的实践

StructBERT情感分类模型在科技产品评测分析中的实践 1. 引言 科技产品评测和用户反馈中蕴含着大量有价值的情感信息,但人工分析海量文本既耗时又容易主观偏差。最近我们在实际项目中尝试了StructBERT情感分类模型,用它来自动分析科技产品的用户评价&am…...

无需编程基础!cv_resnet18_ocr-detection图形化界面操作全解析

无需编程基础!cv_resnet18_ocr-detection图形化界面操作全解析 1. 引言:OCR文字检测的零门槛解决方案 在日常工作和生活中,我们经常需要从图片中提取文字信息——可能是扫描的合同文档、产品包装上的说明文字,或是手机拍摄的会议…...

基于Git-RSCLIP的新闻图片自动标注系统

基于Git-RSCLIP的新闻图片自动标注系统 1. 引言 每天新闻编辑室都要处理成千上万的图片,每张图片都需要准确标注才能进入发布流程。传统的人工标注方式不仅耗时耗力,还容易出现标注不一致的问题。想象一下,一位编辑需要为几百张新闻图片逐一…...

lingbot-depth-pretrain-vitl-14开源可部署优势:无需GPU驱动重装,兼容主流云平台

lingbot-depth-pretrain-vitl-14开源可部署优势:无需GPU驱动重装,兼容主流云平台 想快速体验一个强大的深度估计模型,但被复杂的GPU环境配置、驱动版本冲突搞得头大?如果你也有过这种烦恼,那么今天介绍的lingbot-dept…...

RexUniNLU Docker镜像详解:3.11-slim基础镜像+加速推理配置,适配国产算力平台

RexUniNLU Docker镜像详解:3.11-slim基础镜像加速推理配置,适配国产算力平台 1. 镜像概览与核心价值 RexUniNLU是一个基于DeBERTa-v2架构的零样本通用自然语言理解模型,专门针对中文信息抽取任务进行了优化。这个Docker镜像将完整的推理环境…...

MedGemma-X开箱即用体验:预装环境,零配置快速体验智能诊断

MedGemma-X开箱即用体验:预装环境,零配置快速体验智能诊断 1. 为什么选择MedGemma-X进行智能影像诊断 在医疗影像诊断领域,传统CAD系统往往存在两个痛点:一是只能提供简单的二分类结果(阳性/阴性)&#x…...

Phi-3-vision-128k-instruct一文详解:Phi-3多模态家族中128K上下文的技术突破点

Phi-3-vision-128k-instruct一文详解:Phi-3多模态家族中128K上下文的技术突破点 1. 模型简介与技术亮点 Phi-3-Vision-128K-Instruct是微软Phi-3模型家族中的多模态成员,代表了当前轻量级开放模型的最先进水平。这个模型最引人注目的特点是支持128K的超…...