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

个人博客系统测试(selenium)

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。
P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。

  

在这里插入图片描述

                                           博主主页:Yan. yan.
                                              C语言专栏
                                            数据结构专栏
                                         力扣牛客经典题目专栏
                                                     C++专栏
                                                      软件测试

文章目录

  • 一、项目背景
  • 二、测试环境
  • 三、手工测试用例
  • 四、编写测试用例
  • 五、自动化测试selenium

一、项目背景

  • 项目概要
      本项目是一个全功能的个人博客系统,旨在提供一个用户友好、功能全面的平台,允许用户注册、登录、浏览博客、查看详细内容、发表评论以及发布和管理个人博文。项目的核心功能包括博客列表、博客详情页、用户登录注册、个人中心和发布博客功能。

  • 测试报告目的
      测试报告的主要目的是验证博客系统的功能完整性、性能和安全性。通过对每个核心功能的综合测试,确保系统能够在真实环境中稳定运行,并满足用户的预期需求。此外,报告还旨在识别潜在的问题和缺陷,为后续的开发和改进提供指导。

  • 测试总体执行情况
      主要针对常见功能进行测试例如:博客登录页面,博客列表页面,博客详情页,博客编辑页…

二、测试环境

软件:Google Chrome
测试工具:自动化测试工具Selenium
操作系统:Windows 11
浏览器版本:Google Chrome版本 129.0.6668.59(正式版本) (64 位)

三、手工测试用例

博客登录页
在这里插入图片描述

个人博客列表页
在这里插入图片描述

博客详情页
在这里插入图片描述
博客编辑页
在这里插入图片描述

四、编写测试用例

在这里插入图片描述

五、自动化测试selenium

  • 创建浏览器对象
#创建一个浏览器对象
import datetime
import os.path
import sys
import timefrom selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManagerclass Driver:driver = ""def __init__(self):options = webdriver.ChromeOptions()self.driver = webdriver.Chrome(service = Service(ChromeDriverManager().install()), options = options)self.driver.implicitly_wait(2)def getScreeeShot(self):# 创建屏幕截图if not os.path.exists("../images"):os.mkdir("../images")time.sleep(2)dirname = datetime.datetime.now().strftime("%Y-%m-%d")#判断dirname文件夹是否存在,若不存在则创建文件夹if not os.path.exists("../images/" + dirname):os.mkdir("../images/" + dirname)time.sleep(2)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()
  • 测试博客登录页面
import time
from selenium.webdriver.common.by import By
from common.utils import BlogDriver
#测试博客登录页面class BolgLogin: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 LoginSucTest(self):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.getScreeeShot()#返回登录页面self.driver.back()#异常登录测试def LoginFailTest(self):# 若连续多次send_keys会出现关键词拼接, 而不是替换,要先clear一下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()time.sleep(3)# 添加一个屏幕截图BlogDriver.getScreeeShot()time.sleep(3)self.driver.quit()login = BolgLogin()
login.LoginSucTest()
login.LoginFailTest()
  • 博客首页测试用例
from selenium.webdriver.common.by import Byfrom common.utils import BlogDriver
#博客首页测试用例class 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")list = BlogList()
list.ListTestByLogin()
  • 博客详情页
from selenium.webdriver.common.by import Byfrom common.utils import BlogDriver#博客详情页
class BlogDeail:url = ""driver = ""def __init__(self):self.url = "http://8.137.19.140:9090/blog_detail.html?blogId=5128"self.driver = BlogDriver.driverself.driver.get(self.url)#登录状态下博客详情页测试def DeailTestByLogin(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")
  • 博客编辑页面
from selenium.webdriver.common.by import Byfrom common.utils 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 EditSucTestByLogin(self):self.driver.find_element(By.CSS_SELECTOR, "#title").send_keys("自动化测试创建")#博客编辑区域不好找,默认情况下为空,可以暂时不考率#self.driver.find_element(By.CSS_SELECTOR, "#editor > div.editormd-toolbar > div > ul > li:nth-child(21) > a > i").clear()#直接点击发布按钮来发布博客self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
  1. 创建浏览器对象
    创建测试化对象,负责初始化浏览器,以及相应的屏幕截图。

  2. 测试博客登录页面
    登录博客,读取用户名、密码和预期的博客列表URL。
    打开博客登录页面并输入账号密码。
    点击提交按钮,验证是否成功跳转到博客列表页。
    检查页面上是否显示了正确的用户名。

  3. 博客首页测试用例
    打开博客列表页面
    检查标题,内容,按钮等是否存在
    点击博客列表中的“查看全文”按钮,验证当前URL、页面标题和博客标题是否符合预期。

  4. 博客详情页
    查看已发布的文章,是否与预期相符
    读取标题、时间、内容等是否符合预期

  5. 博客编辑页面
    检查博客编写是否存在问题
    检查标题、按钮、编辑区(博客编辑区域不好找,默认情况下为空,可以暂时不考率)

这个测试流程涵盖了博客系统的主要功能,包括登录、列表展示、详情查看、写博客、信息校验。每个测试用例都设计有明确的预期结果,并通过断言来验证这些预期是否得到满足。

http://www.lryc.cn/news/446289.html

相关文章:

  • 【速成Redis】01 Redis简介及windows上如何安装redis
  • 入侵检测系统(IDS)和入侵预防系统(IPS)
  • pytorch 加载模型参数后 如何测试数据,应用模型预测数据,然后连续变量转换成 list 或者numpy.array padans并保存到csv文件中
  • uni-app开发流程(开发、预览、构建和发布过程)
  • Linux Shell: 使用 Expect 自动化 SCP 和 SSH 连接的 Shell 脚本详解
  • 深入分析MySQL事务日志-Undo Log日志
  • 828华为云征文 | 在Huawei Cloud EulerOS系统中安装Docker的详细步骤与常见问题解决
  • 什么是数据增强中的插值法?
  • springboot实战学习(9)(配置mybatis“驼峰命名“和“下划线命名“自动转换)(postman接口测试统一添加请求头)(获取用户详细信息接口)
  • 之前做了抵押贷款,现在房市不景气,马上贷款要到期了该怎么办?
  • poi生成的ppt,powerPoint打开提示内容错误解决方案
  • 基于stm32物联网身体健康检测系统
  • BeautifulSoup4在爬虫中的使用
  • Laya2.x出包alipay小游戏
  • Vue极简入门
  • 系统敏感信息搜索工具(支持Windows、Linux)
  • Fyne ( go跨平台GUI )中文文档-容器和布局 (四)
  • 文心智能体 恐怖类游戏
  • 智慧城市运营模式--政府和社会资本合作
  • 【Python报错已解决】ValueError: cannot convert float NaN to integer
  • ClickHouse 与 Quickwit 集成实现高效查询
  • Facebook Marketplace无法使用的原因及解决方案
  • uboot — uboot命令的使用
  • 基础漏洞——SSRF
  • 报错解决方案
  • 机器人的动力学——牛顿欧拉,拉格朗日,凯恩
  • 【AI写作】解释区块链技术的应用场景和优势
  • IPsec-Vpn
  • 一日连发两款视频大模型,火山引擎杀疯了!
  • JavaScript --数字Number的常用方法