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

【测试报告】博客系统

 

  1. 项目背景

  博客系统由五个页面构成:用户登录页面,博客列表页面,博客详情页面,博客编辑页面,博客发布页,为了验证个人博客系统的功能是否正常,现在对博客系统进行手动和自动化测试,以便用户使用博客系统进行登录,项目的具体测试内容为:博客系统的登录,博客列表页和博客详情页还有博客编辑页的页面呈现和功能,写博客,退出博客登录的功能是否正常,个人博客系统可以实现发布个人博客,记录博客发布日期、时间、标题、博客发布者等信息。

1.对博客系统进行基本的功能测试

设计测试用例一般从6个方面进行设计:

  功能测试,界面测试,性能测试,易用性测试,安全测试,兼容性测试等6个方面进行设计试,个人实现的博客系统是一个web网址,我们主要对核心功能进行测试就可以了:

2.1登录页面测试

账号和密码都已经储存在数据库里面,只要对应的输入框输入正常的账号和密码就可以,跳转到博客列表页了。

 

输入正确的账号密码(账号:zhangsan 密码:123456):

 

不出意外的话点击“提交”按钮就会跳转到首页:

 

 点击“提交”后成功进入了首页。

输入正确的账号和错误的密码(账号:zhangsan 密码:123):

 

输入正确的账号和错误的密码会出现弹窗,显示密码错误。

输入错误的账号和正确的密码(账号:qqq 密码:123456):

 

显示用户不存在,在预期之中。

试试账号和密码为空:

           显示“账号和密码不能为空”,显然都是正常的。

2.2博客列表页面测试

 在登录页面在对应的输入框输入正确的账号和密码后,会跳转到博客列表页面,可以看到当前登录的用户昵称和发布文章数量还有分类,列表区可以看到已发布博客文章信息(包括标题、时间、博客内容)等信息。

 列表页展示(如果已经发布了博客发布文章的数量不为0)

2.3博客详情页面测试

博客详情页里面有当前登录用户的昵称,和发布文章的数量和分类的数量,可以看到可以发布的博客文章的(标题,发布博客的时间,和博客的内容)。

(权限)如果查看的文章是当前用户自己发布的,那么当前用户对这篇文章的权限是:读,写,修改,删除等,如果查看的文章是其他用户发布的,那么当前用户对文章的权限只能是只读。

博客详情页

预期效果:有用户信息,编辑和删除按钮存在,博客标题和内容存在。

 

2.4 博客编辑页测试

  在博客列表页右上角点击”写博客“,即可进入博客编辑页面,此时可以进行新博客的写入操作。

用户登录成功后会跳转到博客列表,点击右上角写博客,就会跳转到博客编辑页面。

预期效果:博客编辑页面有(输入博客标题框,文本工具区,博客内容输入区,发布文章按钮)。

值得注意的是博客的标题或内容不能为空,否则会发布失败,弹出窗口提示

 预期效果:跳转回博客列表区,博客文章数量+1.

​​​​​​​2.5 删除博客测试

在博客列表页点击任意一篇发布的文章查看全文按钮,就可以进去到该篇博客的详情页,然后点击博客详情页里面的删除按钮,页面就会跳转到博客列表页,并且该片博客会被删除,博客数量-1。

 

客会被删除,博客数量-1。

(a)在博客列表页点击查看全文,跳转到博客详情页

跳转到博客详情页,点击删除按钮

预期效果:当前博客文章被删除,且跳转回博客列表页,博客文章数量-1。

实际效果展示:可以看到该博客已经消失在博客列表页了。

2.6博客退出功能测试

博客列表页点击”注销“按钮之后,会跳转到博客登录界面,此时界面中的账号和密码输入框中的数据被清空,可以正常登录。

(b)点击右上角的注销按钮就可以退出博客

预期效果:退出到博客登录页面而且账号输入框的账号和密码输入框的密码都被清空。

实际效果展示:

3.使用Selenium进行Web自动化测试(Python)

(简介)想要进行Web自动化测试得先安装两个工具

1.selenium库:selenium是⼀个web⾃动化测试⼯具,selenium中提供了丰富的⽅法供给使⽤者进⾏web⾃动化测 试

2.webdriver-manager驱动:若通过安装驱动的⽅式来启动浏览器,每次浏览器更新后对应的驱动也需要更新,为了解决这个问 题,selenium中提供了驱动管理⼯具webdriver-manager,有了webdriver-manager⽆需⼿动安装浏 览器驱动,即使浏览器更新也不会影响⾃动化的执⾏,WebDriver Manager是⼀个开源的命令⾏⼯具,它可以⾃动下载和安装适⽤于不同浏览器的 WebDriver。通过使⽤WebDriverManager,我们可以确保浏览器驱动版本始终与浏览器版本保持⼀ 致,从⽽避免因版本不匹配⽽导致的各种问题。

3.1 博客登录的自动化测试

①创建一个文件名为:BlogLoginTest.py,里面存在测试登录的函数(包括成功登录和异常登录)

②引入名为common的python包,包上common里面的Utils.py文件

③创建一个名为BlogLogin的类,把driver和url成员变量还有函数的实现方法定义在里面(登录成功为BlogSucTest,登录失败为BlogFailTest)

④重点注意清空输入框的内容后才能再次输入用户名及密码进行登录

⑤(测试内容):在这个自动化测试中主要是对页面是否正常打开,并且针对是否可以登录成功/登录失败进行测试。

⑥在RunTest.py里面主要函数调用的顺序,想要看到其他页面的正常效果必须先登录成功

————————————————

3.2 博客列表页的自动化测试

①创建一个文件名为:BlogListTest.py,里面存在测试列表页的函数(包括成功登录状态下的列表页测试和未登录状态下的列表页测试)

②引入名为common的python包,包上common里面的Utils.py文件

③创建一个名为BlogList的类,把driver和url成员变量还有函数的实现方法定义在里面(成功登录测试的列表BlogLoginListTest,登录状态下退出登录函数QuitBlogLoginListTest,,未登录测试的列表页为NotBlogLoginListTest)

④重点注意清空输入框的内容后才能再次输入用户名及密码进行登录

⑤(测试内容):博客标题、博客发布的时间,博客内容、查看全文按钮,左边的用户基本信息等是否存在,以及"博客数量是否为0”

⑥在RunTest.py里面主要函数调用的顺序,想要看到其他页面的正常效果必须先登录成功

————————————————

3.3 博客详情页的自动化测试

①创建一个文件名为:BlogDetailTest.py,里面存在测试列表页的函数(包括成功登录状态下的详情页测试和未登录状态下的详情页测试)

②引入名为common的python包,包上common里面的Utils.py文件

③创建一个名为BlogDtail的类,把driver和url成员变量还有函数的实现方法定义在里面(成功登录状态下测试的列表BlogLoginDetailTest,成功登录状态下删除博客DeteleBlogLoginDetailTest,未登录状态下测试的列表页为NotBlogLoginDetailTest)

④重点注意清空输入框的内容后才能再次输入用户名及密码进行登录

⑤(测试内容):博客标题、博客发布的时间,博客内容、左边的用户基本信息,编辑和删除按钮等是否存在

⑥在RunTest.py里面主要函数调用的顺序,想要看到其他页面的正常效果必须先登录成功

————————————————

 3.4 博客编辑页的自动化测试

①创建一个文件名为:BlogLoginTest.py,里面存在测试登录的函数(包括成功登录和异常登录)

②引入名为common的python包,包上common里面的Utils.py文件

③创建一个名为BlogLogin的类,把driver和url成员变量还有函数的实现方法定义在里面(登录成功为BlogSucTest,登录失败为BlogFailTest)

④重点注意清空输入框的内容后才能再次输入用户名及密码进行登录

⑤(测试内容):在这个自动化测试中主要是对页面是否正常打开,并且针对是否可以登录成功/登录失败进行测试。

⑥在RunTest.py里面主要函数调用的顺序,想要看到其他页面的正常效果必须先登录成功

————————————————

3.5 博客退出的的自动化测试

①在BlogList文件的BlogList类中构造函数,编写一个在登录状态下退出账号测试脚本

②这个界面中,主要是针对页面是否显示正常,在列表页点击“退出”(我这里的按钮名字是注销)按钮是否正常跳转到登录页

③在RuntTest.py中指定各个函数的执行顺序

 自动化测试代码链接:测试代码仓库

 自动化测试的优点:

①把测试不同页面和不同功能分为不同的测试文件,提高的代码的可读性,检查的时间也方便查找出不同模块出现问题的位置

②把创建驱动放到一个python里面的python中,避免重复创建驱动的消耗,提高性能和节约空间和时间

③当代码的加载速度比页面的渲染速度快的时候,人力测试要盯着页面,而自动化测试可以使用显示等待和隐式等待可以在规定时间内等待页面加载出来,最好不要使用强制等待(消耗的时间太多)

④可以在每个测试函数调用的时候,调用在驱动对象类里面创建截图函数,来记录函数运行时的页面,当出现报错的时候可以在截图中查找问题。
 

      

http://www.xdnf.cn/news/9636.html

相关文章:

  • 学习python day10
  • 5.2.2二叉树的存储结构
  • 电脑软件管家 免安装便携 四十多种功能系统优化”“磁盘清理”“隐私保护
  • Windows中“无法成功完成操作,因为文件包含病毒或潜在的垃圾软件
  • 辛格迪客户案例 | 合规升级之路:辛格迪助力倍特药业迈向卓越
  • 面对 UI 差异化的调试难题:本地多设备测试中的 WebDebugX 应用实录
  • 【蓝桥杯嵌入式】【复盘】第15届省赛真题
  • Python学习(3) ----- Python的函数定义及其使用
  • OpenLayers 加载网格信息
  • [CISCN 2021初赛]glass
  • 【第2章 绘制】2.15 剪辑区
  • 【摄影教程】
  • 使用jessibuca+wvp+zlm实现html无插件播放摄像头实时画面
  • promise详细总结
  • VTK|Z轴拉伸功能的实现
  • 【Redis】通用命令
  • 使用Milvus运行一个Milvus单机版实例
  • 什么是 SRM、ERP、SCM,如何科学选型采购系统
  • 【Python】 -- 趣味代码 - 皮卡丘
  • 打造卓越客户支持体验:知识共享驱动服务优化
  • 利用openwrt路由器和随身WIFI搭建CPE
  • 世界模型:AGI突破口?一文了解NVIDIA Cosmos 平台
  • PyTorch 入门学习笔记
  • 【Python】 -- 趣味代码 - 数字游戏
  • 从 0 开始学习大模型应用开发(加餐二)- 使用Spring AI开发MCP系统
  • Java 事务管理:在分布式系统中实现可靠的数据一致性
  • Micro-CT扫描成像的样本处理与样本要求技术指南
  • 浅谈国企数字化转型
  • 2025年5月通信科技领域周报(5.19-5.25):太赫兹通信规模商用启动 空天地一体化网络加速落地
  • “从复眼到智慧”:观测云2025发布会专访—— CEO 蒋烁淼