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

在线音乐平台测试报告

一、项目背景

1.1 测试目标

验证音乐播放器功能完整性,确保用户管理、音乐管理、播放控制、收藏功能等核心模块符合需求。

1.2 项目技术栈

后端:Spring Boot/Spring MVC

数据库:MySQL

前端:原生 HTML/CSS/AJAX

1.3 项目源码

gitee链接:

小加油家/Java_house - 码云 - 开源中国

1.4 项目使用链接

在线音乐服务器

1.5 测试文档

类别                                          配置/版本
硬件                                        Lenovo Y7000 2021
手动测试浏览器           Microsoft Edge 136.0.3240.76
开发工具IntelliJ IDEA 2023.3.1
自动化测试工具Selenium 4.21.0
操作系统Windows 11 家庭中文版
自动化测试浏览器Microsoft Edge 136.0.3240.76

二、测试分类

1、测试功能

测试用例:

1.1 登录模块

1.2 注册模块

1.3 音乐播放器主界面模块

1.4 个人喜欢模块

1.5 上传音乐模块

2、手动测试系统

1.1 登录界面

1.2 注册页面

1.3 主界面

1.4 上传页面

1.5 喜欢列表

1.6 增加喜欢

1.7 删除歌曲


功能测试总结:

测试用例:55

功能覆盖率:97% 

测试时间:2025-05-31 10.20 ~ 2025-05-31 12.20

测试方式:手动测试 

通过率:100%,没有明显功能性错误


3、自动化测试

自动化测试覆盖模块:

注册页面,登录页面,游客模式,播放主页面,个人收藏页面,音乐上传页面

自动化测试源码链接:

小加油家/Java_house - Gitee.com

部分自动化代码展示:

工具类:

public class Utils {public static WebDriver driver = null;public WebDriverWait wait = null;//调用driver对象public Utils(String url){driver = createDriver();driver.get(url);wait = new WebDriverWait(driver, Duration.ofSeconds(3));}private WebDriver createDriver() {//获取驱动对象if(driver==null){//下载驱动//WebDriverManager.chromedriver().setup();//使用本地驱动System.setProperty("webdriver.chrome.driver", "D:/chromedriver-win64 (4)/chromedriver-win64/chromedriver.exe"); // 替换为你的实际路径//添加配置,允许访问所有网站ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*");//创建驱动对象driver = new ChromeDriver(options);}//显示等待wait = new WebDriverWait(driver, Duration.ofSeconds(5));return driver;}/*** 屏幕截图* 屏幕截图文件目录* ./src/test/java/images/*                       /2025-04-29/*                                  /test01-20123010.png*                                  /test02-20133510.png*                       /2025-04-30/*                                  /test01-20123010.png*      *                           /test02-20133510.png**str:方法名/类名*/public void ScreenShot(String str) throws IOException {//年月日SimpleDateFormat sim1 = new SimpleDateFormat("yyyy-MM-dd");//时分秒SimpleDateFormat sim2 = new SimpleDateFormat("HHmmssSS");String dirTime = sim1.format(System.currentTimeMillis());String fileTime = sim2.format(System.currentTimeMillis());//图片文件名:路径+图片名称// ./src/test/java/images/2025-04-29/test01-20123010.pngString filename = "./src/test/java/images/" + dirTime + "/" + str + "-" + fileTime + ".png";//获取WebDriver实例的截图并保存为文件File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);//将截图文件复制到目标文件路径FileUtils.copyFile(srcFile,new File(filename));}/*** 销毁driver对象——关闭浏览器*/public static void quit(){if(driver != null)driver.quit();}}

播放器主页面:

public class MainPage extends Utils {public static String  url = "http://123.249.78.82:9090/list.html";public MainPage() {super(url);}public void Search() throws IOException {driver.findElement(By.cssSelector("#exampleInputName2")).sendKeys("一");driver.findElement(By.cssSelector("#submit1")).click();wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(2)")));ScreenShot("主页面模糊搜索结果");}public void ListenMusic() throws IOException, InterruptedException {wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(4)")));driver.findElement(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(4) > button")).click();Thread.sleep(15000);ScreenShot("主页面播放音乐");}public void SearchNull() throws IOException {driver.findElement(By.cssSelector("#exampleInputName2")).clear();driver.findElement(By.cssSelector("#exampleInputName2")).sendKeys("");driver.findElement(By.cssSelector("#submit1")).click();wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(2)")));ScreenShot("主页面空搜索结果");}public void AddLoveMusic() throws IOException {driver.findElement(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(5) > button:nth-child(2)")).click();ScreenShot("主页面收藏音乐");// 切换到警告弹窗并接受它——这表示确认弹窗并继续执行后续操作Alert alert = driver.switchTo().alert();alert.accept();}public void ToLoveMusic() throws IOException {driver.findElement(By.cssSelector("#body > nav > ul > li:nth-child(1) > a")).click();wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#info > tr:nth-child(1) > td:nth-child(1)")));ScreenShot("收藏音乐列表");}
}

自动化测试总结:

测试用例:20

功能覆盖率:80%

框架:Selenium 4.21.0 + Maven

通过率:100%,没有发现功能性bug

测试时间:2025.05.31 15:00 ~ 2025.05.31 23:10

自动化屏幕关键截图:(通过截图与预期效果比较) 完全一致



4、Jmeter梯度压力测试

线程组设计:

测试结果:

Jmeter性能压力测试报告总结:

测试用例:4

高频接口覆盖率:90%

软件:Apache Jmeter  5.5

通过率:100%,没有发现功能性bug

测试时间:2025.06.01 7:35 ~ 2025.06.01 10:55

结果分析: 系统在测试过程中表现稳定,未出现异常错误。TPS 在高负载下维持在较高水平,系统具有较好的并发处理能力。

性能瓶颈:
登录接口的响应时间在某些时刻显著增加,可能是性能瓶颈所在

三、测试结果评价

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

2、项目上线后高优观察线上数据,查看线上用户操作日志,及时跟进用户反馈。

http://www.xdnf.cn/news/10435.html

相关文章:

  • Go Channel 详解
  • 怎样在PyQt5中使用信号与槽机制?
  • logstash 安装
  • 【算法题】算法一本通
  • 征程 6 J6EM 常见 qconfig 配置解读与示例
  • CS144 - LAB1
  • Python并行处理实战:使用ProcessPoolExecutor加速计算
  • Redis分布式锁深度解析与最佳实践
  • 源码解析(二):nnUNet
  • 解释程序(Python)不需要生成机器码 逐行解析 逐行执行
  • 模型训练相关的问题
  • 个人用户进行LLMs本地部署前如何自查和筛选
  • 14.Wifi模组(ESP8266)
  • LeetCode 热题 100 208. 实现 Trie (前缀树)
  • 724.寻找数组的中心下标前缀和
  • 网页前端开发(基础进阶2)
  • 多线程( Thread)
  • Python训练打卡Day39
  • 电子电路:时钟脉冲与上升沿的详细解析
  • CppCon 2014 学习:ASYNCHRONOUS COMPUTING IN C++
  • ssm 学习笔记day03
  • OVD开放词汇检测 Detic 训练COCO数据集实践
  • 28 C 语言作用域详解:作用域特性(全局、局部、块级)、应用场景、注意事项
  • 【Java学习笔记】枚举
  • 怎么更改cursor chat中的字体大小
  • XCPC 常用技巧
  • Beta分布Dirichlet分布
  • [Python] Python中的多重继承
  • 飞牛fnNAS装机之迷你小主机的利旧
  • SolidWorks软件的安装与卸载