听吧音乐是一个在线听歌网站,游客通过首页可以在线收听其他创作者发布的专辑歌曲。创作者可以创建专辑并为专辑绑定歌曲,歌曲可以从本地上传同时也可以在线录制。
需求包含用户需求和软件需求。
用户需求:实现一个在线听歌网站,用户可以创建专辑并为专辑绑定歌曲。
登录注册注销模块:用户可以正常登录注册注销。
音频管理模块:用户可以从本地上传音频文件还可以录制音频上传,音频列表可以正常显示。
专辑管理模块:用户可以新建专辑并为专辑绑定歌曲,同时可以正常显示已创建的专辑。

| 用例编号 | 测试内容 | 测试方式 | 测试数据 | 操作步骤 | 预期结果 | 实际结果 |
|---|---|---|---|---|---|---|
| 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.点击播放按钮 | 音频成功播放 | 音频成功播放 |
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.driver
url = self.url
driver.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.driver
url = self.url
driver.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.driver
url = self.url
driver.get(url)
time.sleep(2)
driver.find_element(By.LINK_TEXT, "注销").click()
time.sleep(5)
print("*********登录成功*********")
if __name__ == "__main__":
unittest.main(verbosity=2)
from selenium import webdriver
import unittest
import time
coding = "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.driver
url = self.url
driver.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)
