目录
一.测试用例的详细测试用例
测试环境;
操作系统:Windows 10家庭版
项目运行:IDEA2021.3.2、maven、JDK1.8
浏览器:Chorme、Edge、FireFox
自动化脚本环境:PyCharm2021.2.3
网络:127.0.0.1:8080
测试技术: 主要采用自动化测试以及手工测试
测试人员: 我
二、测试的开发与执行
1.用python脚本对项目进行自动化测试
1.1对首页进行的测试
场景1:各功能是否都有响应
预期结果:都有响应
部分执行界面展示如下:
注册界面
音频录制界面
实际结果:创作中心各个功能都可以产生正确的响应,与预期结果相同
代码如下:
#首页的测试用例 driver = webdriver.Firefox() driver.maximize_window() driver.get("http://127.0.0.1:8080/studio/index.html") time.sleep(3) driver.find_element_by_xpath("/html/body/div[1]/div[1]/a[1]").click() time.sleep(6) driver.find_element_by_xpath("/html/body/div[1]/div[2]/a[2]").click() time.sleep(3) driver.find_element_by_xpath("/html/body/div[1]/div[1]/a[3]").click() time.sleep(3) driver.find_element_by_xpath("/html/body/div[3]/div[3]/a[1]").click() time.sleep(3) driver.find_element_by_xpath("/html/body/div[3]/div[3]/a[2]").click()
1.2对登陆、注册页面进行的测试
场景1:输入账号和密码是否可以正常登录,进行页面的跳转
预期结果:页面实现正常跳转
实际结果:页面正常跳转,与预期结果相符
代码如下:
#登录界面,输入密码 driver = webdriver.Firefox() driver.maximize_window() driver.get("http://127.0.0.1:8080/studio/user/login.html") time.sleep(3) #输入账户名 driver.find_element_by_xpath("/html/body/div[2]/form/input[1]").send_keys("王小熊") time.sleep(3) #输入密码 driver.find_element_by_xpath("/html/body/div[2]/form/input[2]").send_keys("123") time.sleep(3) driver.find_element_by_id("submit").click() time.sleep(6)
场景2:不输入账号和密码是否不会显示任何的音频信息
预期结果:页面跳转,但不显示任何信息
实际结果:浏览器呈现了空列表页,与预期结果相同
本场景与上面代码相似,不做展示
场景3.上传音频文件是否可以成功
场景4:输入文本文件、pdf、word、png等类型的文件是否可以上传成功。
预期结果:只有audio/mpeg类型的文件可以运行成功
实际结果:文件上传失败,与预期结果一致
场景5:一次上传多个音频文件
预期结果,多次上传只会上传最后一个文件
实际结果:文件上传失败,一次只可上传一个音频。
场景3、4、5的自动化测试脚本如下
#文件上传 driver = webdriver.Firefox() driver.maximize_window() driver.get("http://127.0.0.1:8080/studio/user/login.html") time.sleep(3) #输入账户名 driver.find_element_by_xpath("/html/body/div[2]/form/input[1]").send_keys("王小熊") time.sleep(3) #输入密码 driver.find_element_by_xpath("/html/body/div[2]/form/input[2]").send_keys("123") driver.find_element_by_id("submit").click() driver.find_element_by_xpath("/html/body/div[1]/div[2]/a[1]").click() time.sleep(3) driver.find_element_by_name("title").send_keys("stay") time.sleep(3) #file_path="file:///"+os.path.abspath('C:\\Users\\王小熊\\Documents\\Tencent Files\\1048405649\\听书项目\\src\\main\\webapp\\studio\\track\\stay with me.mp3') # driver.get(file_path) driver.find_element_by_name("track").send_keys('C:\\Users\\王小熊\\Documents\\Tencent Files\\1048405649\\听书项目\\src\\main\\webapp\\studio\\track\\stay with me.mp3') time.sleep(3) #driver.find_element_by_name("track").send_keys('"C:\\Users\\王小熊\\Documents\\Tencent Files\\1048405649\\听书项目\\src\\main\\webapp\\studio\\track\\测试音频.ogg"') time.sleep(10) driver.find_element_by_tag_name("button").click() time.sleep(10) driver.quit()
场景6:复选框是否可以选中,并且释放
自动化测试脚本如下
#复选框测试 driver = webdriver.Firefox() driver.maximize_window() driver.get("http://127.0.0.1:8080/studio/user/login.html") time.sleep(3) #输入账户名 driver.find_element_by_xpath("/html/body/div[2]/form/input[1]").send_keys("王小熊") time.sleep(3) driver.find_element_by_xpath("/html/body/div[2]/form/input[2]").send_keys("123") driver.find_element_by_id("submit").click() driver.find_element_by_xpath("/html/body/div[1]/div[3]/a[2]").click() time.sleep(3) driver.find_element_by_xpath("/html/body/div[3]/div/table/tbody[3]/tr/td[5]/a").click() time.sleep(3) #把滚动条拉到最低端 js="document.documentElement.scrollTop=10000" driver.find_element_by_id("add").click() driver.find_element_by_xpath("/html/body/div[3]/form/div/div[2]/input").click() time.sleep(3) driver.find_element_by_xpath("/html/body/div[3]/form/div/div[3]/input").click() time.sleep(3) driver.find_element_by_xpath("/html/body/div[3]/form/div/div[4]/input").click() time.sleep(3) driver.find_element_by_tag_name("button").click() driver.quit()
小熊听书项目测试用例:
编号 | 具体内容 | 测试数据 | 步骤 | 预期结果 | 实际结果 |
界面测试 | |||||
1 | 界面是否成功显示 | 无 | 浏览器登录页面127.0.0.1:8080 | 成功显示 | 成功显示 |
2 | 布局是否美观易用 | 用户名:王小熊 密码:123 | 浏览器登录页面http://127.0.0.1:8080/studio/user/login.html | 各功能都有响应,且美观易用 | 一致 |
3 | 提示信息是否显示正确 | 用户名:王小熊 密码:123 | 登录之后,检查各页面的提示信息 | 信息提示正确 | 与预期结果一致 |
4 | 图片能否完整显示 | 用户名:王小熊 密码:123 | 登录浏览器之后检查各跳转页面 | 图片都完整显示,没有错误 | 与预期结果一致 |
5 | 各个界面的显示框的大小、字体是否一致 | 用户名:王小熊 密码:123 | 登录浏览器之后检查各跳转页面 | 各显示框大小一致,字体呈现符合设计 | 与预期结果一致 |
6 | 录制音频是否可以正常播放 | 用户名:王小熊 密码:123 | 进行音乐的上传,并在音频列表页进行收听 | 音频正常播放,歌名与歌曲一致 | 与预期结果一致 |
7 | 上传的音频是否可以正常播放 | 用户名:王小熊 密码:123 | 进行音频录制并上传,在音频列表页进行收听 | 音频正常播放,歌曲与歌名一致 | 与预期结果一致 |
8 | 专辑列表页是否可以进行切歌 | 用户名:王小熊 密码:123 | 浏览器登录页面,进入专辑播放,收听专辑,并进行专辑歌曲的切换 | 音频可以进行切换 | 与预期结果一致 |
9 | 界面的自适应测试:浏览器大小发生改变,界面是否可以自适应显示。 | 无 | 浏览器登录页面,点击浏览器有右上角,缩小窗口,查看是否影响用户操作 | 浏览器页面随着缩小产生了自动的调整,不影响用户使用 | 与预期结果一致 |
功能测试 | |||||
1 | 输入用户名密码,是否可以登录成功,并实现网页的跳转 | 用户名:王小熊 密码:123 | 1.写自动化测试脚本 2.登录页面,查看是否登陆成功 3.查看页面是否跳转 | ![]() | 与预期结果一致 |
2 | 当用户名为空时,页面跳转之后,是否显示空的界面 | 用户名: 密码:123 | 1.写自动化测试脚本 2.登录页面,查看是否登陆成功 3.查看页面内容 | ![]() | 与预期结果一致 |
3 | 当用户名时,页面跳转之后,是否提示用户输入密码 | 用户名:王小熊 密码: | 1.写自动化测试脚本 2.登陆页面,查看是否登录成功 3.查看有无提示信息 | ![]() | 与预期结果一致 |
4 | 注销之后提示注销成功 | 用户名:王淇 密码:123 | 点击注销 | ![]() | 与预期结果一致 |
5 | 是否可以一次上传多个文件 | 用户名:王淇 密码:123 准备多个音频文件 | 1.登录界面 2.写自动化测试脚本 3.运行 4.查看结果 | 不可以,一次只可上传一个文件 | 与预期结果一致 |
6 | 可以上传的文件最大是多少KB | 用户名:王淇 密码:123 准备多个音频文件(大小不一,要有很大的文件100M) | 1.准备很多个容量大小不同,区间很大的文件 2.写自动化测试脚本进行测试 3.记录最大上传多少kb | 最大可以上传1000kb以内(之后对数据库进行了扩容,可以容纳100M) | 与预期结果不一致(已修复) |
7 | 音频是否可以成功录制,并在列表页进行显示 | 用户名:王淇 密码:123 | 1.登录界面 2.录制音频并上传 3.查看列表页中的文件有无刚才录制的音频 | ![]() | 与预期结果一致 |
8 | 专辑是否可以创建成功,并且进行显示 | 用户名:王淇 密码:123 专辑的封面图 | 1.登陆界面 2.创建专辑,上传封面图 3.查看专辑列表是否有新创建的专辑 | ![]() | 与预期结果一致 |
9 | 专辑音频是否可以绑定成功,并给予一定的提示 | 用户名:王淇 密码:123 | 1.登录界面 2.点击专辑列表进行音频的绑定 3.查看绑定之后的响应 | ![]() | 与预期结果一致 |
10 | 上传除音频文件之外的文件,是否可以成功 | 用户名:王淇 密码:123 准备pdf,word,png等文件 | 1.登录界面 2.准备各种各样的文件 3.上传文件,并查看结果 | ![]() | 与预期结果一致 |
11 | 专辑复选框是否可以多选 | 用户名:王淇 密码:123 | 1.准备自动化测试脚本 2.登陆界面 3.运行代码 | ![]() | 与预期结果一致 |
12 | 复选框选了之后是否可以取消 | 用户名:王淇 密码:123 | 1.准备自动化测试脚本 2.登陆界面 3.运行代码 | ![]() | 与预期结果一致 |
13 | 新建专辑并且名字以符号开头 | 专辑名:*王淇 | 1.登录界面,创建新专辑 | 创建成功 | 与预期结果一致 |
14 | 新建专辑并且名字以大写字母开头 | 专辑名:angle | 1.登录界面,创建新专辑 | 创建成功 | 与预期结果一致 |
15 | 新建专辑并且名字以大写字母开头 | 专辑:ABC | 1.登录界面,创建新专辑 | 创建成功 | 与预期结果一致 |
16 | 专辑列表是否可以正常见到创建后的专辑 | 创建专辑 | 1.创建成功后,点击创建成功的列表 | ![]() | 与预期结果一致 |
17 | 新建专辑列表中的图片是否可以在列表中显示更新 | 准备图片的url创建专辑,查看专辑列表 | 1.新建专辑查看专辑列表 | ![]() | 与预期结果一致 |
兼容性测试 | |||||
编号 | 具体内容 | 测试数据 | 步骤 | 预期结果 | 实际结果 |
1 | IE浏览器是否可以正常使用此功能 | 下载最常用的IE浏览器 | 登录界面 | ![]() | 与预期结果一致 |
2 | QQ浏览器是否可以正常使用此功能 | 下载最常用的QQ浏览器 | 登录界面 | 可以正常使用 | 与预期结果一致 |
3 | Chorme浏览器是否可以正常使用此功能 | 下载最常用的Chrome浏览器 | 登录界面 | ![]() | 与预期结果一致 |
4 | Firefox浏览器是否可以正常使用此功能 | 下载最常用的Chrome浏览器 | 登录界面 | ![]() | 与预期结果一致 |
5. | 各个浏览器的不同版本测试(全部测试不现实,推荐测试主流的版本。) | IE,Chrome,Edge,火狐,360,搜狗,Safari等浏览器的所有主流版本 | 项目运行后用相关浏览器打开127.0.0.1:8080 | 正常访问并运行相关功能 | 未进行测试 |
6. | Mac系统访问项目 | Mac笔记本电脑配置好相关环境 | 项目运行后打开127.0.0.1:8080 | 正常访问并运行相关功能 | 未进行测试 |
7. | Linux系统访问项目 | 虚拟机或者云服务器是Linux系统并且配置好环境 | 项目运行后打开127.0.0.1:8080 | 正常访问并运行相关功能 | 云服务器可以进行部署,之后所有设备访问服务器网址即可 |
8. | 不同环境下的测试 | 各种环境配置完毕后,使用自动化测试 | 各种环境配置完毕后,使用自动化测试 | 正常测试其相关功能 | 未测试 |
9 | 运行在不同的电脑上面是否可以正常运行 | 华硕、联想、苹果、华为等硬件以及操作系统不同的电脑上面 | 连接网络之后,登录界面 | 正常运行 | 未测试 |
易用性测试 | |||||
1 | 界面是否美观,符合用户的操作习惯 | 用户名:王淇 密码:123 | 1.打开网页,查看所有界面 | 美观且各功能正常 | 与预期结果一致 |
2 | 图片是否有较高的分辨率 | 用户名:王淇 密码:123 | 1.打开网页,查看所有界面 | 分辨率较高 | 与预期结果一致 |
3 | 各种快捷键是否可以使用(回车、复制、粘贴等) | 用户名:王淇 密码:123 | 1.进入网页,进行操作 | 可以使用 | 与预期结果一致 |
4 | 界面使用的文字大小是否适当 | 用户名:王淇 密码:123 | 1.打开网页,查看所有界面 | 适当 | 与预期结果一致 |
性能测试 | |||||
1 | 登录注册页面的响应速度是否大于三秒 | 用户名:王淇 密码:123 | 1.记录执行时间 | 小于三秒 | 与预期结果一致 |
2 | 文件上传速度是否在舒适区间 | 用户名:王淇 密码:123 音频文件 | 1.上传速度在三秒内 | 在舒适区间 | 与预期结果一致 |
3 | 多个用户同时并发的运行是否会造成系统故障 | 准备多个用户 | 1.loadruuner产生多个虚拟用户,对系统进行访问 | 数量过多会发生故障 | 未测试 |
4 | 音频、专辑播放的速度是否大于三秒 | 用户名:王淇 密码:123 | 1.记录执行时间 | 小于三秒 | 与预期结果一致 |
5 | 界面切换是否流畅 | 用户名:王淇 密码:123 | 1.打开网页,查看所有界面 | 很流畅 | 与预期结果一致 |
三、测试总结:
1.用户名、密码在没有输入的情况下页面依旧跳转了,需要改变重定向,提示用户正确的输入用户名和密码。
2.数据库上传较大的音频文件每次都需要执行下面的sql语句,没有解放程序员的双手。
SET GLOBAL max_allowed_packet = 500 * 1024 * 1024;
3.安全系数较低,系统容易受到攻击,要加强对密码的加密,以及对密码的复杂程度进行规定。
4.性能测试需要在上线之后进行完整的测试