测试环境
操作系统:windows10(21H2)
浏览器及版本:Microsoft Edge版本 105.0.1343.42 (正式版本) (64 位)、Firefox104.0.1 (64 位)、
Chrome105.0.5195.127(正式版本)(64 位)
网络:VLAN局域网
设备:PC电脑一台,64位操作系统,i7处理器(16G,256G+1T)
测试过程
界面测试
测试目标:通过测试进行浏览,可正确反映业务的功能和需求,这种浏览包括窗口与窗口之间、字段与字段之间的浏览,以及各种访问方法的使用。窗口的对象和特征(例如:大小、位置、状态和中心)都符合标准。
测试范围:项目所有界面
技术:为每个窗口创建或修改测试,以核实各个应用程序窗口和对象都可正确地进行浏览,并处于正常的对象状态。
序号 | 模块 | 测试点 | 预期结果 | 测试结果 |
pag-001 | 布局 | 图片较多时,每一行最多五张图片 | 是的 | 一致 |
pag-002 | 每张图篇的大小一致,都是200px*200px | 是的 | 一致 | |
pag-003 | 每一张图片都在一个div框里面,图片左下角有图片名称,删除按钮 | 是的 | 一致 | |
pag-004 | 每一页最上面是标题,接下来左边是音乐播放器按钮,右边是图片上传按钮,中间部分展示的是已经上传到服务器上的图片,下方是动态视频 | 是的 | 一致 | |
pag-005 | 文字(标题,图片名称,按钮名称等) | 字体大小 | 与需求一致 | 一致 |
pag-006 | 字体粗细 | 与需求一致 | 一致 | |
pag-007 | 是否斜体展示 | 与需求一致 | 一致 | |
pag-008 | 展示位置 | 与需求一致 | 一致 | |
pag-009 | 字体是否成功展示 | 与需求一致 | 一致 | |
pag-010 | 页面上上传图片的名称是否按照设置的大小、字体形式展示 | 与需求一致 | 一致 | |
pag-011 | 图片 | 图片是否完全展示,即上传的图片和展示的图片内容一致 | 是的 | 一致 |
pag-012 | 每一行的图片个数相等,展示风格一致 | 是的 | 一致 | |
pag-013 | 点击图片本身可以放大图片 | 是的 | 在删除图片后,点击顺序在删除图片后面的图片本身放大,展示的会是往后一位的图片 | |
pag-014 | 点击图片右边的放大按钮,也可以放大图片 | 是的 | 一致 | |
pag-015 | 可以左右滑动连续查看放大图片 | 是的 | 一致 | |
pag-016 | 其他 | 浏览器大小发生改变,图片是否可以正常展示 | 可以,界面自适应 | 一致 |
pag-017 | 插入的图片顺序是否是展示的顺序 | 是的 | 一致 | |
pag-018 | 页面最多展示多少张图片 | 和磁盘空间关联 | 未进行测试 | |
pag-019 | 图片名称过长时页面展示是否美观 | 美观 | 图片名称过长时,该图片展示框会比正常展示框略大 |
功能测试
测试目标:确保测试的功能正常,其中包括图片上传、图片删除、页面展示等。
测试范围:项目全部功能点
技术:利用有效的和无效的数据来执行各个用例、用例流或功能,以核实以下内容:
1.在使用有效数据时得到预期的结果。
2.在使用无效数据时显示相应的错误消息或警告消息。
3.各业务规则都得到了正确的应用。
测试表格如下:(可能会有一点不够专业,仅供参考,且因为篇幅问题省略了一部分测试用例)
编号 | 相关操作 | 预期结果 | 反馈结果 |
fun-001 | 点击“选择文件”按钮 | 出现电脑中资源选择的页面 | 一致 |
fun-002 | 点击“选择文件”按钮=>选择图片=>打开 | 方框中出现选择图片的名称 | 一致 |
fun-003 | 点击“上传”按钮 | 1.页面刷新,展示出刚刚上传的图片; 2.存放图片的位置会有新的经MD5转换名称后的文件出现; 3.数据库中会插入一条新数据 | 一致 |
fun-004 | 不选择任何文件,直接点击“上传” | 出现弹窗“请选择图片后上传” | 一致 |
fun-005 | 上传整个文件夹 | 无法上传,只能打开文件夹 | 一致 |
fun-006 | 一次性上传多个文件 | 无法选中多个图片文件 | 一致 |
fun-007 | 上传.jpg格式文件 | 上传成功 | 一致 |
fun-008 | 上传图片名称为“R-C.jpg” | 上传成功 | 一致 |
fun-009 | 上传图片名称为“lion.jpg”(英文) | 上传成功 | 一致 |
fun-010 | 上传图片名称为“黄昏.jpg”(中文) | 上传成功 | 一致 |
fun-011 | 上传图片名称为“!123.jpg”(符号和数字) | 上传成功 | 一致 |
fun-012 | 上传.png格式文件 | 上传成功 | 一致 |
fun-013 | 上传.zip格式文件 | 上传失败 | 一致 |
fun-014 | 上传.txt文件 | 上传失败 | 一致 |
fun-015 | 上传.docx文件 | 上传失败 | 一致 |
fun-016 | 上传.pdf文件 | 上传失败 | 一致 |
fun-017 | 上传.mp3文件 | 上传失败 | 一致 |
fun-018 | 上传.mp4文件 | 上传失败 | 一致 |
fun-019 | 上传.html文件 | 上传失败 | 一致 |
fun-020 | 上传.exe文件 | 上传失败 | 一致 |
fun-021 | 上传图片名称与数据库中图片名称相同,内容相同 | 出现弹窗“上传图片重复” | 一致 |
fun-022 | 上传图片名称与数据库中图片名称相同,内容不同 | 出现弹窗“上传图片重复” | 一致 |
fun-023 | 上传图片名称与数据库中图片名称不同,内容相同 | 出现弹窗“上传图片重复” | 一致 |
fun-024 | 上传文件大小大于磁盘空间剩余大小 | 提示“磁盘空间不足,上传失败!” | 没有进行测试 |
fun-025 | 上传图片大小是否限制 | 无限制 | 只针对19.1KB~6.15MB图片进行了测试,均可以正常上传 |
编号 | 测试点 | 预期结果 | 实际结果 |
del-001 | 点击某一张图片下方的删除按钮,会出现删除提示弹框,成功删除 | 可以 | 一致 |
del-002 | 能否批量删除 | 一次只能删除一张图片 | 一致 |
del-003 | 删除某一张图片后,页面能否重新排版 | 可以 | 一致 |
del-004 | 删除图片后,在服务器存放图片的路径下,该图片是否消失 | 是 | 一致 |
del-005 | 删除图片后,数据库中存放该图片的数据相应被删除 | 可以 | 一致 |
del-006 | 删除相同名称的其中一个图片,不会对其它名称相同的图片产生影响 | 可以 | 一致 |
编号 | 测试点 | 预期结果 | 实际结果 |
show-001 | 进入主页面,可以看到已经上传到图片服务器上的所有图片 | 可以 | 一致 |
show-002 | 成功上传新图片后,页面会重新加载,展示出新上传的图片 | 可以 | 一致 |
show-003 | 图片数量多了可以分页展示吗 | 不能 | 一致 |
show-004 | 删除图片后,页面会重新加载排版 | 可以 | 一致 |
show-005 | 在进行上传/删除操作后,重新进入主页面,页面渲染正常 | 正常 | 一致 |
非功能性测试
针对兼容性,安全性,易用性,性能方面进行测试
编号 | 模块 | 测试点 | 预期结果 |
oth-001 | 兼容性测试 | 对于不同的浏览器,不同的操作系统,页面显示和功能是否可以正常使用(谷歌、火狐、IE、edge、360、safari等) | 正常 |
oth-002 | 对于每一个浏览器的不同系统版本,页面显示和功能是否可以正常使用 | 正常 | |
oth-003 | 对于不同的操作系统,是否可以正常使用 | 正常 | |
oth-004 | 易用性测试 | 页面功能按钮设计是否直观易用 | 是的 |
oth-005 | 上传图片时,只要选中图片输入框区域,即可上传图片 | 可以 | |
oth-006 | 安全性测试 | 上传图片超过最大限制值,服务器是否会崩溃 | |
oth-007 | 上传带有病毒的文件,会有提示“该文件携带病毒,不允许上传” | ||
oth-008 | 性能测试 | 上传速度 | |
oth-009 | 删除速度 | ||
oth-010 | 图片超过五十张时的上传速度和加载速度 | ||
oth-011 | 多个用户进行上传、删除、加载功能 |
自动化测试
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
import os
#打开页面并窗口最大化
driver = webdriver.Firefox()
driver.get("http://localhost:9000/Picture%20project/")
driver.maximize_window()
#上传图片
driver.find_element(By.CSS_SELECTOR, "[type='file']").send_keys(os.path.abspath("F:/haha.jpg"))
time.sleep(3)
driver.find_element(By.XPATH, "/html/body/div[2]/nav/div/form/div[2]/input").click()
time.sleep(3)
#删除图片
driver.find_element(By.XPATH, "/html/body/div[2]/div/figure/div/div[6]/button").click()
time.sleep(3)
alert = driver.switch_to.alert
alert.accept()
time.sleep(6)
driver.quit()
根据自动化测试生成html报告,可以更直观且集中的发现问题