在线音乐播放器测试报告

文章目录

    • 一、项目背景
    • 二、项目功能
    • 三、测试目的
    • 四、测试环境
    • 五、测试计划
      • 5.1 功能测试
      • 5.2 自动化测试
    • 六、测试结果

一、项目背景

今天,市面上的音乐播放器种类繁多同时功能强大。一个单纯的音乐播放器可能不再单纯只是音乐播放的功能,而是更多地集短视频、直播、小游戏、甚至交友为一体。同时,对于用户喜欢的歌曲和已下载的歌曲,还会不可避免地出现“失效”的问题。不同音乐的版权可能也是散落在各个不同的音乐软件。因此,为了用户能够拥有一个最初单纯简洁的听歌环境,同时方便管理自己喜欢的歌曲,当然也为了可以进一步加深对springboot框架的使用和理解,尝试搭建了一个在线音乐播放器。为用户提供简洁方便的听歌环境。

二、项目功能

用户成功登录该网站后,可以上传任意自己下载好的音乐文件;可以针对自己上传的音乐文件进行管理,包括删除,添加到喜欢列表,在线播放自己上传的音乐文件等基本功能。

三、测试目的

尽可能地发现程序中存在的问题,保证该项目网站的基本功能正常使用,满足用户的基本需求,提供良好的用户体验。

四、测试环境

  • Web端
    谷歌浏览器,Windows操作系统,edge浏览器;

  • 移动端
    安卓系统;

五、测试计划

首先编写相关的测试用例:
在这里插入图片描述
根据测试用例进行相关测试;

5.1 功能测试

针对程序实现的功能进行测试,确保程序功能满足需求并正常运行;
在这里插入图片描述

执行测试的操作步骤、测试结果;

1.在地址栏输入对应的网站,回车;
2.在登录页面输入用户名和密码点击登录;

  • 正常登录-用户名密码均正确

在这里插入图片描述
在这里插入图片描述
预期结果:1.登录成功,有相关的弹窗提示;2.点击确定,跳转到音乐列表页;
实际结果:1.登录成功,有相关的弹窗提示;2.点击确定,跳转到音乐列表页;

  • 异常登录-用户名或密码为空
    在这里插入图片描述

预期结果:1.无法登录成功;2.有相关的弹窗提示;3.点击确定按钮页面保持在登录页面;
实际结果:1.无法登录成功;2.有相关的弹窗提示;3.点击确定按钮页面保持在登录页面;

  • 异常登录-用户名密码错误

在这里插入图片描述
预期结果:1.登录失败;2.有相关的弹窗提示;3.点击确定保持在登录页面;
实际结果:1.登录失败;2.有相关的弹窗提示;3.点击确定保持在登录页面;

  • 添加歌曲
    操作步骤:1.点击"添加歌曲"按钮;
    2.音乐上传页面点击“选择文件”;
    3.选中对应的音乐文件,点击“打开”;
    4.输入歌手名,点击“上传”;

预期结果:1.跳转到音乐上传页面;
2、本地文件资源管理器弹出;
3.文件在上传页面显示;
4.跳转到音乐列表页,上传的文件显示在此处;

实际结果:与预期结果一致;

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 上传音乐-文件或歌手名为空
    预期结果:1.无法成功上传;2.有相关的文字提示;
    实际结果:1.无法成功上传;2.有相关的文字提示;
    在这里插入图片描述

  • 上传文件-批量上传
    预期结果:批量上传成功;
    实际结果:不能进行批量上传,后添加的文件会覆盖之前的文件;

  • 上传文件-上传非音乐文件的其他文件;
    预期结果:上传失败;
    实际结果:上传成功;
    在这里插入图片描述

  • 上传文件-上传音乐列表中已经存在的文件
    预期结果:上传失败;
    实际结果:上传成功;
    在这里插入图片描述

  • 添加到喜欢-选中一首音乐
    操作步骤:
    1.在音乐列表页选中歌曲,点击“喜欢”按钮;
    2.切换到喜欢列表页;

预期结果:
1.可以正常点击;
2.音乐列表页有刚刚添加喜欢的歌曲;

实际结果:
1.可以正常点击;
2.音乐列表页有刚刚添加喜欢的歌曲;
在这里插入图片描述

  • 添加到喜欢-选中多首音乐
    操作步骤:
    1.选择2-3首音乐,点击任意一条的喜欢按钮;
    2.切换到喜欢列表页;
    预期结果:
    1.可以选中多首音乐 ,喜欢按钮可以点击;
    2.喜欢列表页只有点击了喜欢按钮的对应音乐;
    实际结果:
    1.可以选中多首音乐 ,喜欢按钮可以点击;
    2.喜欢列表页只有点击了喜欢按钮的对应音乐;
    在这里插入图片描述
    在这里插入图片描述

  • 添加到喜欢-重复添加到喜欢
    操作步骤:
    1.选中一首已经在喜欢列表页的歌曲,点击对应的喜欢按钮;
    2.观察页面现象;

预期结果:
1.点击正常;
2.弹窗提示“收藏失败”;

实际结果:
1.点击正常;
2.对应弹窗弹出;
在这里插入图片描述

  • 删除音乐-单首删除

操作步骤:
1.在音乐列表页选中一首歌曲,点击删除;
2.查看页面现象;

预期结果:
1.可以正常点击;
2.弹窗提示删除成功;

实际结果:
1.可以正常点击;
2.弹窗提示删除成功;
在这里插入图片描述

  • 删除音乐-批量删除

操作步骤:1.选中多首歌曲,点击列表上方的“删除选中”;
预期结果:1.删除成功;
实际结果:删除成功;
在这里插入图片描述

删除音乐-删除喜欢列表的音乐;

操作步骤:
1.点击进入“喜欢列表”页;
2.选择一首歌曲,点击“移除”;

预期结果:移除成功,有弹窗提示;
实际结果:移除成功,有弹窗提示;在这里插入图片描述

  • 播放音乐-音乐列表页的音乐播放

操作步骤:在音乐列表页选择一首 歌曲,点击“播放歌曲”
预期结果:当前页面右下角出现音乐播放的相关进度条、按钮等;
实际结果:当前页面右下角出现音乐播放的相关进度条、按钮等;
在这里插入图片描述

  • 播放按钮-播放喜欢列表的歌曲

操作步骤:在喜欢列表页,点击对应歌曲的播放按钮;
预期结果:歌曲开始播放,有暂停按钮和进度条、音量等显示;
实际结果:歌曲开始播放,有暂停按钮和进度条、音量等显示;
在这里插入图片描述

  • 回到首页

操作步骤:在喜欢列表页,点击“回到首页”;
预期结果:页面跳转到音乐列表页;
实际结果:页面跳转到音乐列表页;

5.2 自动化测试

对程序编写自动化测试用例,编写自动化测试脚本,使用selenium进行Web自动化测试;

  • 登录页面
package com.autotest0828;import org.junit.jupiter.api.Test;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;/*** Created with IntelliJ IDEA.* Description:* User: 晨曦* Date: 2023-08-28* Time: 22:16*/
public class loginTest {@Testpublic void autoTest() throws InterruptedException {//1.创建驱动,用来打开浏览器EdgeOptions edgeOptions=new EdgeOptions();edgeOptions.addArguments("--remote-allow-origins=*");EdgeDriver driver = new EdgeDriver(edgeOptions);//2.输入需要访问的网址:driver.get("http://127.0.0.1:8080/login.html");Thread.sleep(3000);//3.找到页面的输入框,输入用户名和密码WebElement elementUser=driver.findElement(By.cssSelector("#user"));elementUser.sendKeys("lisi");WebElement elementPassword=driver.findElement(By.cssSelector("#password"));elementPassword.sendKeys("123456");//4.点击登录按钮driver.findElement(By.cssSelector("#submit")).click();Thread.sleep(5000);//5.切换对象为弹窗进行操作Alert alert=driver.switchTo().alert();alert.accept();driver.quit();}
}

在这里插入图片描述

  • 登录页面到列表页的跳转;
package com.autotest0828.Tests;import com.autotest0828.common.AutoTestUtils;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.edge.EdgeDriver;import java.util.Set;/*** Created with IntelliJ IDEA.* Description:* User: 晨曦* Date: 2023-08-29* Time: 7:24*/
public class musicTest extends AutoTestUtils {public static EdgeDriver driver=createDriver();//1.有驱动对象 2.访问页面的URL@BeforeAllstatic void baseControl(){driver.get("http://127.0.0.1:8080/login.html");}@Test@Order(1)void loginRight(){//3.检查用户登录的输入框是否存在driver.findElement(By.cssSelector("#user"));driver.findElement(By.cssSelector("#password"));}@Test@Order(2)void loginingNormal() throws InterruptedException {//4.输入正确的用户名和密码;driver.findElement(By.cssSelector("#user")).sendKeys("lisi");driver.findElement(By.cssSelector("#password")).sendKeys("123456");//5.点击登录按钮driver.findElement(By.cssSelector("#submit")).click();//添加强制等待页面渲染Thread.sleep(5000);//6.切换对象为弹窗进行操作Alert alert=driver.switchTo().alert();alert.accept();Thread.sleep(3000);}//用来释放驱动@Test@AfterAllstatic void driverQuit(){driver.quit();}
}

在这里插入图片描述

六、测试结果

程序的基本功能全部实现,不存在明显缺陷;页面展示无错别字,易用性良好,满足简单易上手的基本要求;程序功能简洁但单一,有可以继续优化的部分,性能一般,安全性良好;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/119612.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue框架--Vue中的事件

1.事件处理 事件的基本使用: (1).使用v-on:xxx 或 @xxx 绑定事件,其中xxx是事件名; (2).事件的回调需要配置在methods对象中,最终会在vm上; (3).methods中配置的函数,不要用箭头函数!否则this就不是vm了; (4).methods中配置的函数,都是被Vue所管理的函数,this的…

9.Redis-zset

zset zset 有序集合 -> 升序常用命令zaddzcardzcountzrangezrevrange -> reverse 逆序zrangebyscorezpopmaxzpopminbzpopmax / bzpopminzrankzrevrankzscorezremzremrangebyrankzremrangebyscorezincrby集合间操作zinter -> 交集zunion -> 并集zdiff -> 差集zin…

访问 GitHub 方法

访问 GitHub 方法 方法一:最常见的就是 fq,但这个是违法的行为,自己私下搞可以,不能教你们。 方法二:利用加速器,这是正规合法操作。这里推荐一个免费的加速器,下载安装 Watt Toolkit加速器,原名…

count(1)与count(*)的区别、ROUND函数

部分问题 1. count(1)与count(*)的区别2. ROUND函数3. SQL19 分组过滤练习题4. Mysql bigdecimal 与 float的区别5. 隐式内连接与显示内连接 (INNER可省略) 1. count(1)与count(*)的区别 COUNT(*)和COUNT(1)有什么区别? count(*)包括了所有…

3DS Max中绘制圆锥箭头

3DS Max中绘制圆锥箭头 绘制结果绘制过程步骤一:绘制立体圆锥方法1方法2 步骤二:圆锥体调参(模型尺寸设置)1圆锥体参数说明2圆锥体参数调整 步骤三:绘制圆柱体步骤四:圆柱体调参步骤五:圆锥与圆…

JavaExcel:自动生成数据表并插入数据

故事背景 出于好奇,当下扫描excel读取数据进数据库 or 导出数据库数据组成excel的功能层出不穷,代码也是前篇一律,poi或者easy excel两种SDK的二次利用带来了各种封装方法。 那么为何不能直接扫描excel后根据列的属性名与行数据的属性建立S…

yolov5的pytorch配置

1. conda create -n rdd38 python3.82、pip install torch1.8.0 torchvision0.9.0 torchaudio0.8.0 -f https://download.pytorch.org/whl/cu113/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple 3、conda install cudatoolkit10.2

使用Docker配置深度学习的运行环境

文章目录 推荐实验环境前言docker安装docker操作docker配置常见方法(安装包、联网、程序管理器)安装驱动的前提要求传统方法安装驱动程序程序管理器安装联网安装deb包安装 安装完成后的设置非传统方法安装-通过容器安装驱动的前提要求安装NVIDIA-Contain…

基于Django的博客管理系统

1、克隆仓库https://gitee.com/lylinux/DjangoBlog.git 若失效:https://gitee.com/usutdzxy/DjangoBlog.git 2、环境安装 pip install -Ur requirements.txt3、修改djangoblog/setting.py 修改数据库配置,其他的步骤就按照官方文档。 DATABASES {def…

在 Amazon 搭建无代码可视化的数据分析和建模平台

现代企业常常会有利用数据分析和机器学习帮助解决业务痛点的需求。如制造业中,利用设备采集上来的数据做预测性维护,质量控制;在零售业中,利用客户端端采集的数据做渠道转化率分析,个性化推荐等。 亚马逊云科技开发者…

低代码赋能| 绿色智慧矿山解决方案

在世界能源日趋紧张的背景下,能源产业的数字化升级是大势所趋。矿山行业作为国家能源安全的“压舱石”,也必须进行产业升级。一直以来,国家都在大力推动智慧矿山建设。通过大数据、GIS、物联网、云计算、人工智能等新兴技术,实现矿…

R语言图形的组合( par(),layout(),par(fig()) )

引入d.class进行画图 > d.class<-read.csv("D://class.csv",header T) > attach(d.class) > opar<-par(no.readonly TRUE)非常简单的数据&#xff0c;需要可自取 链接&#xff1a;https://pan.baidu.com/s/1zNx5z9JsaaRqFueRgGY3mQ 提取码&#x…

微信小程序新版隐私协议弹窗实现最新版

1. 微信小程序又双叒叕更新了 2023.08.22更新&#xff1a; 以下指南中涉及的 getPrivacySetting、onNeedPrivacyAuthorization、requirePrivacyAuthorize 等接口目前可以正常接入调试。调试说明&#xff1a; 在 2023年9月15号之前&#xff0c;在 app.json 中配置 __usePriva…

Vite打包性能优化及填坑

最近在使用 Vite4.0 构建一个中型前端项目的过程中&#xff0c;遇到了一些坑&#xff0c;也做了一些项目在构建生产环境时的优化&#xff0c;在这里做一个记录&#xff0c;以便后期查阅。(完整配置在后面) 上面是dist文件夹的截图&#xff0c;里面的内容已经有30mb了&#xff…

Revit SDK:SpatialFieldGradient 在面上显示渐变颜色(AVF)分析显示样式

前言 这个例子使用Revit显示样式功能将面显示成不同的颜色。分析显示样式参考官方文档。 内容 效果&#xff1a; 核心逻辑&#xff1a; 得到一个 SpatialFieldManager拾取一系列的面&#xff1a;uiDoc.Selection.PickObjects(ObjectType.Face)计算面上的 UV 值&#xff0c;…

COSCon'23 开源市集:共赴一场草坪上的开源派对

一年一度的开源盛会&#xff0c;第八届中国开源年会&#xff08;COSCon23 &#xff09;&#xff0c;将于10月28~29日&#xff0c;在四川成都市高新区菁蓉汇召开&#xff01;本次大会的主题是&#xff1a;“开源&#xff1a;川流不息、山海相映”&#xff01; 我们预期会有超过1…

更健康舒适更科技的照明体验!SUKER书客护眼台灯 L1上手体验

低价又好用的护眼台灯是多数人的需求&#xff0c;很多人只追求功能性护眼台灯&#xff0c;显色高、无频闪、无蓝光等基础需求。但是在较低价格中很难面面俱到&#xff0c;然而刚发布的SUKER书客L1护眼台灯却是一款不可多得的性价比护眼台灯&#xff0c;拥有高品质光源&#xff…

第63步 深度学习图像识别:多分类建模误判病例分析(Tensorflow)

基于WIN10的64位系统演示 一、写在前面 上两期我们基于TensorFlow和Pytorch环境做了图像识别的多分类任务建模。这一期我们做误判病例分析&#xff0c;分两节介绍&#xff0c;分别基于TensorFlow和Pytorch环境的建模和分析。 本期以健康组、肺结核组、COVID-19组、细菌性&am…

mp代码生成插件

mp代码生成插件 1.下载下面的插件 2.连接测试 3.生成代码的配置 4.生成代码 红色的是刚刚生成的。 我觉得不如官方的那个好用&#xff0c;唯一的好处就是勾选的选项能够看的懂得。

视频云存储/安防监控/AI视频智能分析网关V3:工服检测功能详解

在一些工地、后厨、化工、电力等特定的场景中&#xff0c;工服的穿戴是必不可少的。这不仅是安全制度的要求&#xff0c;更能降低工作风险、提高工作效率。TSINGSEE青犀AI 边缘计算网关硬件 —— 智能分析网关可以通过实时监测和识别工人的工装穿戴情况&#xff0c;确保他们符合…