【项目】乐潮在线测试报告

1. 项目介绍

        “乐潮在线”是基于 SSM 框架实现的音乐播放系统。它为用户提供丰富的音乐资源,界面简洁美观,操作便捷。通过 SSM 的整合,确保系统的稳定性与高效性。用户可以轻松搜索、播放喜爱的音乐,创建个性化播放列表。系统还具备完善的用户管理功能,支持用户注册、登录与个人信息设置。同时,不断更新音乐库,紧跟音乐潮流,为音乐爱好者打造一个高品质、个性化的在线音乐平台,让用户随时随地畅享音乐盛宴。

2. 测试环境

  • 操作系统:Windows 11
  • 浏览器:Chrome 版本 128.0.6613.138
  • 开发工具:IntelliJ IDEA Community Edition 2022.3.3
  • 数据库:MySQL 5.7

3. 测试

3.1 功能测试

3.1.1 登录功能

测试编号测试步骤预期结果
1打开 “乐潮在线”。
不输入账号和密码,点击登录按钮。
提示 “ 账号或密码为空,请输入后再来登录!”。
2输入正确的账号,不输入密码,点击登录按钮。提示 “密码不能为空”。
3输入不存在的账号,输入正确的密码,点击登录按钮。提示 “账号不存在”。
4输入正确的账号,输入错误的密码,点击登录按钮。提示 “密码错误”。
5输入正确的账号和密码,点击登录按钮。登录成功,进入 “乐潮在线”首页。

部分测试用例效果图:

图1   输入正确的用户名和错误的密码,登录失败

图2   输入正确的用户名和正确的密码,登录成功

3.1.2 注册功能

测试编号测试步骤预期结果
1不输入邮箱、密码、确认密码和邮箱验证码,点击注册按钮。提示 “ 请输入邮箱 ”。
2输入邮箱,不输入密码、确认密码和邮箱验证码,点击注册按钮。提示 “ 请输入验证码 ”。
3输入邮箱和密码,不输入确认密码和邮箱验证码,点击注册按钮。提示 “请输入验证码 ”。
4输入邮箱、密码和确认密码,不输入邮箱验证码,点击注册按钮。提示 “ 请输入验证码 ”。
5输入邮箱、密码、确认密码和邮箱验证码,密码和确认密码不一致,点击注册按钮。提示 “ 两次密码长度不一致,请重新输入~”。
6输入已存在的邮箱,输入密码、确认密码和邮箱验证码,点击注册按钮。提示 “ 该邮箱不可以同时绑定多个账号,请换个邮箱再来注册~”。
7输入符合要求的邮箱、密码、确认密码和邮箱验证码,点击注册按钮。注册成功,提示 “注册成功”。

部分测试用例效果图:

图3   不输入邮箱、密码、确认密码和邮箱验证码,注册失败

图4   输入邮箱、密码、确认密码和邮箱验证码,密码和确认密码不一致,注册失败

图5  输入符合要求的邮箱、密码、确认密码和邮箱验证码,注册成功

3.1.3 找回密码功能

部分测试用例效果图:

图6   不输入邮箱、重置密码、确认密码和邮箱验证码,修改失败

图7   输入不存在的邮箱,输入重置密码、确认密码,修改失败

图8   输入符合要求的邮箱、重置密码、确认密码和邮箱验证码,修改成功

3.1.4 查询歌曲功能

测试编号测试步骤预期结果
1在搜索框中输入歌曲名,点击查询按钮。显示相关歌曲的搜索结果。
2在搜索框中输入歌手名,点击查询按钮。显示该歌手的相关歌曲搜索结果。
3输入不存在的歌曲名或歌手名,点击查询按钮。提示 “ 在音乐库当中没有找到您要找的歌曲~ ”。

部分测试用例效果图:

图9   输入不存在的歌曲名或歌手名,点击查询按钮,查询失败

3.1.5 上传歌曲功能

测试编号测试步骤预期结果
1打开 “乐潮在线”,点击上传歌曲按钮,
不选择文件,直接输入歌手名,点击上传按钮。
提示 “ 请选择要上传的音频文件 ”。
2选择音频文件,不输入歌手名,点击上传按钮。提示 “请输入歌手名”。
3选择音频文件,输入歌手名,点击上传按钮。上传成功,歌曲显示在用户的歌曲列表中。
4上传格式不支持的音频文件。提示 “不支持该格式的音频文件”。

部分测试用例效果图:

图10   选择音频文件,输入歌手名,点击上传按钮,上传成功

3.1.6 播放歌曲功能

部分测试用例效果图:

图11  选择一首歌曲,播放过程中,暂停歌曲,再次点击播放按钮,歌曲从暂停处继续播放

3.1.7 删除歌曲功能

部分测试用例效果图:

图12、图13  选择一首歌曲,点击删除按钮,歌曲被成功删除

3.1.8 添加喜欢歌曲功能

部分测试用例效果图:

图14  再次选择该歌曲,点击喜欢按钮,显示“ 歌曲已经收藏过了,无需再收藏~ ”

3.1.9 查询喜欢歌曲列表功能

测试编号测试步骤预期结果
1点击喜欢列表按钮。显示用户喜欢的歌曲列表。

部分测试用例效果图:

图15  点击喜欢列表按钮,显示用户喜欢的歌曲列表

3.1.10 发布评论功能

测试编号测试步骤预期结果
1播放一首歌曲,点击评论按钮,输入评论内容,点击提交。评论成功发布,显示在该歌曲的评论列表中。
2发布评论过程中,取消发布。评论未被发布。

部分测试用例效果图:

图16  点击评论按钮,输入评论内容,点击提交,评论成功

3.1.11 播放评论功能

部分测试用例效果图:

图17  选择一首有评论的歌曲,点击播放评论按钮,成功播放该歌曲的评论

3.2 自动化测试

         本项目是用Junit + Selenium 工具编写代码,进行自动化测试。

3.2.1 登录

        1. 设计测试用例

        2. 部分代码实现

    //登录成功测试用例
    //输入正确的账号,输入正确的密码
    @ParameterizedTest
    @CsvSource({"'http://127.0.0.1:8089/login.html','http://127.0.0.1:8089/list.html'"})
    void Login(String login_url,String exp_url) throws InterruptedException {
        webDriver.get(login_url);
        sleep(1000);
        //输入正确的账号
        webDriver.findElement(By.cssSelector("#user")).sendKeys("2923101535");
        //输入正确的密码
        webDriver.findElement(By.cssSelector("#password")).sendKeys("test123456..");
        sleep(1000);
        //点击登录
        webDriver.findElement(By.cssSelector("#submit")).click();
        sleep(1000);
        //点击确定,跳转到音乐列表页
        webDriver.switchTo().alert().accept();
        sleep(1000);
        //校验URL是否正确
        String act_url = webDriver.getCurrentUrl();
        Assertions.assertEquals(exp_url,act_url,"测试不通过:登录失败!");
    }

3.2.2 上传歌曲

        1. 设计测试用例

        2. 部分代码实现

    //上传成功测试用例
    @Test
    void Upload() throws InterruptedException {
        login();
        //点击"上传歌曲"
        webDriver.findElement(By.cssSelector("#body > div.container > div:nth-child(3) > button")).click();
        sleep(1000);
        //点击"选择文件"按钮,选择歌曲
        webDriver.findElement(By.cssSelector("#addmusic > input[type=file]:nth-child(1)")).sendKeys("D:\\music\\Kiiiu - 你懂得我的固执 (变速版).mp3");
        sleep(1000);
        //输入歌手名字
        webDriver.findElement(By.cssSelector("#addmusic > label > input[type=text]")).sendKeys("Kiiiu");
        sleep(1000);
        //点击"上传"按钮
        webDriver.findElement(By.cssSelector("#up")).click();
        sleep(1000);
        //获取提示文本
        String act_text = webDriver.switchTo().alert().getText();
        sleep(1000);
        //校验提示是否正确
        Assertions.assertEquals("上传成功~",act_text);
        //点击确定
        webDriver.switchTo().alert().accept();
        sleep(1000);
        //校验是否上传成功
        String music = webDriver.findElement(By.cssSelector("#info > tr:nth-child(3) > td:nth-child(2)")).getText();
        sleep(1000);
        Assertions.assertEquals("Kiiiu - 你懂得我的固执 (变速版)",music,"测试不通过:歌曲查询不正确!");
    }

3.2.3 查询歌曲

        1. 设计测试用例

         2. 部分代码实现

    //查询成功测试用例 
    //输入曲库中有的歌曲名
    @Test
    void Search() throws InterruptedException {
        login();
        //在查询搜索框中输入歌曲名
        webDriver.findElement(By.cssSelector("#exampleInputName2")).sendKeys("水星记");
        //点击“查询”按钮
        webDriver.findElement(By.cssSelector("#submit1")).click();
        //获取页面歌曲标签
        String music = webDriver.findElement(By.cssSelector("#info > tr > td:nth-child(2)")).getText();
        //校验是否正确
        Assertions.assertEquals("郭顶 - 水星记",music,"测试不通过:歌曲查询不正确!");

    }
    //查询失败测试用例
    //输入不存在的歌手名
    @Test
    void SearchError() throws InterruptedException {
        login();
        //在查询搜索框中输入不存在的歌曲名
        webDriver.findElement(By.cssSelector("#exampleInputName2")).sendKeys("周杰伦");
        //点击“查询”按钮
        webDriver.findElement(By.cssSelector("#submit1")).click();
        sleep(1000);
        //输入账号();
        //获取提示信息
        String act_text = webDriver.switchTo().alert().getText();
        //校验是否正确
        Assertions.assertEquals("在音乐库当中没有找到您要找的歌曲~",act_text,"测试不通过:歌手查询不正确!");
    }

3.2.4 播放歌曲

        1. 设计测试用例

        2. 部分代码实现

    //播放歌曲测试用例
    //1.选择一首歌曲,点击播放按钮
    //2.一首歌曲正在播放,选择另外一首,点击播放按钮(涵盖1)
    @Test
    void PlayMusic() throws UnsupportedEncodingException, InterruptedException {
        login();
        //点击列表第一首歌的”播放“按钮
        webDriver.findElement(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(4) > button:nth-child(1)")).click();
        sleep(1000);
        //获取当前信息
        String Song_src = webDriver.findElement(By.cssSelector("#body > div:nth-child(4) > div > audio")).getAttribute("src");
        String Song_Path = Song_src.split("path=")[1].split("\\.mp3")[0] + ".mp3";
        String Song_information = URLDecoder.decode(Song_Path, "UTF-8");
        //检查当前播放歌曲信息是否正确
        Assertions.assertEquals("郭顶 - 水星记.mp3",Song_information,"测试不通过:当前播放歌曲信息不正确!");
        //点击列表第二首歌的”播放“按钮
        webDriver.findElement(By.cssSelector("#info > tr:nth-child(2) > td:nth-child(4) > button:nth-child(1)")).click();
        sleep(1000);
        //获取当前信息
        String Song_src1 = webDriver.findElement(By.cssSelector("#body > div:nth-child(4) > div > audio")).getAttribute("src");
        String Song_Path1 = Song_src1.split("path=")[1].split("\\.mp3")[0] + ".mp3";
        String Song_information1 = URLDecoder.decode(Song_Path1, "UTF-8");
        //检查当前播放歌曲信息是否正确
        Assertions.assertEquals("迪丽热巴 - 第十幕 (Episode X).mp3",Song_information1,"测试不通过:当前播放歌曲信息不正确!");
    }

3.2.5 删除歌曲

        1. 设计测试用例

        2. 部分代码实现

    //删除歌曲测试用例
    //选择列表第一首歌曲,点击”删除“按钮
    @Test
    void Delete() throws InterruptedException {
        login();
        //点击列表第一首歌的”删除“按钮
        webDriver.findElement(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(5) > button:nth-child(1)")).click();
        sleep(1000);
        //获取提示信息,检查提示信息是否正确
        String act_text = webDriver.switchTo().alert().getText();
        Assertions.assertEquals("删除成功",act_text,"测试不通过:删除失败!");
        //点击确定
        webDriver.switchTo().alert().accept();
        sleep(1000);
        //查询列表第一首歌的信息
        String music = webDriver.findElement(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(2)")).getText();
        Assertions.assertNotEquals("郭顶 - 水星记",music,"测试不通过:删除失败!");
    }

        运行结果:

3.2.6 添加喜欢歌曲

        1. 设计测试用例

        2. 部分代码实现

    //添加喜欢歌曲测试用例
    @Test
    void Love() throws InterruptedException {
        login();
        //点击列表第一首歌的“喜欢”按钮
        webDriver.findElement(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(5) > button:nth-child(2)")).click();
        sleep(1000);
        //获取提示信息,检查提示信息是否正确
        String message1 = webDriver.switchTo().alert().getText();
        Assertions.assertEquals("收藏成功~",message1,"测试不通过:收藏失败!");
        //点击确定
        webDriver.switchTo().alert().accept();
        sleep(1000);
        //点击”喜欢列表“按钮,跳转到喜欢列表页面
        webDriver.findElement(By.cssSelector("#body > div.container > div:nth-child(3) > a:nth-child(1)")).click();
        sleep(1000);
        //获取当前页面URL,检查URL是否正确
        String act_url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://127.0.0.1:8089/loveMusic.html",act_url,"测试不通过:查询喜欢列表失败!");
        //校验喜欢列表页面中,是否有刚收藏的歌曲
        String act_music = webDriver.findElement(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(1)")).getText();
        Assertions.assertEquals("迪丽热巴 - 第十幕 (Episode X)",act_music,"测试不通过:歌曲未添加到喜欢列表!");
        //点击回到首页
        webDriver.findElement(By.cssSelector("#body > div.container > div:nth-child(3) > a")).click();
        sleep(1000);
        //再次点击第一首歌的”喜欢“按钮
        webDriver.findElement(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(5) > button:nth-child(2)")).click();
        sleep(1000);
        //获取提示信息,检查提示信息是否正确
        String message2 = webDriver.switchTo().alert().getText();
        Assertions.assertEquals("歌曲已经收藏过了,无需再收藏~",message2,"测试不通过:再次收藏失败!");
    }

3.2.7 发表评论

        1. 设计测试用例

        2. 部分代码实现

    //发表评论成功测试用例
    @Test
    void AddComment() throws InterruptedException {
        login();
        //选择第一首歌曲,点击”评论“按钮
        webDriver.findElement(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(5) > button:nth-child(3)")).click();
        sleep(1000);
        //在评论输入框中输入”太好听啦!!!“
        webDriver.findElement(By.cssSelector("#commente")).sendKeys("太好听啦!!!");
        sleep(1000);
        //点击”提交按钮“
        webDriver.findElement(By.cssSelector("#sendComment")).click();
        sleep(1000);
        //获取提示信息,校验提示信息是否正确
        String message = webDriver.switchTo().alert().getText();
        Assertions.assertEquals("评论成功~",message,"测试不通过:评论失败!");
        sleep(1000);
        //点击确定
        webDriver.switchTo().alert().accept();
        //点击该歌曲的”播放评论“按钮
        webDriver.findElement(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(4) > button:nth-child(2)")).click();
        sleep(5000);
        //获取页面信息,校验评论是否已经播放
        String comment = webDriver.findElement(By.cssSelector("#body > div.container > span")).getText();
        Assertions.assertNotNull(comment,"测试不通过:播放评论失败!");
    }

        运行结果:

3.2.8 代码测试情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值