博客系统测试报告

一、项目背景

以SSM为框架实现的博客系统有四个功能,登录账号进入博客首页,首页展示发布的博客列表,还可以编写或者更改博客内容。为了确保博客系统在各种场景下都能正常运行,需要进行尽可能全面的功能测试和自动化测试。本项目旨在通过自动化测试工具对博客系统的登录、首页、详情页和编辑页进行功能验证,确保系统的稳定性和用户体验。

二、项目简介

此博客系统采用了前后端分离的方法,同时匹配数据库以及云服务器实现的。前端主要有四个页面,如登录页面、首页页面、博客编辑页面、博客详情页面。结合后端实现了登录、编辑、修改、删除博客的功能。

登录页面:账号密码已经写入数据库,暂不支持新用户账户注册功能。输入正确的账号密码即可进入首页查看个人信息和博客列表等。如果账号错误,弹窗显示“用户不存在”;如果密码输入错误,弹窗显示“密码错误”。

首页页面:登录后用户可浏览博客列表,查看博客发布时间以及标题和内容,右上角支持一键写博客、注销账号、回到首页这三个功能。在用户未登录时,无法通过URL访问以下所有页面,而是跳转到登录页面。

博客编辑页面:在登录后任意界面点击右上角的写博客即可进入编辑页面,进行博客编辑,发布时必须要有标题和内容,否则弹出窗口表示发布失败。

博客详情页:在首页展示的博客列表处点击“查看全文”即可进入,此时可以看到该博客的完整内容以及可以编辑和该删除博客。

三、测试计划

1. 测试目标

  • 验证博客系统的核心功能是否按预期工作。

  • 确保系统在不同场景下的稳定性和可靠性。

2. 测试范围

  • 登录功能:包括成功登录、错误用户名登录、错误密码登录、错误用户名和密码登录。

  • 首页功能:包括用户信息展示、博客列表展示、导航按钮功能。

  • 详情页功能:包括博客内容展示、编辑和删除按钮功能。

  • 编辑功能:包括博客编辑和提交功能。

3. 测试环境

  • 操作系统:Windows 10

  • 浏览器:Chrome 134.0.6998.89

  • 测试工具:Selenium 4.0.0、WebDriver Manager 4.0.2

4. 测试策略

  • 功能测试:验证每个功能模块的正确性。

  • 异常测试:验证系统在异常输入或操作下的表现。

  • 回归测试:确保代码修改后原有功能不受影响。

四、测试工具

  • Selenium:用于自动化浏览器操作,模拟用户行为。

  • WebDriver Manager:自动管理浏览器驱动,确保测试环境的一致性。

  • Python:编写测试脚本,调用Selenium。

  • Gitee:管理测试代码。

五、功能测试

1.  测试用例:

测试用例设计一般从以下几个方面设计:功能测试、界面测试、性能测试、易用性测试、安全性测试、兼容性测试、弱网测试等六个方面进行测试。对web网站主要是针对核心功能进行测试,测试用例图如下:

2.  测试用例部分内容

  • 登录功能:包括成功登录、错误用户名登录、错误密码登录、错误用户名和密码登录

  • 首页功能:包括用户信息展示、博客列表展示、导航按钮功能。

  • 详情页功能:包括博客内容展示、编辑和删除按钮功能。

  • 编辑功能:包括博客编辑和提交功能。

六、自动化测试

(1)自动化测试脚本: 

1. Utils.py
        内容:封装浏览器驱动的初始化和截图功能。

        方法:

                __init__:初始化Chrome浏览器驱动。

                getScreeShot:截取当前页面并保存为图片。

2. BlogLogin.py
        内容:测试博客系统的登录功能。

        方法:

        LoginSucTest:测试成功登录。

        LoginFailNameTest:测试错误用户名登录。

        LoginFailPassTest:测试错误密码登录。

        LoginFailNamePassTest:测试错误用户名和密码登录。

3. BlogList.py
        内容:测试博客系统的首页功能。

        方法:

        ListSucTest:测试登录状态下的首页显示的个人信息、博客列表以及右上角的功能、

        ListFailTest:测试未登录状态下的首页功能。

4. BlogDetail.py
        内容:测试博客系统的详情页功能。

        方法:

        DetailSUCTest:测试登录状态下的博客详情页展示的博客发布标题、时间、内容以及编辑和删除按钮。

        DetailFailTest:测试未登录状态下的博客详情页功能。

5. BlogEdit.py
        内容:测试博客系统的编辑功能。

        方法:

        EditSucTest:测试输入博客标题和内容后发布是否成功。

        EditFailTest:测试未输入标题时发布是否成功。

6. RunTest.py
        内容:调用各个测试类,执行完整的测试流程。

         依次调用BlogLogin、BlogList、BlogDetail、BlogEdit的测试方法。

完整自动化测试脚本链接

(2)遇到的问题

  • 执行自动化测试时,测试用例的顺序很重要,要使得每个测试用例之间不产生冲突。比如在失败登录后,紧接着测试博客首页功能时,就会报错。

  • 对于页面输入框多次输入的情况下,一定要使用clear清空,否则会出现叠加的情况。比如在输入错误账号登录失败后,使用back回退到登录页面,直接输入正确账号正确密码也无法正常登录。

  • 注意等待时间,合理利用隐式等待。避免因页面加载速度慢而导致的测试失效。同时要给弹出窗口留够时间,避免因页面检测不到弹窗而报错

(3)亮点

  • 在每次测试完成后,自动截取当前页面图片,以当天日期+时间的格式保存在当日文件夹下,便于后续分析和问题排查。

  • 只创建一次驱动,避免每个用例重复创建驱动对象而降低了性能。

  • 有些场景页面渲染速度因网络问题等原因加载速度较慢,添加隐式等待,可避免测试程序提前报错,同时也提高了自动化测试效率。

  • 使用Selenium进行自动化测试,结合WebDriver Manager自动管理浏览器驱动,确保测试环境的一致性和稳定性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/31803.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chebykan wx 文章阅读

文献筛选 [1] 神经网络:全面基础 [2] 通过sigmoid函数的超层叠近似 [3] 多层前馈网络是通用近似器 [5] 注意力是你所需要的 [6] 深度残差学习用于图像识别 [7] 视觉化神经网络的损失景观 [8] 牙齿模具点云补全通过数据增强和混合RL-GAN [9] 强化学习:一…

LabVIEW变频器谐波分析系统

随着工业自动化的发展,变频器在电力、机械等领域的应用日益广泛,但谐波问题直接影响系统效率与稳定性。传统谐波检测设备(如Norma5000)精度虽高,但价格昂贵且操作复杂,难以适应现场快速检测需求。本项目基于…

C语言每日一练——day_4

引言 针对初学者,每日练习几个题,快速上手C语言。第四天。(连续更新中) 采用在线OJ的形式 什么是在线OJ? 在线判题系统(英语:Online Judge,缩写OJ)是一种在编程竞赛中用…

理解字符流和字节流,节点流和处理流、缓冲流、InputStreamReader、BufferInputStream、BufferReader...

DAY10.2 Java核心基础 IO流 字符流和字节流 字符流和字节流在每次处理数据的单位不同,一个是字符,一个是字节 如果复制文件类型是文本类型,字节流字符流都可以 如果复制的文件类型是非文本类型,则只能使用字节流,使…

泄露测试仪CTS的Sentinel I28使用

前言:本文档主要讨论CTS Sentinel I28的使用方法,设备图片如下: 具体文档可从下面链接下载: https://download.csdn.net/download/qq_34047402/90471262 泄露测试仪CTS的SentinelI28使用资源-CSDN文库 [注意] 调压方式,若选择机械式调压,那么测试的压力值只能有1个,…

YOLOv11融合[CVPR205]SCSegamba中的GBC结构

YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 YOLOv11改进汇总贴:YOLOv11及自研模型更新汇总 《SCSegamba: Lightweight Structure-Aware Vision Mamba for Crack Segmentation in Structures》 一、 模块介绍 论文链接:https://arxi…

C++蓝桥杯皮亚诺曲线距离求解

C蓝桥杯皮亚诺曲线距离求解 一、题目概述二、解题分析2.1解题思路2.2k值范围限制 三、实现代码四、代码测试4.1蓝桥杯测试平台4.2直接传入原始输入的k值4.3限制k值大小4.4pow函数求整数高次幂存在误差4.5满分代码 附录error: ‘long long int y1’ redeclared as different kin…

uni-app+vue3学习随笔

目录相关 static文件 编译器会把static目录中的内容整体复制到最终编译包内, 非 static 目录下的文件(vue组件、js、css 等)只有被引用时,才会被打包编译。 css、less/scss 等资源不要放在 static 目录下,建议这些…

为什么大模型网站使用 SSE 而不是 WebSocket?

在大模型网站(如 ChatGPT、Claude、Gemini 等)中,前端通常使用 EventSource(Server-Sent Events, SSE) 来与后端对接,而不是 WebSocket。这是因为 SSE 更适合类似流式文本生成的场景。下面我们详细对比 SSE…

【2025】基于python+django的考研自习室预约系统(源码、万字文档、图文修改、调试答疑)

考研自习室预约系统通过 Python Django 技术栈的深度整合,为考研学生和自习室管理者打造了一个高效、便捷、智能的自习室预约管理平台。系统不仅满足了学生便捷预约自习室的需求,提升了备考效率,还帮助管理者实现了自习室资源的科学管理和优…

Flutter中stream学习

Flutter中stream学习 概述Stream的基础概念stream的常用方法Stream.fromFuture(Future<T> future)Stream.fromFutures(Iterable<Future<T>> futures)Stream.fromIterable(Iterable<T> elements)Stream.periodic(Duration period, [T computation(int c…

计算机网络:计算机网络的组成和功能

计算机网络的组成&#xff1a; 计算机网络的工作方式&#xff1a; 计算机网络的逻辑功能; 总结&#xff1a; 计算机网络的功能&#xff1a; 1.数据通信 2.资源共享 3.分布式处理:计算机网络的分布式处理是指将计算任务分散到网络中的多个节点&#xff08;计算机或设备&…

【redis】五种数据类型和编码方式

文章目录 五种数据类型编码方式stringhashlistsetzset查询内部编码 五种数据类型 字符串&#xff1a;Java 中的 String哈希&#xff1a;Java 中的 HashMap列表&#xff1a;Java 中的 List集合&#xff1a;Java 中的 Set有序集合&#xff1a;除了存 member 之外&#xff0c;还有…

AI与现有运维管理软件之间的相互影响和协同发展

AI与现有运维软件之间的相互影响和协同发展。我们可以从几个角度来探讨&#xff1a; 1. AI与运维软件的共生关系 已有运维软件作为大模型的一部分&#xff1a;运维软件&#xff08;如监控易&#xff09;在长期运行中积累了大量的数据和经验&#xff0c;这些数据和经验可以被用来…

深度评测DeepSeek、ChatGPT O1和谷歌Gemini AI应用开发场景 - DeepSeek性能完胜!

下面我会展示我为期一周的实验结果&#xff0c;创作不宜&#xff0c;希望大家关注我&#xff0c;以后多多互3&#xff01;前一阵我在互联网上看到很多关于DeepSeek R1的讨论&#xff0c;这个开源模型据说可以媲美&#xff0c;甚至优于像OpenAI o1这样的付费模型。 由于我在日常…

使用DeepSeek+蓝耘快速设计网页简易版《我的世界》小游戏

前言&#xff1a;如今&#xff0c;借助先进的人工智能模型与便捷的云平台&#xff0c;即便是新手开发者&#xff0c;也能开启创意游戏的设计之旅。DeepSeek 作为前沿的人工智能模型&#xff0c;具备强大的功能与潜力&#xff0c;而蓝耘智算云平台则为其提供了稳定高效的运行环境…

Hcaptcha验证码自动识别方案详解

Hcaptcha验证系统简介 这个令人头疼的验证系统长这样: 还有这样: 看着就让人不开心,每次都要玩这种小游戏。 工作原理 1. 环境评估(形式主义阶段) 它会检查这些东西: 浏览器指纹行为数据IP地址网站设置 如果你看起来像个"正常访客",它可能就放你过。但要是发现…

SpringBoot事务管理

Spring事务管理 在日常开发过程中&#xff0c;只要涉及数据操作&#xff0c;都不可避免地会涉及事务管理相关内容&#xff0c;而Spring提供了强大的事务管理机制&#xff0c;能够帮助开发者更轻松地处理数据一致性和事务的问题。 一、什么是事务管理 事务&#xff08;Transa…

JU TPS研究笔记

这个模板的Cover Demo和尘白禁区一样&#xff0c;是自由观察和背后锁定视角可切换的TPS。这种模式比单独做自由观察或背后锁定都要复杂。在非瞄准也就是自由观察状态&#xff0c;鼠标控制相机转动&#xff0c;WASD控制人物以相机前方为前方一边移动一边平滑旋转到面对移动方向。…

[NewStarCTF 2023 公开赛道]ez_sql1 【sqlmap使用/大小写绕过】

题目&#xff1a; 发现id处可以sql注入&#xff1a; 虽然输入id1;show databases;#没什么回显&#xff0c;但是知道这里是字符型注入了 这次利用sqlmap注入 --dbs&#xff1a;列出所有数据库名字 python .\sqlmap.py -u http://a40b2f0a-823f-4c99-b43c-08b94ed0abb2.node5.…