• 听吧音乐项目测试


    听吧音乐项目

    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.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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66

    4.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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    5. 测试报告

    在这里插入图片描述

  • 相关阅读:
    吴峰光杀进 Linux 内核
    React学习笔记
    1990-2021年上市公司债务融资成本数据(原始数据+stata处理代码+计算结果)
    拉格朗日粒子扩散模式FLEXPART,在大气污染溯源中的应用
    解决问题的思路很重要,运维领域,结果对,过程就对!
    什么是快速失败(fail-fast)和安全失败(fail-safe)?
    git 使用之撤销暂存区提交
    RabbitMQ—队列参数
    制药企业GMP合规检查要点有哪些?
    AI基础设施Grass零撸空投,最新融资350万美元!
  • 原文地址:https://blog.csdn.net/weixin_50901244/article/details/126908302