听吧音乐项目
听吧音乐测试
- 1.项目背景
- 2.需求分析
- 2.1 用户需求
- 2.2 软件需求
- 3. 测试点分析及测试用例
- 4. 自动化测试代码
- 4.1 注册登录注销模块自动化测试代码
- 4.2 专辑播放自动化测试代码
- 5. 测试报告
1.项目背景
听吧音乐是一个在线听歌网站,游客通过首页可以在线收听其他创作者发布的专辑歌曲。创作者可以创建专辑并为专辑绑定歌曲,歌曲可以从本地上传同时也可以在线录制。
2.需求分析
需求包含用户需求和软件需求。
2.1 用户需求
用户需求:实现一个在线听歌网站,用户可以创建专辑并为专辑绑定歌曲。
2.2 软件需求
登录注册注销模块:用户可以正常登录注册注销。
音频管理模块:用户可以从本地上传音频文件还可以录制音频上传,音频列表可以正常显示。
专辑管理模块:用户可以新建专辑并为专辑绑定歌曲,同时可以正常显示已创建的专辑。
3. 测试点分析及测试用例
用例编号 | 测试内容 | 测试方式 | 测试数据 | 操作步骤 | 预期结果 | 实际结果 |
---|---|---|---|---|---|---|
001 | 界面测试 | 手工 | 无 | 1.用户访问听吧音乐网站 2.对每个页面进行测试 | 每个界面无显示问题 | 每个界面无显示问题 |
002 | 注册功能测试 | 自动化测试 | 用户名:小赵 用户密码:123 | 1.进入网站 2.点击注册按钮 3.输入用户名和密码 | 用户成功注册 | 用户成功注册 |
003 | 注册功能测试 | 自动化测试 | 用户名: 用户密码:123 | 1.进入网站 2.点击注册按钮 3.输入密码 | 用户注册失败 | 用户成功注册 |
004 | 注册功能测试 | 自动化测试 | 用户名:小钱 用户密码: | 1.进入网站 2.点击注册按钮 3.输入用户名 | 用户注册失败 | 用户成功注册 |
005 | 登录功能测试 | 自动化测试 | 用户名: 用户密码:123 | 1.进入网站 2.点击登录按钮 3.输入密码 | 用户登录成功 | 用户成功登录 |
006 | 登录功能测试 | 自动化测试 | 用户名:小钱 用户密码: | 1.进入网站 2.点击登录按钮 3.输入用户名 | 用户登录失败 | 用户登录失败 |
007 | 音频上传测试 | 手工 | 用户名:小赵 用户密码:123 音频文件 | 1.进入网站 2.用户登录 3.点击上传按钮 4.选择文件上传 | 文件上传成功 | 文件上传成功 |
008 | 音频上传测试 | 手工 | 用户名:小赵 用户密码:123 音频文件 | 1.进入网站 2.用户登录 3.点击上传按钮 4.选择文件上传 | 文件上传成功 | 文件上传成功 |
009 | 首页专辑播放测试 | 自动化 | 无 | 1.进入网站 2.点击专辑名称 3.点击播放按钮 | 音频成功播放 | 音频成功播放 |
4. 自动化测试代码
4.1 注册登录注销模块自动化测试代码
import unittest
from selenium import webdriver
import time
from ddt import ddt, data, unpack, file_data
coding = "utf-8"from selenium.webdriver.common.by import By@ddt
class login(unittest.TestCase):def setUp(self): # 测试固件print("************setUp************")self.driver = webdriver.Chrome()self.url = "http://43.143.178.204:8080/studio/"self.driver.maximize_window()time.sleep(5)# tearDown:测试环境的清理def tearDown(self):print("************tearDown************")self.driver.quit()# @unittest.skip("skipping")# 测试注册用户@data(['小赵', '123'], ['小钱', '123'],['小孙', ''],['', '123'],['小钱', '123'])@unpack # 将数据绑定在一起def test_aaRegister(self,username,password):driver = self.driverurl = self.urldriver.get(url)time.sleep(2)driver.find_element(By.LINK_TEXT, "注册").click()driver.implicitly_wait(3)driver.find_element(By.NAME, "username").send_keys(username)driver.find_element(By.NAME, "password").send_keys(password)driver.find_element(By.TAG_NAME, "button").click()# time.sleep(5)print("************注册成功************")# @unittest.skip("skipping")@data(['小赵', '123'], ['小钱', '123'], ['小孙', ''], ['', '123'])@unpack # 将数据绑定在一起def test_bbLogin(self,username,password):driver = self.driverurl = self.urldriver.get(url)time.sleep(2)driver.find_element(By.LINK_TEXT, "登录").click()driver.implicitly_wait(5)driver.find_element(By.NAME, "username").send_keys(username)driver.find_element(By.NAME, "password").send_keys(password)driver.find_element(By.TAG_NAME, "button").click()# time.sleep(5)print("*********登录成功*********")# @unittest.skip("skipping")def test_cQuit(self):driver = self.driverurl = self.urldriver.get(url)time.sleep(2)driver.find_element(By.LINK_TEXT, "注销").click()time.sleep(5)print("*********登录成功*********")if __name__ == "__main__":unittest.main(verbosity=2)
4.2 专辑播放自动化测试代码
from selenium import webdriver
import unittest
import timecoding = "utf-8"from selenium.webdriver.common.by import By# 点击进入网站首页(已发布专辑列表页面),任意点击一个专辑,播放音频,切换下一首、上一首、暂停,返回首页,点击进入创作中心
class publishedAlbumList(unittest.TestCase):def setUp(self):print("************setUp************")# self.driver,driver 就是全局变量了self.driver = webdriver.Chrome()self.url = "http://43.143.178.204:8080/"self.driver.maximize_window()time.sleep(5)# tearDown:测试环境的清理def tearDown(self):print("************tearDown************")self.driver.quit()def test_aChoiceAlbum(self):driver = self.driverurl = self.urldriver.get(url)time.sleep(2)# 点击专辑名称(进入专辑)driver.find_element(By.LINK_TEXT, "华语私人定制").click()# 固定等待(必须等够设置的时长)time.sleep(5)# 隐式等待(只能等待,等到页面上的元素加载出来之后就去执行下一条指令)# driver.implicitly_wait(5);print("************进入专辑啦************")time.sleep(2)# 进人播放页面(开始播放)play = driver.find_element(By.CSS_SELECTOR, '.fa-play')driver.execute_script("arguments[0].click();", play)time.sleep(15)# 下一首print("************开始播放啦************")driver.find_element(By.ID, "next").click()time.sleep(15)print("************播放下一首************")# 上一首driver.find_element(By.ID, "prev").click()time.sleep(15)print("************播放上一首************")# 暂停driver.execute_script("arguments[0].click();", play)print("************暂停************")time.sleep(3)# 返回首页driver.find_element(By.LINK_TEXT, "听吧音乐").click()time.sleep(3)print("************返回首页************")driver.find_element(By.LINK_TEXT, "创作中心").click()time.sleep(3)print("************进入创作中心************")if __name__ == "__main__":unittest.main(verbosity=2)