当前位置: 首页 > news >正文

【项目】在线音乐播放器测试报告

目录

项目背景

项目功能

测试计划

功能测试

登录页面的测试

测试用例

测试结果

注册页面的测试

测试用例

测试结果

音乐列表页面的测试

测试用例

测试结果

出现的bug

搜索功能的bug

问题解决

删除功能的bug 

问题解决

喜欢列表页面的测试

测试用例

测试结果

上传音乐页面的的测试

测试用例

测试结果

自动化测试

性能测试


项目背景

这是一个基础版本的在线音乐播放网站,用户可以上传音乐,在线聆听已上传的音乐。

同时支持用户将指定音乐添加到自己喜欢列表。

项目功能

1、登录功能——用户可按正常的用户名和密码进行登录,进入到音乐列表页面

2、注册功能——未注册的用户可以按照进行注册,设定自己的用户名和密码进行登录

3、音乐列表页面——用户可实时查看当前网站所有上传的音乐,提供音乐播放、音乐收藏和音乐删除功能,此外该页面还提供了音乐搜索和分页显示音乐列表的功能。

tips: 我们目前并没有提供权限模块,用户默认都是管理员,可以进行音乐的上传和删除功能

 4、音乐收藏页面——用户可查看当前自己所收藏的所有上传音乐,并进行音乐的播放。

5、音乐上传——用户可上传本地音乐到服务器,同时系统会将该音乐相关信息存储到对应数据库中

6、音乐播放——借助SewisePlayer播放插件实现对用户上传音乐的播放

测试计划

功能测试

登录页面的测试

测试用例

测试结果

1)页面显示

图片显示有问题

经查是前端页面显示该图片的过程中出现了问题(路径错误)

解决后如下

 2)正常登录

3)异常登录

注册页面的测试

测试用例

测试结果

1)页面显示

2)正常注册

3)异常注册

音乐列表页面的测试

测试用例

测试结果

1)页面效果

2)功能模块

分页功能

播放功能

出现的bug
搜索功能的bug

输入英文、字母搜索是正常

但是一旦输入汉字搜索会出现乱码现象,并且找不到要搜索的内容

问题解决

当一个问题出现,首先要确定这个是前端的问题还是后端的问题,我们先来看浏览器上的显示

是前端传递参数错误吗,但是在开发者工具中明明就前端就是想后端传递了对应的title值,同时前端也设置了字符编码

那么我们就先从后端入手

我们尝试动进行URL解码来处理中文乱码问题

这个时候,我们发现前端仍然有问题

我们在前端在查询url中的某个参数值的时候,再对参数值进行解密——以应对上面的这种情况

可以看到,成功再搜索框中显示了当前搜索的关键字,但是这样做有一个问题,那就是歌曲名这个信息直接暴漏在url中


删除功能的bug 

如果当前用户为登录,会出现弹窗,提示跳转到登录页面

问题解决

出现了bug,首先我们来想怎么解决这个bug

首先来确定bug的位置

通过上图我们可以看到,我们前端想后端成功传递了要删除的音乐id,但是后端没有返回预期的结果,后端在音乐删除过程中出错了

我们注意到后端代码中红框这一行,我们在音乐表删除对应记录的时候,同时还想要同步删除喜欢列表中该音乐所对应记录

但是这样有一个问题,如果在喜欢列表中没有该音乐所对应的记录,此时res2 不就等于0,此时不就会出现问题吗?

并且,通过观察喜欢列表后,我们发现喜欢列表的数据也是根据音乐表产生了,是一个多表查询,因此我们在删除音乐表中的对应记录的时候,不用把喜欢列表的记录给同步删除。

下面是修改后的

喜欢列表页面的测试

测试用例

测试结果

上传音乐页面的的测试

测试用例

测试结果

页面效果

异常上传

正常上传

自动化测试

性能测试

相关文章:

【项目】在线音乐播放器测试报告

目录 项目背景 项目功能 测试计划 功能测试 登录页面的测试 测试用例 测试结果 注册页面的测试 测试用例 测试结果 音乐列表页面的测试 测试用例 测试结果 出现的bug 搜索功能的bug 问题解决 删除功能的bug 问题解决 喜欢列表页面的测试 测试用例 测试结果…...

[C++ 网络协议] 多线程服务器端

具有代表性的并发服务器端实现模型和方法: 多进程服务器:通过创建多个进程提供服务。 多路复用服务器:通过捆绑并统一管理I/O对象提供服务。 多线程服务器:通过生成与客户端等量的线程提供服务。✔ 目录 1. 线程的概念 1.1 为什…...

宝塔部署node后使用pm2管理上传文件路径失效问题

如何进行文件上传? node上传文件 vue3 elementPlus 组件封装 在本地或者以宝塔终端的形式允许 上传后是没问题的,直接默认对multer直接写入路径就可以了 const multer require(multer) const upload multer({ dest: ./public/avataruploads/ }) …...

postman-pre-request-scripts使用

一、场景 二、定义模拟接口 using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using SaaS.Framework.DataTransfer; using System.Threading.Tasks;namespace SaaS.KDemo.Api.Controllers {[Route("api/[co…...

uniapp Echart X轴Y轴文字被遮挡怎么办,或未能铺满整个容器

有时候布局太小,使用echarts,x轴y轴文字容易被遮挡,怎么解决这个问题呢,或者是未能铺满整个容器。 方法1: 直接设置 containLabel 字段 options: { grid: { containLabel: true, },} 方法2: 间接设置,但是…...

学习路之PHP--laravel DingoApi

一、安装 1.进入项目目录,执行composer安装命令 composer require dingo/api 如果下载超时,换阿里云源: composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 2.使用以下命令可以发布 API 的配置文件到 confi…...

项目篇——java文档搜索引擎

Java 文档搜索引擎 文章目录 Java 文档搜索引擎一、分词二、完成parser 类2.1、排除非html文件2.2、解析html以下是解析 HTML 标题的方法以下是解析 对应的 URL以下是解析 HTML的正文: 补充:倒序索引 三、实现 index 类3.1、实现索引结构3.2、索引中新增…...

5.2 磁盘CRC32完整性检测

CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏。通过运用本校验技术我们可以实现对特定内存区域以及磁盘文件进行完整性检测,…...

企业内部安全与风控管理图解

企业内部安全说外部安全,企业领导者都非常关注,由于各方面原因,。。。力不从心,妥协! 方向: 1、制度 结合企业实情,编制企业安全管理制度 2、硬件 处理常规硬件外观,加壳与锁定、…...

vscode基于cmake安装opencv库

一、安装相关依赖库 首先更新源 sudo apt update安装相关包 sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libjasper若是报错:无法定位到 libjasper软件包 则依次执行以下命令 sud…...

Web 器学习笔记(基础)

Filter 过滤器 概念:表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一 作用:顾名思义可以过滤资源的请求,并实现特殊的需求 Filter 接口及它核心的 doFilter() 方法(执行前就是…...

uniapp中vue3使用uni.createSelectorQuery().in(this)报错

因为VUE3中使用setup没有this作用域,所以报错 解决办法:使用getCurrentInstance()方法获取组件实例 import { getCurrentInstance } from vue;const instance getCurrentInstance(); // 获取组件实例 const DOMArr uni.createSelectorQuery().in(ins…...

k8s-部署

1.k8s 集群与部署 更改所有主机名字和解析 k8s1 192.168.25.11 reg.westos.org,habbor 仓库 k8s2 192.168.25.12 master,k8s 集群控制节点 k8s3 192.168.25.13 node,k8s 集群工作节点 k8s4 192.168.25.14 node,k8s 集群工作节点 所有节…...

Arduino驱动MMA7260三轴加速度传感器(惯性测量传感器篇)

目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序 Arduino驱动MMA7260三轴加速度传感器芯片,可以应用到摩托车和汽车放倒报警、遥控航模、游戏手柄、人形机器人跌倒检测、硬盘冲击保护、倾斜度测量等场合。 1...

奇舞周刊第507期:通过 View Transition API 在状态之间添加丰富的过渡动画

记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 通过 View Transition API 在状态之间添加丰富的过渡动画 W3C 2023 年度全球技术大会 (TPAC2023) 于今年9月 11 - 15 日召开。W3C CSS 工作组成员 Bramus Van Damme(Google) 为本届…...

如何通过技术变现

技术变现是指将技术转化为实际价值的过程。以下是几种常见的技术变现方式: 软件开发与销售:根据市场需求开发软件,并将其销售给需要的企业或个人。专利许可与授权:将技术成果申请专利,通过专利许可和授权给企业使用&a…...

高效查询大量快递信息,轻松掌握技巧

在如今快节奏的生活中,快递已经成为我们日常不可或缺的一部分。然而,对于一些忙碌的人来说,单个查询每一个快递单号可能会浪费太多时间。因此,我们需要一款可以帮助我们批量查询快递的软件。 在市场上,有很多款专门用于…...

iperf3: error - unable to connect to server: No route to host 但嵌入式Linux设备

起因 需要测试WIFI设置为802.11n制式能否输出40MHZ带宽去做CE认证 需要一台设备WIFI 设置为STA模式 一台设备WIFI设置为AP模式 用STA模式的设备去连接AP模式的设备才能产生40MH带宽 起初用了一台设备做STA模式设备(设备A)来测试没问题了,要换一台设备做STA设备(设备…...

OpenCV自学笔记十七:傅里叶变换

1、Numpy实现傅里叶变换 傅里叶变换(Fourier Transform)是一种将信号从时域转换到频域的数学变换。它将一个连续或离散的时域信号分解为一组正弦和余弦函数的复合。 在Python中,可以使用NumPy库来实现傅里叶变换。具体步骤如下:…...

uniapp如何判断是哪个(微信/APP)平台

其实大家在开发uniapp项目的时候长长会遇到这样一个问题,就是针对某些小程序,没发去适配相关的功能,所以要针对不同的平台,进行不同的处理。 #ifdef : if defined 仅在某个平台编译 #ifndef : …...

容器启动失败?.NET 9 配置绑定失效全排查,从 Program.cs 到 docker-compose.yml 的12个断点检查清单

第一章:容器启动失败的典型现象与诊断原则容器启动失败是运维和开发过程中高频出现的问题,其表象多样但根源往往集中于配置、依赖或运行时环境。常见现象包括:容器瞬间退出(Exited (1))、持续重启(Restarti…...

ESLint Config Standard 与其他配置方案对比:为什么选择标准风格

ESLint Config Standard 与其他配置方案对比:为什么选择标准风格 【免费下载链接】eslint-config-standard ESLint Config for JavaScript Standard Style 项目地址: https://gitcode.com/gh_mirrors/es/eslint-config-standard ESLint Config Standard 是 J…...

边缘AI部署:TensorFlow Lite与ONNX Runtime的技术架构与应用挑战——面向软件测试从业者的深度解析

随着人工智能从云端计算中心向网络边缘的持续下沉,边缘AI已成为驱动智能物联网、自动驾驶、工业质检等实时应用的关键技术。作为连接算法模型与现实物理世界的桥梁,边缘部署的成功与否,直接决定了AI应用的最终效能与用户体验。对于软件测试从…...

OpenClaw极客玩法:用Qwen2.5-VL-7B控制智能家居图文面板

OpenClaw极客玩法:用Qwen2.5-VL-7B控制智能家居图文面板 1. 为什么需要视觉化智能家居控制 去年装修新房时,我安装了某品牌智能家居系统。它的手机App控制界面设计得很"艺术"——各种圆形滑块、渐变色调光面板,看起来酷炫但用起来…...

AI应用开发入门(0)|为什么你学了很多,却还是不会做AI应用?

这段时间在系统学习 AI 应用开发的过程中,我逐渐有一个比较强烈的感受:相关内容其实并不少,但真正能把“整个路径讲清楚”的并不多。你可能也有类似的经历。✔ 看了很多 Prompt、RAG、Agent 的文章,当时感觉都懂了 ✔ 跟着教程做…...

AirPodsDesktop:Windows和Linux用户的完整AirPods体验终极指南

AirPodsDesktop:Windows和Linux用户的完整AirPods体验终极指南 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/AirPodsDesktop 你是…...

正则匹配实现验证

邮箱正则表达式匹配 使用正则表达式匹配163邮箱格式的字符串,要求用户名部分为4-20位的字母或数字,域名固定为163.com。 import re ret re.match("[a-zA-Z0-9]{4,20}163\.com", 字符串) if ret:print(ret.group()) else:print("匹配失败…...

解放你的音乐:3分钟掌握QMCDecode破解QQ音乐加密格式的完整指南

解放你的音乐:3分钟掌握QMCDecode破解QQ音乐加密格式的完整指南 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录&#xf…...

公众号流量分成大涨!后公众号时代如何运营?流量商店旗下的互粉平台成增粉利器!

“上个月流量主收入终于突破5000元了!”深夜,运营“职场进化论”公众号的小林在朋友圈晒出后台截图。一年前,这个只有几百粉丝的账号月收入还不到100元。而如今,像小林这样依靠公众号流量分成实现可观收入的创作者正越来越多。 20…...

从‘拉风箱’到‘指哪打哪’:VCM音圈马达如何重塑了我们的手机拍照体验?

从‘拉风箱’到‘指哪打哪’:VCM音圈马达如何重塑了我们的手机拍照体验? 还记得十年前用手机拍运动场景的崩溃体验吗?按下快门后镜头反复伸缩发出"咔咔"声,像老式风箱般迟钝,等对焦完成时孩子早已跑出画面。…...