一、项目背景

随着数字音乐内容的爆炸式增长,用户对于便捷、高效的音乐管理与播放需求日益增强。传统的本地音乐管理方式已无法满足多设备同步、在线分享与个性化推荐等现代需求。为此,我们设计并开发了一款基于Spring Boot框架的SoundWave,旨在为用户提供一个轻量级、可扩展的在线音乐管理与播放平台。

二、测试环境

硬件: Dell G15 5511
操作系统: Windows 11 家庭中文版
浏览器: Google Chrome 138.0.7204.169(正式版本) (64 位)

测试工具: 自动化测试 Selenium,性能测试 Jmeter
自动化脚本运行环境: IntelliJ IDEA 2025.1.4

三、测试分类

1、功能测试用例与非功能测试用例

功能测试、界面测试、性能测试、兼容性测试、易用性测试、安全测试、网络测试

2.测试内容

(1)登陆页面

测试用例:

测试用例编号操作账号密码预期结果
1输入正常的账号密码zhangsan123456登录成功
2输入错误的账号和密码tt333登录失败,提示错误
3输入正确的账号和错误的密码zhangsan332登录失败,提示错误
4输入错误的账号和正确的密码tt123456登录失败,提示错误
5不填写账号和密码  登录失败,提示错误
6填写账号不填写密码zhangsan 登录失败,提示错误
7不填写账号填写密码 123456登录失败,提示错误

测试结果:

①测试用例:

结果:登录成功

②测试用例:

结果:登录失败,提示错误信息

③测试用例:

结果:登录失败,提示错误信息

④测试用例:

结果:登录失败,提示错误信息

⑤测试用例:

结果:登录失败,提示错误信息

⑥测试用例:

结果:登录失败,提示错误信息

⑦测试用例:

结果:登录失败,提示错误信息

(2)注册页面

测试用例:

测试用例编号操作账号密码预期结果
1输入正常的账号密码zhangzifeng123456注册成功
2输入存在的账号zhangsan123456注册失败,提示错误
3输入正确的账号和错误的密码admin332注册失败,提示错误
4输入错误的账号和正确的密码1123456注册失败,提示错误
5不填写账号和密码  注册失败,提示错误
6填写账号不填写密码zhangsan 注册失败,提示错误
7不填写账号填写密码 123456注册失败,提示错误

①测试用例:

结果:注册成功,可登录

②测试用例:

结果:注册失败,提示错误信息

③测试用例:

结果:注册失败,提示错误信息

④测试用例:

预期结果:注册失败

实际结果:注册成功

⑤测试用例:

结果:注册失败,提示错误信息

⑥测试用例:

结果:注册失败,提示错误信息

⑦测试用例:

结果:注册失败,提示错误信息

(3)列表页面

1.删除
测试用例编号操作预期结果实际结果
1未登录返回登录login.html跳转login.html未跳转login.html,界面显示空白
2未登录删除一首歌无法删除无法删除
3未登录批量删除>=2首歌无法删除无法删除
4删除一首歌删除成功删除成功
5批量删除>=2首歌删除成功删除成功

①测试用例:

结果:未跳转,无法进行访问list.html

②测试用例:

结果:无法删除

③测试用例:

结果:无法删除

④测试用例:

结果:成功删除

⑤测试用例:

结果:删除成功

2.搜索
测试用例编号操作预期结果实际结果
1未登录返回登录login.html跳转login.html未跳转login.html,界面显示空白
2未登录进行搜索无法搜索无法搜索
3已登录进行模糊搜索歌名正常搜索正常搜索
4已登录进行搜索歌手正常搜索无法搜索

①测试用例:

结果:未跳转,无法进行访问list.html

②测试用例:

结果:无法搜索

③测试用例:

结果:搜索成功

④测试用例:

结果:无法搜索

3.收藏
测试用例编号操作预期结果实际结果
1未登录返回登录login.html跳转login.html未跳转login.html,界面显示空白
2未登录进行收藏无法收藏无法收藏
3已登录进行收藏成功收藏成功收藏

①测试用例:

结果:未跳转,无法进行访问list.html

②测试用例:

结果:无法收藏

③测试用例:

结果:收藏成功

4.播放
测试用例编号操作预期结果实际结果
1未登录返回登录login.html跳转login.html未跳转login.html,界面显示空白
2未登录进行播放音乐无法播放无法播放
3已登录进行播放音乐成功播放正常播放
4已登录拖拽音乐进度正常拖拽无法拖拽
5已登录切换音乐正常切歌无法切歌
6缩小音乐导航栏正常缩放正常缩放

①测试用例:

结果:未跳转,无法进行访问list.html

②测试用例:

结果:无法播放音乐

③测试用例:

结果:成功播放

④测试用例:

结果:只要拖拽就重新播放

⑤测试用例:

结果:无法切歌

⑥测试用例:

结果:缩小成功

(4)收藏页面

1.播放
测试用例编号操作预期结果实际结果
1未登录返回登录login.html跳转login.html未跳转login.html,界面显示空白
2进行播放音乐成功播放正常播放
3拖拽音乐进度正常拖拽无法拖拽
4切换音乐正常切歌无法切歌
5缩小音乐导航栏正常缩放正常缩放
6暂定音乐正常暂停正常暂停

①测试用例:

结果:未跳转,无法进行访问list.html

②测试用例:

结果:可以播放音乐

③测试用例:

结果:无法拖拽,只要拖拽就重头播放音乐

④测试用例:

结果:无法切换音乐

⑤测试用例:

结果:正常缩小

⑥测试用例:

结果:可以暂停

2.搜索
测试用例编号操作预期结果实际结果
1未登录返回登录login.html跳转login.html未跳转login.html,界面显示空白
2进行模糊搜索歌名正常搜索正常搜索
3进行搜索歌手正常搜索无法搜索

①测试用例:

结果:未跳转,无法进行访问list.html

②测试用例:

结果:正常搜索

③测试用例:

结果:无法搜索

3.移除收藏
测试用例编号操作预期结果实际结果
1未登录返回登录login.html跳转login.html未跳转login.html,界面显示空白
2移除收藏正常移除正常移除

①测试用例:

结果:未跳转,无法进行访问list.html

②测试用例:

结果:移除成功

4.回到首页
测试用例编号操作预期结果实际结果
1未登录返回登录login.html跳转login.html未跳转login.html,界面显示空白
2点返回首页跳转首页跳转首页

①测试用例:

结果:未跳转,无法进行访问list.html

②测试用例:

结果:跳转成功

(5)上传音乐

测试用例编号操作预期结果实际结果
1未登录返回登录login.html跳转login.html未跳转login.html,界面显示空白
2上传音乐,输入歌手名上传成功上传成功
3上传音乐,不输入歌手名上传失败上传失败
4不上传音乐,输入歌手名上传失败上传失败
5上传已有音乐,并输入歌手名上传失败上传失败

①测试用例:

结果:未跳转,无法进行访问list.html

②测试用例:

结果:上传成功

③测试用例:

结果:上传失败,提示输入歌手名

④测试用例:

结果:无法上传,无法点击上传按钮

⑤测试用例:

结果:上传失败

四、自动化测试(Java)

五、性能测试Jmeter (接口与梯度压力测试)

使用JMeter工具对论坛系统的接口进行简单的性能测试:

(1) 接口测试

1.线程组

2.HTTP请求默认值

3.HTTP Cookie管理器

4.固定定时器

5.CSV 数据文件设置

用户不同用户登录

6.登录

7.查询全部音乐

8.查询音乐

9.播放音乐

10.删除音乐

11.批量删除音乐

12.注册

13.收藏音乐

14.上传音乐

15.查询全部收藏音乐

16.查询指定收藏音乐

17.取消收藏音乐

18.查看结果树

(2)压力梯度测试

1.SoundWave Stepping Thread Group

2.可视化图

3.随之时间推移

4.吞吐量

5.响应时间

5.结论

JMeter 性能测试报告,需从 错误率、响应时间、吞吐量、负载变化 等维度展开,结合图表和统计数据定位系统瓶颈:

一、核心统计数据概览
指标数值分析重点
总请求数832-
失败请求数140(错误率 22.15%)错误率过高,需排查根源
平均响应时间1545.42 ms长尾响应明显(最大 37273 ms)
主要错误类型500 错误(129 次,81.43%)、连接超时(10 次,7.14%)服务端内部错误 + 网络 / 连接池问题
二、关键图表分析
1. 负载与响应趋势(Over Time 模块)
  • Active Threads Over Time:线程数 阶梯式上升(压力逐渐增大),模拟真实场景的负载变化。
  • Response Times Over Time:多个接口(如 “上传音乐”“上传音乐 - 0”)的 平均响应时间随负载上升而飙升,说明系统在高并发下性能退化严重。
  • Connect Time Over Time:连接时间随负载增加而延长,暗示 服务端连接池饱和或网络瓶颈
2. 吞吐量变化(Throughput 模块)
  • Hits/Codes/Transactions Per Second:随时间推移,成功请求数(200 码)持续下降,失败请求占比上升,表明系统 处理能力随负载增加而衰减
3. 响应时间分布(Response Times 模块)
  • Response Time Percentiles:高百分位(如 99th)响应时间极高(部分接口超 3000 ms),说明 大量请求经历严重延迟(长尾效应)。
  • Response Time Overview:超过 500 ms 的请求占比高,且存在错误请求,用户体验差。
4. 错误详情(Dashboard 统计)
  • 500 错误:集中在 删除音乐、获取收藏音乐、批量删除音乐 等接口,推测 服务端业务逻辑异常或数据库操作失败
  • 连接超时(Non HTTP ConnectException):提示 Connection timed out,可能是 服务端连接池已满,无法处理新连接
三、接口级性能分析
接口失败率平均响应时间典型问题
删除音乐56.36%1278.27 ms500 错误占比极高
获取收藏音乐56.76%1099.84 ms500 错误 + 连接超时
批量删除音乐40.00%131.32 ms500 错误为主
上传音乐6.25%1918.43 ms长尾响应(最大 37273 ms)
登录1.75%1157.66 ms偶尔出现超慢响应(21049 ms)
四、性能瓶颈与优化建议
1. 服务端稳定性问题
  • 500 错误排查:检查服务端日志,定位接口的业务逻辑异常(如 SQL 错误、参数校验失败)。
  • 连接池优化:调整服务端连接池大小(如 Tomcat 线程池),避免高并发下连接超时。
2. 响应时间长尾问题
  • 慢操作剖析:对响应时间长的接口(如上传播音乐)进行 代码 Profiling,排查慢 SQL、IO 阻塞或锁竞争。
  • 异步化改造:对耗时操作(如上传播)采用异步处理,避免阻塞线程。
3. 高失败率接口修复
  • 隔离测试:针对删除、收藏等接口,单独压测并检查依赖(如数据库、缓存)是否正常。
  • 重试机制:对非幂等接口增加重试策略,降低瞬时错误对业务的影响。
4. 压测策略优化
  • 拐点分析:通过调整线程组,找到系统 吞吐量拐点(如并发多少时性能骤降),明确容量上限。
  • 监控补充:压测时增加服务端监控(CPU、内存、数据库负载),辅助定位资源瓶颈。
 

综上,系统在 高并发下稳定性不足、响应延迟明显,需从 服务端错误排查、连接池优化、慢操作治理 三方面突破,结合监控和压测迭代优化。

六、测试结果评估

1、主线功能测试通过,项目可以上线

2、项目上线后观察线上数据

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

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

相关文章

C++ 类和对象详解(1)

类和对象是 C 面向对象编程的核心概念,它们为代码提供了更好的封装性、可读性和可维护性。本文将从类的定义开始,逐步讲解访问限定符、类域、实例化、对象大小计算、this 指针等关键知识,并对比 C 语言与 C 在实现数据结构时的差异&#xff0…

奈飞工厂:算法优化实战

推荐系统的算法逻辑与优化技巧在流媒体行业的 “用户注意力争夺战” 中,推荐系统是决定成败的核心武器。对于拥有2.3 亿全球付费用户的奈飞(Netflix)而言,其推荐系统每天处理数十亿次用户交互,最终实现了一个惊人数据&…

【人工智能99问】BERT的训练过程和推理过程是怎么样的?(24/99)

文章目录BERT的训练过程与推理过程一、预训练过程:学习通用语言表示1. 数据准备2. MLM任务训练(核心)3. NSP任务训练4. 预训练优化二、微调过程:适配下游任务1. 任务定义与数据2. 输入处理3. 模型结构调整4. 微调训练三、推理过程…

[TryHackMe]Challenges---Game Zone游戏区

这个房间将涵盖 SQLi(手动利用此漏洞和通过 SQLMap),破解用户的哈希密码,使用 SSH 隧道揭示隐藏服务,以及使用 metasploit payload 获取 root 权限。 1.通过SQL注入获得访问权限 手工注入 输入用户名 尝试使用SQL注入…

北京JAVA基础面试30天打卡09

1.MySQL存储引擎及区别特性MyISAMMemoryInnoDBB 树索引✅ Yes✅ Yes✅ Yes备份 / 按时间点恢复✅ Yes✅ Yes✅ Yes集群数据库支持❌ No❌ No❌ No聚簇索引❌ No❌ No✅ Yes压缩数据✅ Yes❌ No✅ Yes数据缓存❌ NoN/A✅ Yes加密数据✅ Yes✅ Yes✅ Yes外键支持❌ No❌ No✅ Yes…

AI时代的SD-WAN异地组网如何落地?

在全球化运营与数字化转型浪潮下,企业分支机构、数据中心与云服务的跨地域互联需求激增。传统专线因成本高昂、部署缓慢、灵活性差等问题日益凸显不足。SD-WAN以其智能化调度、显著降本、敏捷部署和云网融合的核心优势,成为实现高效、可靠、安全异地组网…

css中的color-mix()函数

color-mix() 是 CSS 颜色模块(CSS Color Module Level 5)中引入的一个强大的颜色混合函数,用于在指定的颜色空间中混合两种或多种颜色,生成新的颜色值。它解决了传统颜色混合(如通过透明度叠加)在视觉一致性…

Github desktop介绍(GitHub官方推出的一款图形化桌面工具,旨在简化Git和GitHub的使用流程)

文章目录**1. 简化 Git 操作****2. 代码版本控制****3. 团队协作****4. 代码托管与共享****5. 集成与扩展****6. 跨平台支持****7. 适合的使用场景****总结**GitHub Desktop 是 GitHub 官方推出的一款图形化桌面工具,旨在简化 Git 和 GitHub 的使用流程,…

整数规划-分支定界

内容来自:b站数学建模老哥 如:3.4,先找小于3的,再找大于4的 逐个

JetPack系列教程(六):Paging——让分页加载不再“秃”然

前言 在Android开发的世界里,分页加载就像是一场永无止境的马拉松,每次滚动到底部,都仿佛在提醒你:“嘿,朋友,还有更多数据等着你呢!”但别担心,Google大佬们早就看透了我们的烦恼&a…

扎实基础!深入理解Spring框架,解锁Java开发新境界

大家好,今天想和大家聊聊Java开发路上绕不开的一个重要基石——Spring框架。很多朋友在接触SpringBoot、SpringCloud这些现代化开发工具时,常常会感到吃力。究其原因,往往是对其底层的Spring核心机制理解不够透彻。Spring是构建这些高效框架的…

Heterophily-aware Representation Learning on Heterogeneous Graphs

Heterophily-Aware Representation Learning on Heterogeneous Graphs (TPAMI 2025) 计算机科学 1区 I:18.6 top期刊 📌 摘要 现实世界中的图结构通常非常复杂,不仅具有全局结构上的异质性,还表现出局部邻域内的强异质相似性(heterophily)。虽然越来越多的研究揭示了图…

计算机视觉(7)-纯视觉方案实现端到端轨迹规划(思路梳理)

基于纯视觉方案实现端到端轨迹规划,需融合开源模型、自有数据及系统工程优化。以下提供一套从模型选型到部署落地的完整方案,结合前沿开源技术与工业实践: 一、开源模型选型与组合策略 1. 感知-预测一体化模型 ViP3D(清华&#…

Nginx 屏蔽服务器名称与版本信息(源码级修改)

Nginx 屏蔽服务器名称与版本信息(源码级修改) 一、背景与目的 在生产环境部署 Nginx 时,默认配置会在 Server 响应头中暴露服务类型(如 nginx)和版本号(如 nginx/1.25.4)。这些信息可能被攻击者…

从钢板内部应力视角,重新认识护栏板矫平机

一、为什么钢板会“自带波浪”? 钢卷在热轧后冷却、卷取、长途运输、多次吊运时,不同部位受到的温度、张力、碰撞并不一致,内部会产生不均匀的残余应力。应力大的区域想“伸长”,应力小的区域想“缩短”,宏观上就表现为…

C++中的`auto`与`std::any`:功能、区别与选择建议

引言 在C编程中,auto和std::any是两个功能强大但用途不同的工具。理解它们的区别和适用场景对于编写高效、可维护的代码至关重要。本文将详细介绍auto和std::any的基本概念、使用方法、适用场景以及它们之间的区别,并提供选择建议,帮助开发者…

【Linux】进程(Process)

一、什么是进程二、进程的创建三、进程的状态四、僵尸进程五、孤儿进程六、进程的优先级 以及 并发/并行七、进程的切换一、什么是进程?什么是进程呢(一)?官方话来说:进程是一个执行实例、正在执行的程序、是系统资源分配的基本单位按课本官方话可能有一…

销售管理系统哪个好?14款软件深度对比

本文将深入对比14款销售管理系统:1.纷享销客; 2.Zoho CRM; 3.神州云动 CRM; 4.励销云 CRM; 5.Microsoft Dynamics 365 CRM; 6.悟空 CRM; 7.泛微 CRM; 8.HubSpot CRM; 9.…

如何从 0 到 1 开发企业级 AI 应用:步骤、框架与技巧

本文来自作者 莫尔索 的 企业级 AI 应用开发与最佳实践指南, 欢迎阅读原文。 大家好,我之前出版的《LangChain 编程:从入门到实践》一书获得了良好的市场反响和读者认可。近期推出了第二版,我对内容进行了大幅更新:近 …

【LLM】Openai之gpt-oss模型和GPT5模型

note gpt-oss模型代理能力:使用模型的原生功能进行函数调用、网页浏览(https://github.com/openai/gpt-oss/tree/main?tabreadme-ov-file#browser)、Python 代码执行(https://github.com/openai/gpt-oss/tree/main?tabreadme-o…