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

软件测试之基于博客系统项目的功能测试

软件测试之基于博客系统项目的功能测试

  • 博客系统功能测试
    • 自动化测试实施步骤
      • 1 编写web测试用例
      • 2 自动化测试脚本开发
      • 3 ⾃动化测试补充⾄测试报告

上篇文章详细叙述了web自动化测试常用函数,它分别从元素定位,操作测试对象,窗口,等待,导航,弹窗,文件上传,浏览器参数这8个方面全面介绍了测试中常用函数。本篇文章基于上篇所讲的软件测试常用函数,制作一篇基于博客系统项目的web端功能测试。

博客系统功能测试

在互联网内容创作蓬勃发展的当下,博客系统作为用户分享观点、记录生活的重要平台,其功能稳定性与用户体验直接影响使用粘性。
开展博客系统功能测试,旨在通过系统性验证注册、发布、评论等核心功能的准确性,排查潜在bug与逻辑漏洞,确保系统在多场景下稳定运行。 这一项目不仅能保障用户正常使用各类功能,更是提升产品竞争力、降低后期运维成本的关键环节,为博客系统的可持续优化奠定基础。

自动化测试实施步骤

自动化测试实施主要由3步组成—编写web测试⽤例,⾃动化测试脚本开发,将⾃动化测试补充⾄测试报告,下面我将逐一为大家介绍。

1 编写web测试用例

编写Web测试用例时,需先依据需求文档梳理功能点,采用等价类划分、边界值分析等方法设计覆盖正常与异常场景的用例,同时结合场景法模拟用户真实操作路径。需注意用例描述要清晰具体,明确输入、操作步骤与预期结果,避免歧义;还要考虑浏览器兼容性、响应式布局等非功能维度,以及对验证码、文件上传等特殊控件的测试覆盖,确保用例既全面又具备可执行性,为Web系统质量验证提供有效支撑。

在这里插入图片描述
:上图为本人写的测试用例,用例主要描述的是成功登录状态下的各个界面的测试用例,未登录状态下并未过多描述与测试,小伙伴们自己编写测试用例时可以成功登陆与未成功登录等各种情况都详细描述测试一下喔~

2 自动化测试脚本开发

自动化测试脚本开发能够将重复性的测试任务转化为可重复执行的代码,大幅提升测试效率,减少人工测试的时间与成本。通过脚本自动执行测试用例,可实现7×24小时不间断测试,及时发现系统在不同环境下的潜在问题。同时,脚本的复用性支持回归测试快速开展,帮助团队在项目迭代中高效验证功能稳定性,为软件质量持续提供可靠保障。

1.首先创建一个com.py的python文件,里面主要存储web测试中需要共同使用的函数—浏览器对象函数,隐式等待函数,屏幕截图函数等等。
在这里插入图片描述
下面为com.py文件里具体代码:

import os.path
import sys
from datetime import datetime
from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.edge.service import Service
from webdriver_manager.microsoft import EdgeChromiumDriverManager#创建一个浏览器对象
class Driver:driver = ""def __init__(self):driver_path = EdgeChromiumDriverManager().install()edge_options = Options()edge_options.add_argument( "--remote-allow-origins=*" )# 2. 创建浏览器驱动对象访问浏览器self.driver = webdriver.Edge( service=Service( driver_path ), options=edge_options )#隐式等待self.driver.implicitly_wait(3)#创建屏幕截图def getScreenShot(self):dirname = datetime.now().strftime("%Y-%m-%d")if not os.path.exists("../images/"+dirname):os.makedirs("../images/"+dirname)#图片路径:../images/LoginSucTest(方法名)-2025-06-04/2025-06-04-183940.pngfilename = sys._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.其次创建若干个test文件,比如博客登录文件,博客首页文件,博客详情页文件,博客编辑页文件等等,并把这些文件放在同一个命名为tests的python包中。
在这里插入图片描述
下面为各个文件的详细代码
<1>博客登陆文件:博客登陆页面的测试

import time
from commmon.com import BlogDriver
from selenium.webdriver.common.by import By#测试博客登陆页面
class BlogLogin:url = ""Driver = ""def __init__(self):self.url = "http://8.137.19.140:9090/blog_login.html"self.driver = BlogDriver.driverself.driver.get(self.url)#登录失败为弹窗警告def LoginFailTest(self):# 前面的输入账号密码没退出,在send会变成拼接,因此需要清空在输入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( "123" )self.driver.find_element( By.CSS_SELECTOR, "#submit" ).click()BlogDriver.getScreenShot()time.sleep(3)# 验证登陆失败(出现弹窗)alert = self.driver.switch_to.alert#打印弹窗 有弹窗的时候 是不能截图的 所以你这里截图无效 你要么点提前之前截图 要么去掉截图都可以#BlogDriver.getScreenShot()alert.accept()#成功登陆的测试用例def LoginSuTest(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()time.sleep(3)
#能够找到博客首页的用户昵称,证明登陆成功,否则登陆失败self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.left > div > h3")BlogDriver.getScreenShot()

<2>博客首页文件:博客首页的测试

#博客首页测试
from selenium.webdriver.common.by import By
from commmon.com import BlogDriverclass BlogList:url = ""driver = ""def __init__(self):self.url = "http://8.137.19.140:9090/blog_list.html"self.driver = BlogDriver.driverself.driver.get(self.url)#登陆情况下测试博客首页(标题,内容,按钮)是否存在,个人信息-昵称是否存在def ListTestByLogin(self):self.driver.find_element( By.CSS_SELECTOR, "body > div.container > div.right > div:nth-child(1) > div.title" )self.driver.find_element( By.CSS_SELECTOR, "body > div.container > div.right > div:nth-child(1) > div.desc")self.driver.find_element( By.CSS_SELECTOR,"body > div.container > div.right > div:nth-child(1) > a")self.driver.find_element( By.CSS_SELECTOR, "body > div.container > div.left > div > h3" )#添加屏幕截图BlogDriver.getScreenShot()

<3>博客详情页文件:博客详情页的测试

from selenium.webdriver.common.by import By
from commmon.com import BlogDriver#测试博客详情页
class BlogDetail:url = ""driver = ""def __init__(self):self.url = "http://8.137.19.140:9090/blog_detail.html?blogId=97185"self.driver = BlogDriver.driverself.driver.get( self.url )#登录状态下的博客详情页信息(标题,发布时间,具体博客内容)def DetailTestByLogin(self):self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div > div.title")self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div > div.date")self.driver.find_element(By.CSS_SELECTOR,"#detail > p")

<4>博客编辑页文件:博客编辑页测试

from selenium.webdriver.common.by import By
from commmon.com import BlogDriver#测试博客编辑页面
class BlogEdit:url = ""driver = ""def __init__(self):self.url = "http://8.137.19.140:9090/blog_edit.html"self.driver = BlogDriver.driverself.driver.get(self.url)#测试登录状态下编辑完成正确发布博客(标题输入关键词,点击发布文章按钮,内容输入关键内容-通过菜单栏点击,博客系统编辑区默认下就不为空,可以不处理)def EditSuTestByLogin(self):self.driver.find_element(By.CSS_SELECTOR,"#title").send_keys("博客系统界面自动化测试")self.driver.find_element(By.CSS_SELECTOR, "#submit").click()#屏幕截图BlogDriver.getScreenShot()

3.最后,创建一个运行文件RunTest.py,在这个文件中运行博客登录文件,博客首页文件,博客详情页文件和博客编辑页文件里的内容。
在这里插入图片描述
RunTest.py里的代码如下:

from commmon.com import BlogDriver
from tests.BlogDetail import BlogDetail
from tests.BlogEdit import BlogEdit
from tests.BlogList import BlogList
from tests.BlogLogin import BlogLoginif __name__ == "__main__":BlogLogin().LoginFailTest()BlogLogin().LoginSuTest()BlogList().ListTestByLogin()BlogDetail().DetailTestByLogin()BlogEdit().EditSuTestByLogin()BlogDriver.driver.quit()

4.结束观察界面自动截图展示,从而排查bug以及观察各个界面运行结果
在这里插入图片描述
总结:小伙伴们可以仿照我的代码自己动手实践一下,从而真正学会对web网页进行功能自动化测试噢(ง •_•)ง

3 ⾃动化测试补充⾄测试报告

1.项目背景
1.1测试目标及测试任务概括
1.2被测的系统、代码包及其文档等信息
1.3产品需求和设计文档等
《需求文档》、《技术文档》、《设计图》
2.测试安排
3.测试分类
1)功能测试
测试用例
功能测试结果:测试用例100%通过
2)性能测试
测试用例
功能测试结果:测试用例100%通过
3)自动化测试
自动化测试覆盖模块:登陆页面、博客首页、博客编辑页面、博客详情页面等等
●自动化代码示例(可以是代码链接,也可以直接放代码)
自动化测试用例数量:20
自动化测试结果:pass:19/20、fail:1/20
●自动化测试问题是否修复:是
4.遗留风险
测试时间紧张,先保证博客系统主功能没有问题,可能存在细节测试不到位等风险。
5.测试结果评估
1)主功能测试通过,项目可以上线。
2)项目上线后高优观察线上数据,查看线上用户操作日志,及时跟进用户反馈。

写在最后:以上就是博客系统功能测试及自动化实施的全流程梳理啦。从测试用例编写筑牢基础,到脚本开发释放效率,再到融入报告沉淀价值,每一步都为保障系统质量发力。测试之路没有终点,随着博客系统迭代,我也会持续优化测试策略,让自动化测试更好地护航产品体验,期待和小伙伴们继续交流更多测试干货,我们下次博客见~

相关文章:

  • 解锁Flink CDC:实时数据同步秘籍
  • 速盾:高防CDN可以加速数据库吗?
  • 使用spring-ai-alibaba接入大模型
  • SAP学习笔记 - 开发32 - 前端Fiori开发 Content Density(内容密度)
  • 23、Python字符串核心机制解析:驻留原理、对象比较与成员检测实战
  • 2024睿抗-03
  • Ubuntu 24.04 systemd-journald日志系统 journalctl 查看日志
  • JPA将大数据量的Excel文件导入到数据库中
  • 嵌入式开发学习日志(数据库II 网页制作)Day38
  • OPenCV CUDA模块立体匹配------对立体匹配生成的视差图进行双边滤波处理类cv::cuda::DisparityBilateralFilter
  • unicode减肥计划
  • Cohen–Grossberg神经网络
  • 提升集装箱及金属包装容器制造交付效率:数字化项目管理系统的核心优势
  • 中国北方GNSS业务站网积雪深度数据集(GSnow-CHINA v1.0, 12h/24h, 2013-2...
  • 【数据结构】 优先级队列 —— 堆
  • 【MySQL进阶】MySQL程序
  • TrOCR模型微调
  • LDStega论文阅读笔记
  • 阿里云可观测 2025 年 5 月产品动态
  • 【每日likou】704. 二分查找 27. 移除元素 977.有序数组的平方
  • 武汉前端工程师工资一般多少/廊坊自动seo
  • 用asp.net做购物网站/廊坊优化外包
  • 建筑网校有哪些/广州seo网站排名
  • 网络销售心得体会总结/西安seo外包服务
  • 做网站个体户经营范围/关键词网站
  • 建站公司网站 phpwind/疫情最新消息