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

【测试专栏】自动化测试——云存储项目

在这里插入图片描述

目录

  • 1、项目背景
  • 2、项目功能简介
  • 3、编写测试用例
    • 3.1、测试主要内容
    • 3.2、测试用例导图
  • 4、选用测试工具
  • 5、具体功能测试板块
    • 5.1、手动测试登录注册界面
    • 5.2、手动测试其他页面跳转显示是否正常
  • 6、自动化测试板块
    • 6.1、编写Web自动化测试用例
    • 6.2、自动化测试脚本框架
      • 6.2.1、确认是否安装selenium工具和webdeiver-manager驱动管理器
      • 6.2.2、自动化编写的代码框架
    • 6.3、部分代码模块实现
  • 7、BUG发现
  • 8、测试结论

1、项目背景

随着互联网的普及和智能设备的广泛应用,个人用户产生的数据量日益庞大,包括照片、视频、文档、音乐等各种类型的文件。然而,个人用户在数据存储和管理方面面临着诸多困扰。本地存储设备的容量有限,无法满足不断增长的数据存储需求,而且一旦设备损坏或丢失,个人数据将面临永久丢失的风险。
同时,个人用户在不同设备之间进行数据同步和共享时,也常常遇到操作繁琐、速度慢等问题。为了解决个人用户在数据存储和管理方面的痛点,提供一个便捷、安全、高效的云存储解决方案,我们决定开展云存储项目。该项目将让个人用户能够轻松地将数据存储在云端,随时随地访问和管理自己的文件,实现数据的无缝同步和共享,为个人用户带来更加便捷和安全的数据存储体验。

2、项目功能简介

该项目功能是登录后,可以进行所有文件的详情展示、文件的上传下载以及分享、文件\文件夹的创建和删除、用户信息的设置、系统通知功能和帮助中心的展示。

3、编写测试用例

3.1、测试主要内容

对该项目主要是对项目的每个功能模块是否正常运行、是否符合预期。

3.2、测试用例导图

在这里插入图片描述

4、选用测试工具

选用Selenium ‌Web应用程序测试工具,使用Pyhton语言pyhcharm开发工具上,进行云存储web端自动化测试的代码编写。

5、具体功能测试板块

5.1、手动测试登录注册界面

  1. 登录
    在这里插入图片描述

输入已注册的用户信息,成功登录;反之失败。

  1. 注册
    在这里插入图片描述

输入不完整信息,注册失败;未按要求填写数据也注册失败;正确填写后注册成功;再次输入重复的信息提示注册失败。

在这里插入图片描述

5.2、手动测试其他页面跳转显示是否正常

其余页面在登录情况下正常跳转:
在这里插入图片描述

6、自动化测试板块

6.1、编写Web自动化测试用例

在这里插入图片描述

6.2、自动化测试脚本框架

6.2.1、确认是否安装selenium工具和webdeiver-manager驱动管理器

在这里插入图片描述

file中找到Settings上面框出的,若没有则直接在该项目的终端输入下面两个指令:
可以先更新一下Pythonpip安装工具

 python.exe -m pip install --upgrade pip

然后安装Selenium工具

 pip install selenium 

之后安装Webdriver-manager驱动管理工具

 pip install webdriver-manager

6.2.2、自动化编写的代码框架

在这里插入图片描述

6.3、部分代码模块实现

  1. 主程序入口:每个页面测试采用类封装,利用单例模式创建一个浏览器驱动对象。
from autotest import CloudStorageHomePage
from autotest import CloudStorageHelpPage
from autotest import CloudStorageLoginPage
from autotest import CloudStorageUsagePage
from autotest import CloudStorageDisplayPage
from autotest import CloudStorageSharingPage
from autotest import CloudStorageSettingsPage
from autotest import CloudStorageCategoryPage
from autotest import CloudStorageNotificationPage
from common.Utils import CloudDriverif __name__=="__main__":#首页点击跳转登录界面CloudStorageHomePage.HomePage().ButtonTestImmediately()#测试登录失败CloudStorageLoginPage.Login().LoginFialed()#测试登录成功CloudStorageLoginPage.Login().LoginSuccess()#测试登录后用户使用页面CloudStorageUsagePage.Usage().UsagePage()#测试文件目录页面CloudStorageCategoryPage.Category().FileDirectory()#测试文件分类展示页面CloudStorageDisplayPage.Display().DispalyList()#测试文件分享解码器CloudStorageSharingPage.Share().GainShareCode()#测试帮助文档中心是否正常打开CloudStorageHelpPage.Help().HelpWord()#测试用户设置页面CloudStorageSettingsPage.Setting().ChanPassWord()#测试系统通知页面CloudStorageNotificationPage.Notify().Message()#最后关闭CloudDriver.driver.quit()

主要是从项目首页自动跳转到登录页面,进行登录测试用例的登录,然后进入系统里,对每个页面功能模块进行一一测试。

  1. 登录自动化测试代码展示:
#测试登录界面
import time
from selenium.webdriver.common.by import By
from common.Utils import CloudDriverclass Login:url=""driver=""def __init__(self):#该行是url的设置,此处不作显示self.driver=CloudDriver.driverself.driver.get(self.url)#测试登录成功def LoginSuccess(self):#查找输入框,为了不出现意外先清空再输入数据self.driver.find_element(By.CSS_SELECTOR,"#phone").clear()self.driver.find_element(By.CSS_SELECTOR,"#password").clear()#输入正确的账号和密码self.driver.find_element(By.CSS_SELECTOR, "#phone").send_keys("账号不作显示")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123456")#然后点击登录按钮self.driver.find_element(By.CSS_SELECTOR,"#form > button").click()#判断是否登录成功,可以根据登陆之后的页面元素来判断,没找到会报错,注意页面跳转后查找元素一般需要等待一下,不然还没加载出来#是找不到元素的# time.sleep(2)word=self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.sidebar > div > p").textassert word=="普通用户"# self.driver.quit()#返回# self.driver.back()def LoginFialed(self):# 查找输入框,为了不出现意外先清空再输入数据self.driver.find_element(By.CSS_SELECTOR, "#phone").clear()self.driver.find_element(By.CSS_SELECTOR, "#password").clear()# (1)输入正确的账号和错误密码(此处只测该用例)self.driver.find_element(By.CSS_SELECTOR, "#phone").send_keys("账号不作显示")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("12345")#然后点击登录按钮self.driver.find_element(By.CSS_SELECTOR,"#form > button").click()time.sleep(2)word = self.driver.find_element(By.CSS_SELECTOR, "#swal2-title").textassert word == "操作失败"self.driver.find_element(By.CSS_SELECTOR, "body > div.swal2-container.swal2-center.swal2-backdrop-show > div > div.swal2-actions > button.swal2-confirm.swal2-styled").click()# time.sleep(1)# self.driver.quit()#fordebug
# login=Login()
# login.LoginSuccess()
# login.LoginFialed()
  1. 用户设置自动化代码模块
#测试修改密码板块
import timefrom selenium.webdriver.common.by import By
from common.Utils import CloudDriverclass Setting:url=""driver=""def __init__(self):#此行url不作显示self.driver=CloudDriver.driverself.driver.get(self.url)def ChanPassWord(self):self.driver.find_element(By.CSS_SELECTOR,"#settinglink").click()# 切换iframe = self.driver.find_element(By.TAG_NAME, "iframe")self.driver.switch_to.frame(iframe)self.driver.find_element(By.CSS_SELECTOR,"body > div > div.left-section > ul > li:nth-child(2)").click()#输入信息#习惯性先清空self.driver.find_element(By.CSS_SELECTOR,"#old-password").clear()self.driver.find_element(By.CSS_SELECTOR,"#new-password").clear()self.driver.find_element(By.CSS_SELECTOR,"#confirm-password").clear()self.driver.find_element(By.CSS_SELECTOR,"#old-password").send_keys("123456")#新密码以及确认self.driver.find_element(By.CSS_SELECTOR,"#new-password").send_keys("654321")self.driver.find_element(By.CSS_SELECTOR,"#confirm-password").send_keys("654321")self.driver.find_element(By.CSS_SELECTOR,"#passwordForm > div:nth-child(4) > button").click()time.sleep(2)word=self.driver.find_element(By.CSS_SELECTOR,"#swal2-html-container").textprint(word)assert word=="修改密码成功"self.driver.find_element(By.CSS_SELECTOR,"body > div.swal2-container.swal2-center.swal2-backdrop-show > div > div.swal2-actions > button.swal2-confirm.swal2-styled").click()#然后退出登录是否成功#注意要切换self.driver.switch_to.default_content()self.driver.find_element(By.CSS_SELECTOR,"#exit").click()word_exit=self.driver.find_element(By.CSS_SELECTOR,"#swal2-title").textprint(word_exit)assert word_exit=="确认退出?"self.driver.find_element(By.CSS_SELECTOR,"body > div.swal2-container.swal2-center.swal2-backdrop-show > div > div.swal2-actions > button.swal2-confirm.swal2-styled").click()#判断是否退出成功time.sleep(2)assert self.driver.find_element(By.CSS_SELECTOR,"#form > h1").text=="欢迎回来"#重新输入新密码# 查找输入框,为了不出现意外先清空再输入数据self.driver.find_element(By.CSS_SELECTOR, "#phone").clear()self.driver.find_element(By.CSS_SELECTOR, "#password").clear()# 输入正确的账号和密码self.driver.find_element(By.CSS_SELECTOR, "#phone").send_keys("账号不作显示")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("654321")# 然后点击登录按钮self.driver.find_element(By.CSS_SELECTOR, "#form > button").click()# 判断是否登录成功,可以根据登陆之后的页面元素来判断,没找到会报错,注意页面跳转后查找元素一般需要等待一下,不然还没加载出来是找不到元素的# time.sleep(2)word = self.driver.find_element(By.CSS_SELECTOR, "body > div.container > div.sidebar > div > p").textassert word == "普通用户"print("修改后成功登录")

7、BUG发现

  1. BUG 标题
    PC 端显示正常,移动端浏览器中页面内容显示不全且影响功能使用。
  1. 所属模块
    属于页面整体布局模块。
  1. 前置条件
    用户已正常连接网络。
    PC 端使用主流浏览器(如 Chrome、Firefox、Edge 等)访问目标页面,显示正常。
    移动端使用主流浏览器(如 Chrome、Safari 等)访问同一目标页面。
  1. 操作步骤
    打开 PC 端浏览器,输入目标页面网址,成功访问并确认页面显示正常。
    打开移动端浏览器,输入相同的页面网址进行访问。
  1. 实际结果
    在移动端浏览器中,仅显示功能选项列表项,其余功能操作(如文件详情描述、文件目录展示以上传和创建、用户设置等可操作功能都无法展示),严重影响功能使用。
  1. 预期结果
    移动端浏览器中页面应与 PC 端一样,完整显示所有内容,用户能够正常查看信息和进行各项功能操作。
  1. 严重程度
    严重(因为影响功能使用,可能导致用户无法完成关键操作,对用户体验和业务目标达成有较大影响)
  1. 优先级
    高(需要尽快修复,以保障移动端用户的正常使用)
  1. 复现频率
    每次必现(在测试的移动端设备和浏览器环境下均能稳定复现)
  1. 相关截图
    PC 端正常显示截图:
    在这里插入图片描述

移动端显示不全截图:除了功能列表选项正常显示,点击对应功能选项都无法展示对应的功能模块。
在这里插入图片描述

8、测试结论

本次兼容性测试未完全达到预期目标,系统在不同操作系统和浏览器下存在一些兼容性问题。

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

相关文章:

  • 【源码】研学报名小程序开发功能分析案例
  • 网络安全之框架安全漏洞分析
  • 【网页端数字人开发】基于babylonjs+mediapipe实现视频驱动数字人姿态生成
  • .NET 的IOC框架Unity代码示例
  • LangGraph基础知识(MemorySaver/SqliteSaver )(三)
  • Qt::QueuedConnection详解
  • 告别 NullPointerException!深入探索 Java Optional 的最佳实践
  • P1216 [IOI 1994] 数字三角形 Number Triangles
  • C++之前向声明
  • QT绘制会动的蚂蚁线
  • [灵感源于算法] 链表类问题技巧总结
  • 【大模型训练】中短序列attention 和MOE层并行方式(二)
  • 如何在多任务环境中设定清晰的项目优先级?
  • 多面体基准测试集PolyBench
  • 前端~三维地图(cesium)点位聚合
  • 从零打造前沿Web聊天组件:从设计到交互
  • TikTok在英国用户量达3000万
  • 增强自注意力机制CeAtt,增强局部细节!
  • Scrapy爬虫框架:数据采集的瑞士军刀(附实战避坑指南)!!!
  • 如何开始HarmonyOS 5与Godot引擎融合开发?
  • 代码随想录训练营二十六天| 654.最大二叉树 617.合并二叉树 700.二叉搜索树的搜索 98.验证二叉搜索树
  • 如何将照片从Android传输到Mac?
  • IntelliJ IDEA 豆沙绿护眼色设置
  • defineAsyncComponent
  • STM32实战:智能家居控制面板设计方案
  • 2024年12月6级第二套第一篇
  • Android11三网共存
  • Nuxt3 中使用 pnpm 安装的 NuxtImg 使用会提示找不到图片
  • 加性同态加密的原理与函数解析
  • 【凌智视觉模块】rv1106 部署 ppocrv4 检测模型 rknn 推理