好的,我现在为你准备一份预填充好大部分内容的测试报告和PPT内容。这里面的数据是我根据项目结构和常见的测试场景推理和编造的,你需要根据你的实际操作结果(包括截图、实际数据、发现的缺陷等)进行替换和修改。

我将按照之前定义的结构,尽量完整地输出这些文件内容。


文件一:《软件测试项目综合实训》测试报告 (完整版 - 预填充)

《软件测试项目综合实训》测试报告

项目名称:platform-v1.0.0 电商平台测试
小组成员:张三 (请替换为你的名字)
日期:2025年06月05日 (请替换为实际提交日期)

目录

  1. 引言
    1.1 编写目的
    1.2 项目背景
    1.3 参考资料
  2. 测试概述
    2.1 测试范围
    2.2 测试环境
    2.3 测试策略概述
  3. 测试需求分析
    3.1 platform-admin 后台管理系统功能点
    3.2 platform-api 接口功能点
    3.3 非功能需求点
  4. 测试计划回顾
    4.1 计划执行情况
    4.2 资源使用情况
  5. 单元测试
    5.1 测试对象及方法
    5.2 测试用例与代码
    5.3 测试结果与分析
  6. 功能测试
    6.1 测试对象及方法
    6.2 测试用例设计
    6.3 测试执行过程与结果
    6.4 缺陷列表与分析
  7. 接口测试
    7.1 测试对象及方法
    7.2 核心接口说明
    7.3 测试用例与执行结果
  8. 性能测试
    8.1 测试对象及方法
    8.2 关键业务场景
    8.3 负载设计
    8.4 测试结果与分析
  9. 测试管理工具使用
    9.1 选用工具简介
    9.2 在本项目的测试中应用
  10. 测试总结
    10.1 测试执行总结
    10.2 缺陷总结与分析
    10.3 项目质量评估
    10.4 经验教训与建议
    附录 (可选)
    A. 完整测试用例列表 (部分已在正文体现)
    B. 单元测试代码 (部分已在正文体现)
    C. Selenium脚本片段 (部分已在正文体现)

1. 引言

1.1 编写目的
本文档旨在记录对 platform-v1.0.0 电商平台项目进行的软件测试全过程,包括测试需求分析、测试计划、各类测试(单元、功能、接口、性能)的设计、执行与结果分析,以及测试总结。本文档作为项目测试阶段的主要成果,用于评估软件质量,为软件的后续改进和上线提供依据,并作为课程考核的提交材料。

1.2 项目背景
platform-v1.0.0 是一个B/S架构的电商平台项目,主要包含两大部分:

  • platform-admin: 后台管理系统,提供商品管理、订单管理、用户管理等功能,供平台运营人员使用。
  • platform-api: API接口服务,为前端应用(如微信小程序 wx-malluni-mall)提供数据支持和业务逻辑处理。
    该项目技术栈主要为Java SSM (Spring, SpringMVC, MyBatis),数据库采用MySQL。

1.3 参考资料

  • 《软件测试项目综合实训》考核方案(2024-2025学年第2学期)
  • platform-v1.0.0 项目源代码及相关文档(如 README.md
  • JUnit官方文档
  • Selenium官方文档
  • Postman官方文档
  • JMeter官方文档

2. 测试概述

2.1 测试范围
本次测试主要覆盖 platform-v1.0.0 项目的核心功能模块,具体包括:

  • platform-admin (后台管理系统):
    • 系统登录模块
    • 用户管理模块 (增删改查、角色分配等)
    • 商品管理模块 (商品分类、商品增删改查、上下架等)
    • 订单管理模块 (订单查看、发货处理等)
  • platform-api (API接口服务):
    • 用户认证接口 (登录、注册)
    • 商品接口 (列表、详情)
    • 购物车接口 (添加、查看)
    • 订单接口 (提交、查询)
  • 单元测试: 选取 platform-commonplatform-admin 中的部分工具类和Service层方法。
  • 性能测试: 针对后台登录、API商品列表查询等关键场景。

2.2 测试环境

  • 硬件环境:
    • CPU: Intel Core i5 (或同等配置)
    • 内存: 8GB RAM
    • 硬盘: 256GB SSD
  • 软件环境:
    • 操作系统: Windows 10 (或 macOS / Linux)
    • JDK: 1.8.0_XXX
    • Maven: 3.6.X
    • IDE: IntelliJ IDEA 2023.X
    • 数据库: MySQL 5.7.X
    • Web服务器: Apache Tomcat 8.5.X (用于部署 platform-adminplatform-api)
    • 浏览器: Google Chrome 最新版, Firefox 最新版
  • 被测项目版本: platform-v1.0.0

2.3 测试策略概述
本次测试采用多种测试方法相结合的策略:

  • 单元测试: 使用JUnit对项目中的工具类和核心业务逻辑的Service层进行白盒测试,确保代码单元的正确性。
  • 功能测试: 针对 platform-admin 的Web界面,使用Selenium WebDriver (Java)结合手动测试,验证各项功能是否符合需求规格。采用等价类划分、边界值分析、决策表等方法设计测试用例。
  • 接口测试: 使用Postman对 platform-api 提供的核心API接口进行黑盒测试,验证接口的正确性、健壮性和安全性。
  • 性能测试: 使用JMeter对选定的关键业务场景进行负载测试和压力测试,评估系统在高并发情况下的表现。
  • 测试管理: (概念性)通过模拟使用禅道等测试管理工具的思想,对测试用例、缺陷等进行管理。

3. 测试需求分析

3.1 platform-admin 后台管理系统功能点

  • 用户登录:
    • 提供用户名、密码输入框及登录按钮。
    • 验证码功能。
    • 登录成功后跳转到后台主页。
    • 登录失败(用户名或密码错误、验证码错误)时应有相应提示。
  • 用户管理:
    • 查询用户列表(支持分页、条件搜索)。
    • 添加新用户(包括用户名、密码、角色等)。
    • 修改用户信息。
    • 删除用户。
    • 分配用户角色。
  • 商品管理:
    • 商品分类管理(增删改查)。
    • 商品列表查询(支持分页、按分类/名称搜索)。
    • 添加新商品(名称、描述、价格、库存、图片、所属分类等)。
    • 编辑商品信息。
    • 商品上下架操作。
    • 删除商品。
  • 订单管理:
    • 订单列表查询(支持分页、按订单号/用户搜索)。
    • 查看订单详情。
    • 订单发货操作。
    • (可选) 订单取消、退款处理。
  • 系统管理:
    • 角色管理(增删改查、权限分配)。
    • 菜单管理。
    • 参数配置。

3.2 platform-api 接口功能点

  • 用户认证接口:
    • /api/auth/login: 用户登录,成功返回token。
    • /api/auth/register: 用户注册。
    • /api/user/info: 获取当前登录用户信息 (需token)。
  • 首页接口:
    • /api/index/index: 获取首页数据(轮播图、分类、推荐商品等)。
  • 商品接口:
    • /api/goods/list: 获取商品列表(支持分类、关键词、排序、分页)。
    • /api/goods/detail: 获取商品详情。
    • /api/goods/category: 获取商品分类。
  • 购物车接口:
    • /api/cart/add: 添加商品到购物车 (需token)。
    • /api/cart/list: 查看购物车列表 (需token)。
    • /api/cart/update: 修改购物车商品数量 (需token)。
    • /api/cart/delete: 删除购物车商品 (需token)。
  • 订单接口:
    • /api/order/submit: 提交订单 (需token)。
    • /api/order/list: 获取用户订单列表 (需token)。
    • /api/order/detail: 获取订单详情 (需token)。
    • (可选) /api/pay/prepay: 模拟支付接口。

3.3 非功能需求点

  • 性能需求:
    • 后台管理系统页面加载时间应在3秒内。
    • 核心API接口平均响应时间在负载情况下(如50并发)应小于1秒。
    • 系统能支持至少50个并发用户进行常规操作。
  • 易用性需求:
    • 后台管理界面布局合理,操作流程清晰,提示信息明确。
    • API接口文档(通过Swagger生成)清晰易懂。
  • 安全性需求:
    • 用户密码应加密存储。
    • 关键操作应有权限校验。
    • 防止常见的Web攻击(如SQL注入、XSS,通过框架层面保障)。

4. 测试计划回顾

4.1 计划执行情况

任务内容计划开始时间计划结束时间实际开始时间实际结束时间状态备注
环境搭建与熟悉项目2025-05-202025-05-222025-05-202025-05-23完成MySQL配置稍有延迟
测试需求分析与计划编写2025-05-232025-05-242025-05-232025-05-24完成
单元测试用例设计与执行2025-05-252025-05-262025-05-252025-05-26完成
功能测试用例设计2025-05-262025-05-282025-05-262025-05-28完成
功能测试脚本编写与执行2025-05-292025-06-012025-05-292025-06-02完成Selenium脚本调试耗时较多
接口测试用例设计与执行2025-06-012025-06-032025-06-012025-06-03完成
性能测试脚本设计与执行2025-06-032025-06-042025-06-032025-06-04完成
测试报告与PPT编写2025-06-042025-06-052025-06-042025-06-05进行中

4.2 资源使用情况

  • 硬件资源: 个人PC一台 (配置符合计划)。
  • 软件资源: JDK 1.8, Maven 3.6.3, IntelliJ IDEA 2023.2, MySQL 5.7, Tomcat 8.5, JUnit 4.12, Selenium WebDriver 3.141.59, Postman 9.x, JMeter 5.4。
  • 人力资源: 张三 (1人)。

5. 单元测试

5.1 测试对象及方法

  • 测试工具: JUnit 4.12
  • 测试对象选取原则: 优先选择 platform-common 中的通用工具类,以及 platform-admin 中不严重依赖复杂外部环境(如Servlet API、大量Spring Bean注入)的Service层方法或其调用的核心逻辑方法。
  • 测试对象示例:
    1. platform-common/src/main/java/com/platform/utils/DateUtils.java 中的 format(Date date, String pattern) 方法。
    2. platform-common/src/main/java/com/platform/utils/StringUtils.java 中的 isNullOrEmpty(String str) 方法。 (假设存在此方法或类似方法)

5.2 测试用例与代码

5.2.1 DateUtils.format() 方法测试

  • 测试类: com.platform.utils.DateUtilsTest
  • 测试方法: testFormat()
  • 用例1:
    • 输入:Date 对象 (例如 2025-06-05 10:30:00), pattern yyyy-MM-dd HH:mm:ss
    • 预期输出:字符串 "2025-06-05 10:30:00"
  • 用例2:
    • 输入:Date 对象 (例如 2025-06-05 10:30:00), pattern yyyy/MM/dd
    • 预期输出:字符串 "2025/06/05"
  • 用例3:
    • 输入:null Date对象, pattern yyyy-MM-dd
    • 预期输出:null (或空字符串,取决于方法实现)

测试代码示例 (DateUtilsTest.java):

package com.platform.utils;import org.junit.Test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;public class DateUtilsTest {@Testpublic void testFormat_normalDateTime() {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date testDate = null;try {testDate = sdf.parse("2025-06-05 10:30:00");} catch (ParseException e) {e.printStackTrace();}String result = DateUtils.format(testDate, "yyyy-MM-dd HH:mm:ss");assertEquals("2025-06-05 10:30:00", result);}@Testpublic void testFormat_normalDateOnly() {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date testDate = null;try {testDate = sdf.parse("2025-06-05 10:30:00");} catch (ParseException e) {e.printStackTrace();}String result = DateUtils.format(testDate, "yyyy/MM/dd");assertEquals("2025/06/05", result);}@Testpublic void testFormat_nullDate() {// 假设DateUtils.format对null date返回nullString result = DateUtils.format(null, "yyyy-MM-dd");assertNull(result);}
}

5.2.2 StringUtils.isNullOrEmpty() 方法测试 (假设此工具类和方法存在)

  • 测试类: com.platform.utils.StringUtilsTest
  • 测试方法: testIsNullOrEmpty()
  • 用例1: 输入:null 字符串。预期:true
  • 用例2: 输入:空字符串 ""。预期:true
  • 用例3: 输入:非空字符串 "test"。预期:false
  • 用例4: 输入:包含空格的字符串 " "。预期:false (取决于方法具体实现,通常非空)。

测试代码示例 (StringUtilsTest.java):

package com.platform.utils; // 假设的包名import org.junit.Test;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertFalse;// 假设的StringUtils类
// class StringUtils {
//    public static boolean isNullOrEmpty(String str) {
//        return str == null || str.isEmpty();
//    }
// }public class StringUtilsTest {@Testpublic void testIsNullOrEmpty_nullInput() {assertTrue(StringUtils.isNullOrEmpty(null));}@Testpublic void testIsNullOrEmpty_emptyInput() {assertTrue(StringUtils.isNullOrEmpty(""));}@Testpublic void testIsNullOrEmpty_nonEmptyInput() {assertFalse(StringUtils.isNullOrEmpty("test"));}@Testpublic void testIsNullOrEmpty_spaceInput() {assertFalse(StringUtils.isNullOrEmpty(" ")); // 通常空格不视为空}
}

5.3 测试结果与分析
所有单元测试用例均已在开发环境中执行并通过。

  • DateUtilsTest: 3个测试用例全部通过。
  • StringUtilsTest: 4个测试用例全部通过。

[截图:JUnit测试结果概览图,显示绿色通过条]

分析:
通过单元测试,验证了 DateUtils 的日期格式化功能在正常和边界条件(如null输入)下行为符合预期。同时,StringUtils 的空字符串判断逻辑也得到了验证。这为上层业务逻辑的正确性提供了一定的基础保障。


6. 功能测试

6.1 测试对象及方法

  • 测试对象: platform-admin 后台管理系统。
  • 测试方法: 主要采用Selenium WebDriver (Java) 进行自动化测试脚本编写和执行,辅以少量探索性手动测试。
  • 用例设计方法: 等价类划分、边界值分析、错误推测法。

6.2 测试用例设计
(此处仅列举部分核心用例,完整用例见附录A或单独文档)

用例ID模块子模块测试标题设计方法前置条件测试步骤预期结果
TC_FUNC_LOGIN_001用户登录登录正确用户名密码登录成功等价类有效后台服务启动,存在用户admin/admin1. 打开登录页 2. 输入用户名:admin 3. 输入密码:admin 4. 点击登录按钮成功登录,跳转到后台首页,显示欢迎信息 “admin”
TC_FUNC_LOGIN_002用户登录登录错误密码登录失败等价类无效后台服务启动1. 打开登录页 2. 输入用户名:admin 3. 输入密码:wrongpassword 4. 点击登录按钮登录失败,页面提示“用户名或密码错误”
TC_FUNC_LOGIN_003用户登录登录空用户名登录失败边界值后台服务启动1. 打开登录页 2. 用户名框留空 3. 输入密码:admin 4. 点击登录按钮登录失败,页面提示“用户名不能为空”
TC_FUNC_LOGIN_004用户登录登录空密码登录失败边界值后台服务启动1. 打开登录页 2. 输入用户名:admin 3. 密码框留空 4. 点击登录按钮登录失败,页面提示“密码不能为空”
TC_FUNC_GOODS_001商品管理添加商品成功添加商品(所有必填项有效)等价类有效已登录后台管理系统1. 进入商品管理模块 2. 点击“添加商品” 3. 输入商品名称、价格(50)、库存(100)、选择分类 4. 上传商品图片 5. 点击“保存”按钮商品添加成功,列表页显示新商品,数据库记录正确
TC_FUNC_GOODS_002商品管理添加商品添加商品(商品名称为空)等价类无效已登录后台管理系统1. 进入商品管理模块 2. 点击“添加商品” 3. 商品名称留空,其他项有效 4. 点击“保存”添加失败,提示“商品名称不能为空”
TC_FUNC_GOODS_003商品管理添加商品添加商品(价格为负数)边界值已登录后台管理系统1. 进入商品管理模块 2. 点击“添加商品” 3. 商品名称有效,价格输入-10 4. 点击“保存”添加失败,提示“价格必须为正数”
TC_FUNC_GOODS_004商品管理添加商品添加商品(库存为非数字)等价类无效已登录后台管理系统1. 进入商品管理模块 2. 点击“添加商品” 3. 商品名称有效,库存输入“abc” 4. 点击“保存”添加失败,提示“库存必须为数字”
TC_FUNC_GOODS_005商品管理查询商品按存在的商品名称查询等价类有效已登录,商品列表有商品“测试商品A”1. 进入商品管理模块 2. 在搜索框输入“测试商品A” 3. 点击查询列表显示包含“测试商品A”的记录
TC_FUNC_GOODS_006商品管理查询商品按不存在的商品名称查询等价类无效已登录1. 进入商品管理模块 2. 在搜索框输入“一个不存在的商品XYZ” 3. 点击查询列表为空或提示“未找到相关商品”
TC_FUNC_GOODS_007商品管理编辑商品成功编辑商品价格等价类有效已登录,存在可编辑商品1. 进入商品管理模块 2. 选择一个商品点击“编辑” 3. 修改价格为60 4. 点击“保存”编辑成功,商品价格更新为60,数据库记录正确
TC_FUNC_GOODS_008商品管理上下架商品上架操作等价类有效已登录,存在一个已下架商品1. 进入商品管理模块 2. 选中一个已下架商品 3. 点击“上架”按钮商品状态变为“已上架”,前端可浏览
TC_FUNC_GOODS_009商品管理上下架商品下架操作等价类有效已登录,存在一个已上架商品1. 进入商品管理模块 2. 选中一个已上架商品 3. 点击“下架”按钮商品状态变为“已下架”,前端不可浏览
TC_FUNC_GOODS_010商品管理删除商品删除指定商品等价类有效已登录,存在一个可删除商品1. 进入商品管理模块 2. 选中一个商品 3. 点击“删除”按钮 4. 确认删除商品从列表消失,数据库记录被标记删除或物理删除

6.3 测试执行过程与结果

Selenium WebDriver脚本示例 (Java - 登录测试 TC_FUNC_LOGIN_001):

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.assertTrue;public class AdminLoginTest {private WebDriver driver;private String baseUrl = "http://localhost:8080/platform-admin/"; // 你的后台URL@Beforepublic void setUp() {System.setProperty("webdriver.chrome.driver", "path/to/your/chromedriver.exe"); // 替换为你的chromedriver路径driver = new ChromeDriver();driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);driver.manage().window().maximize();}@Testpublic void testAdminLoginSuccess() {driver.get(baseUrl + "login.html");driver.findElement(By.name("username")).sendKeys("admin");driver.findElement(By.name("password")).sendKeys("admin");// 假设有验证码,这里简单处理,实际中可能需要万能验证码或手动输入// driver.findElement(By.name("captcha")).sendKeys("test"); driver.findElement(By.xpath("//button[@type='submit']")).click();// 等待页面跳转并验证try {Thread.sleep(2000); // 简单等待,实际应用中用显式等待} catch (InterruptedException e) {e.printStackTrace();}// 验证是否跳转到首页,比如检查页面标题或某个特定元素assertTrue("Login failed, not on dashboard", driver.getCurrentUrl().contains("index.html"));WebElement welcomeMsg = driver.findElement(By.xpath("//*[contains(text(),'欢迎您:admin')]")); // 假设的欢迎元素assertTrue("Welcome message not found", welcomeMsg.isDisplayed());}// 可添加其他登录失败的测试用例@Afterpublic void tearDown() {if (driver != null) {driver.quit();}}
}

执行过程截图:

  • 登录成功截图:
    [截图:platform-admin登录页面,输入admin/admin后点击登录]
    [截图:platform-admin后台首页,显示欢迎信息]
  • 添加商品成功截图:
    [截图:添加商品页面,填入有效数据后点击保存]
    [截图:商品列表页面,显示新添加的商品]
  • 查询商品结果截图:
    [截图:商品列表页面,输入查询条件后,列表显示符合条件的商品]

6.4 缺陷列表与分析

缺陷ID模块标题复现步骤预期结果实际结果严重程度优先级状态
BUG_F_001商品管理添加商品时,若价格输入非数字,保存后提示不友好1.登录后台 2.进入商品管理-添加商品 3.商品名称输入“测试”,价格输入“abc”,库存100 4.点击保存应提示“价格必须为数字”页面报错或提示“操作失败”,未明确指出原因已提交
BUG_F_002用户管理修改用户密码时,新密码未做复杂度校验1.登录后台 2.进入用户管理 3.选择一个用户点修改 4.修改密码为“123”应提示“密码过于简单,至少包含字母和数字,长度6位以上”密码修改成功已提交
BUG_F_003订单管理订单发货后,发货状态未立即刷新1.登录后台 2.进入订单管理 3.选择一个待发货订单 4.点击“发货”并确认 5.返回订单列表订单状态应立即更新为“已发货”订单状态仍为“待发货”,需手动刷新页面才更新已提交

分析:
功能测试过程中,大部分核心功能符合预期。发现的缺陷主要集中在用户体验和边界条件处理上。例如,部分错误提示不够明确具体,某些操作后的状态刷新不够及时。这些缺陷建议在后续版本中修复,以提升系统的稳定性和易用性。自动化脚本的引入有效提高了回归测试的效率。


7. 接口测试

7.1 测试对象及方法

  • 测试对象: platform-api 提供的API接口。
  • 测试工具: Postman 9.x
  • 测试方法:
    1. 通过Swagger UI (http://localhost:8080/platform-api/swagger-ui.html) 获取接口列表和定义。
    2. 在Postman中创建请求,设置请求方法、URL、请求头、请求体。
    3. 发送请求,检查响应状态码、响应体内容。
    4. 使用Postman的Tests功能编写断言,自动校验关键字段。

7.2 核心接口说明

  • 用户登录 (/api/auth/login)
    • 功能:用户使用手机号和密码登录,获取访问令牌。
    • 方法:POST
    • 请求体 (JSON): {"mobile": "13800138000", "password": "password123"}
    • 响应 (成功): {"errno":0, "errmsg":"登录成功", "data":{"token":"xxx...", "userInfo":{...}}}
  • 获取商品列表 (/api/goods/list)
    • 功能:查询商品列表,支持分页和分类筛选。
    • 方法:GET
    • 参数:categoryId (可选), keyword (可选), page (页码), size (每页数量)
    • 响应 (成功): {"errno":0, "errmsg":"", "data":{"count":100, "totalPages":10, "pageSize":10, "currentPage":1, "data":[...]}}
  • 获取商品详情 (/api/goods/detail)
    • 功能:根据商品ID获取商品详细信息。
    • 方法:GET
    • 参数:id (商品ID)
    • 响应 (成功): {"errno":0, "errmsg":"", "data":{...商品详情对象...}}

7.3 测试用例与执行结果

用例1:用户登录 - 成功

  • URL: http://localhost:8080/platform-api/api/auth/login
  • Method: POST
  • Headers: Content-Type: application/json
  • Body: {"mobile": "13800138000", "password": "password123"} (假设此用户已注册)
  • 预期:Status 200, errno为0, data.token不为空。
  • Postman Tests:
    pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
    pm.test("Login success with errno 0", function () {var jsonData = pm.response.json();pm.expect(jsonData.errno).to.eql(0);pm.expect(jsonData.data.token).to.not.be.empty;pm.environment.set("user_token", jsonData.data.token); // 保存token供后续使用
    });
    
  • 结果:通过
    [截图:Postman请求用户登录接口及成功响应,Tests Tab显示通过]

用例2:用户登录 - 密码错误

  • URL: http://localhost:8080/platform-api/api/auth/login
  • Method: POST
  • Headers: Content-Type: application/json
  • Body: {"mobile": "13800138000", "password": "wrongpassword"}
  • 预期:Status 200 (或业务错误码), errno非0, errmsg提示错误。
  • Postman Tests:
    pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
    pm.test("Login failed with errno not 0", function () {var jsonData = pm.response.json();pm.expect(jsonData.errno).to.not.eql(0);pm.expect(jsonData.errmsg).to.eql("密码错误"); // 或实际的错误消息
    });
    
  • 结果:通过
    [截图:Postman请求用户登录接口及错误响应,Tests Tab显示通过]

用例3:获取商品列表 - 无需登录

  • URL: http://localhost:8080/platform-api/api/goods/list?page=1&size=5
  • Method: GET
  • 预期:Status 200, errno为0, data.data数组有内容 (假设有商品数据)。
  • Postman Tests:
    pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
    pm.test("Get goods list success", function () {var jsonData = pm.response.json();pm.expect(jsonData.errno).to.eql(0);pm.expect(jsonData.data.data).to.be.an('array').that.is.not.empty;
    });
    
  • 结果:通过
    [截图:Postman请求商品列表接口及成功响应,Tests Tab显示通过]

用例4:添加商品到购物车 - 需要登录

  • 前置条件:执行用例1,获取到 user_token
  • URL: http://localhost:8080/platform-api/api/cart/add
  • Method: POST
  • Headers: Content-Type: application/json, X-Nideshop-Token: {{user_token}} (根据项目实际token名)
  • Body: {"goodsId": 1, "productId": 1, "number": 1} (假设goodsId和productId存在)
  • 预期:Status 200, errno为0。
  • Postman Tests:
    pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
    pm.test("Add to cart success", function () {var jsonData = pm.response.json();pm.expect(jsonData.errno).to.eql(0);
    });
    
  • 结果:通过
    [截图:Postman请求添加购物车接口及成功响应,Tests Tab显示通过]

接口测试总结:
对选定的核心API接口进行了测试,包括正常场景、异常场景(如参数错误、未授权访问)。大部分接口按预期工作。发现一个问题:部分接口对于无效参数的错误提示不够标准化。建议统一API错误码和错误消息格式。


8. 性能测试

8.1 测试对象及方法

  • 测试对象: platform-admin 后台登录接口 和 platform-api 的商品列表查询接口。
  • 测试工具: Apache JMeter 5.4
  • 测试方法:
    1. 设计测试场景和负载模式。
    2. 在JMeter中创建测试计划,包括线程组、HTTP请求取样器、监听器等。
    3. 执行测试,收集响应时间、吞吐量、错误率等数据。
    4. 分析结果,评估系统性能。

8.2 关键业务场景

  1. 场景1:后台管理员并发登录
    • 业务流程:访问登录页 -> 输入用户名密码 -> 点击登录 -> 验证登录成功。
  2. 场景2:API并发查询商品列表
    • 业务流程:API用户(模拟)请求商品列表接口。

8.3 负载设计

  • 场景1 (后台登录):
    • 并发用户数 (Threads): 20
    • Ramp-up Period: 10秒 (10秒内20个用户全部启动)
    • Loop Count: 5 (每个用户重复登录5次)
    • 思考时间: Uniform Random Timer (1000ms - 3000ms)
  • 场景2 (API商品列表):
    • 并发用户数 (Threads): 50
    • Ramp-up Period: 20秒
    • Duration: 60秒 (持续运行1分钟)
    • 思考时间: Uniform Random Timer (500ms - 1500ms)

JMeter测试计划关键配置:

  • 线程组 (Thread Group):
    [截图:JMeter线程组配置界面 - 后台登录场景]
    [截图:JMeter线程组配置界面 - API商品列表场景]
  • HTTP请求取样器 (HTTP Request Sampler):
    [截图:JMeter HTTP请求配置 - 后台登录POST请求]
    [截图:JMeter HTTP请求配置 - API商品列表GET请求]
  • 监听器 (Listeners):
    • View Results Tree (用于调试)
    • Summary Report (汇总报告)
    • Aggregate Report (聚合报告)
    • Response Time Graph (响应时间图)

8.4 测试结果与分析

场景1:后台管理员并发登录 (20用户,循环5次)

  • Summary Report / Aggregate Report:
    • Samples: 100
    • Average Response Time: 650 ms
    • 90% Line (90th Percentile Response Time): 850 ms
    • Min Response Time: 320 ms
    • Max Response Time: 1500 ms
    • Error %: 0.0%
    • Throughput: 约 15 requests/second
      [截图:JMeter Summary Report - 后台登录场景]
      [截图:JMeter Response Time Graph - 后台登录场景]

场景2:API并发查询商品列表 (50用户,持续1分钟)

  • Summary Report / Aggregate Report:
    • Samples: 约 2500 (根据实际吞吐量)
    • Average Response Time: 280 ms
    • 90% Line (90th Percentile Response Time): 450 ms
    • Min Response Time: 80 ms
    • Max Response Time: 950 ms
    • Error %: 0.2% (少量超时或错误)
    • Throughput: 约 40 requests/second
      [截图:JMeter Aggregate Report - API商品列表场景]
      [截图:JMeter Response Time Graph - API商品列表场景]

分析:

  • 后台登录场景: 在20并发用户下,平均响应时间650ms,90%用户响应时间在850ms以内,无错误。系统处理后台登录的性能表现良好。
  • API商品列表场景: 在50并发用户持续访问1分钟的情况下,平均响应时间280ms,90%用户响应时间在450ms以内,吞吐量达到40 req/s。出现了0.2%的错误率,主要为少量请求超时,这表明在50并发下,API商品列表接口开始出现轻微的性能压力。
  • 初步瓶颈判断: API商品列表接口在并发数较高时,可能存在优化空间,如SQL查询效率、缓存机制等。后台登录性能满足当前需求。
  • 建议:
    • 对API商品列表接口进行进一步的性能分析和调优,特别是数据库查询和缓存策略。
    • 可以考虑增加服务器资源或优化应用服务器配置,以应对更高的并发量。

9. 测试管理工具使用

9.1 选用工具简介 (概念性)
本项目在测试管理方面,借鉴了 禅道 (ZenTao) 测试管理工具的思想。禅道是一款国产的开源项目管理软件,集产品管理、项目管理、质量管理(测试管理)、文档管理、组织管理和事务管理于一体,功能完善,操作便捷。
其测试管理模块主要功能包括:

  • 用例库管理: 创建和维护测试用例,支持用例的模块化组织、版本控制。
  • 测试套件: 将用例组织成测试套件,方便执行。
  • 测试版本/轮次: 针对不同的软件版本或测试阶段创建测试单。
  • 执行测试: 分配测试任务,记录测试结果(通过、失败、阻塞、跳过)。
  • 缺陷管理: 提交、指派、跟踪、关闭缺陷。
  • 统计报表: 生成测试进度、用例覆盖率、缺陷分布等报表。

9.2 在本项目的测试中应用 (概念性说明)
如果实际使用禅道管理本项目测试:

  1. 需求关联: 将测试需求分析中识别的功能点录入禅道的需求模块。
  2. 用例编写: 将本文档中设计的单元测试、功能测试、接口测试的测试用例,在禅道的“测试”-“用例”模块中创建。每个用例可以关联到对应的需求。
    [截图:禅道用例管理界面示例,显示本项目用例]
  3. 测试执行: 创建测试版本(如“platform-v1.0.0 第一轮测试”),从用例库中选择相关的用例加入到测试版本中。测试人员执行用例,并在禅道中记录每个用例的实际结果。
    [截图:禅道测试执行界面示例,显示用例执行状态]
  4. 缺陷提交与跟踪: 对于执行失败的用例,或在测试过程中发现的其他问题,通过禅道的“测试”-“Bug”模块提交缺陷。详细描述缺陷的标题、重现步骤、预期结果、实际结果、严重程度,并附上截图。开发人员修复后,测试人员进行回归验证。
    [截图:禅道缺陷提交/详情界面示例,显示一个本项目缺陷]
  5. 报告生成: 测试完成后,可利用禅道的统计报表功能,生成测试总结报告,了解测试覆盖情况、缺陷状态等。

通过这种方式,可以有效地管理测试过程,确保测试的系统性和可追溯性。


10. 测试总结

10.1 测试执行总结
本次针对 platform-v1.0.0 电商平台的测试工作,已按计划完成了单元测试、功能测试、接口测试和性能测试。

  • 单元测试: 共执行了7个单元测试用例(DateUtils 3个,StringUtils 4个),全部通过。
  • 功能测试: 设计并执行了10个核心功能测试用例(针对后台管理系统),其中7个通过,3个发现缺陷。自动化脚本覆盖了登录和部分商品管理操作。
  • 接口测试: 对约15个核心API接口进行了测试(每个接口设计2-3个用例,总计约40个用例),大部分通过,发现部分接口参数校验和错误提示需改进。
  • 性能测试: 对后台登录和API商品列表查询两个关键场景进行了性能测试,后台登录性能良好,API商品列表在高并发下有轻微压力。

整体覆盖了项目的主要功能模块和关键技术点,测试过程中注重了不同测试方法的综合运用。

10.2 缺陷总结与分析
本次测试共发现缺陷5个(功能缺陷3个,接口问题1类,性能瓶颈1处):

  • 功能缺陷 (3个): 主要涉及UI交互、错误提示不明确、状态刷新不及时等问题,严重程度多为中低级。这些缺陷对核心业务流程影响不大,但影响用户体验。
  • 接口问题 (1类): 部分API接口在处理无效参数时,返回的错误信息不够统一和规范。
  • 性能瓶颈 (1处): API商品列表接口在50并发用户时出现少量错误和响应时间波动,可能存在SQL查询或缓存优化空间。

建议优先修复影响用户体验的功能缺陷和接口规范性问题,并对API商品列表接口进行针对性优化。

10.3 项目质量评估
综合本次测试结果,platform-v1.0.0 电商平台项目:

  • 核心功能: 基本实现,主要业务流程能够跑通。
  • 稳定性: 在常规操作下表现稳定,但在高并发场景下,部分API接口稳定性有待提升。
  • 易用性: 后台管理系统基本可用,但部分细节(如错误提示、即时反馈)可进一步优化。API接口通过Swagger文档提供,易于理解。
  • 性能: 后台系统常规操作性能满足要求,核心API在中小并发下表现良好,高并发下需关注。

总体而言,项目已达到一定的质量水平,可以进入下一阶段(如UAT或小范围试用),但建议在正式上线前解决本次测试发现的主要缺陷和性能瓶颈。

10.4 经验教训与建议

  • 测试计划的重要性: 详细的测试计划为测试工作的顺利开展提供了有力保障。
  • 早期测试介入: 如果能在需求分析和设计阶段更早介入,可以更早发现潜在问题。
  • 自动化测试的价值: Selenium和Postman的自动化脚本在回归测试中节省了大量时间,JMeter则为性能评估提供了数据支撑。建议持续投入自动化测试脚本的维护和扩展。
  • 沟通与协作: (如果是团队项目)测试过程中与开发团队的及时沟通对于缺陷的确认和修复至关重要。
  • 工具选择: 合理选择测试工具能极大提高测试效率。
  • 文档规范: 规范的测试文档(用例、报告)有利于知识传递和后续维护。

建议:

  1. 建立更完善的自动化回归测试套件。
  2. 加强开发与测试团队的协作,实施持续集成和持续测试。
  3. 对高风险模块和性能瓶颈点进行专项优化。
  4. 重视用户体验,优化UI交互和错误提示。

附录

(根据实际情况,可以将完整的测试用例表格、核心代码片段等放在附录中,正文中只展示代表性示例。)


文件二:答辩PPT (答辩PPT.pptx) 内容 (预填充)

以下是PPT的逐页内容建议,你需要将其制作成PPT,并配上截图。


幻灯片1:封面

  • 标题: 《软件测试项目综合实训》答辩
  • 项目名称: platform-v1.0.0 电商平台测试
  • 汇报人: 张三 (你的名字)
  • 日期: 2025年06月05日

幻灯片2:项目概述

  • 项目简介:
    • platform-v1.0.0:一个B/S架构的电商平台。
    • 包含后台管理 (platform-admin) 和API服务 (platform-api)。
    • 技术栈:Java SSM, MySQL。
  • 测试目标:
    • 验证项目核心功能是否符合需求。
    • 评估系统性能和稳定性。
    • 发现潜在缺陷,提升软件质量。
  • 测试范围:
    • 后台管理:登录、用户、商品、订单。
    • API接口:认证、商品、购物车、订单。
    • 单元、功能、接口、性能测试。

幻灯片3:测试环境与工具

  • 硬件环境: 个人PC (Intel i5, 8GB RAM, 256GB SSD)
  • 软件环境:
    • OS: Windows 10
    • JDK 1.8, Maven 3.6.3, MySQL 5.7
    • Tomcat 8.5, IntelliJ IDEA
    • Chrome, Firefox
  • 测试工具列表:
    • 单元测试:JUnit 4.12
    • 功能测试:Selenium WebDriver (Java)
    • 接口测试:Postman 9.x
    • 性能测试:JMeter 5.4
    • (概念) 测试管理:禅道

幻灯片4:单元测试

  • 测试对象:
    • platform-common.utils.DateUtils.format()
    • platform-common.utils.StringUtils.isNullOrEmpty()
  • 测试方法: JUnit,白盒测试。
  • 关键测试用例代码 (DateUtils.format()):
    @Test
    public void testFormat_normalDateTime() {// ...String result = DateUtils.format(testDate, "yyyy-MM-dd HH:mm:ss");assertEquals("2025-06-05 10:30:00", result);
    }
    
    [截图:JUnit测试类DateUtilsTest部分代码]
  • 测试结果: 共执行7个用例,全部通过。
    [截图:JUnit测试结果概览图]

幻灯片5:功能测试 - 用例设计

  • 测试模块: 用户登录、商品管理等。
  • 设计方法: 等价类划分、边界值分析。
  • 用例示例 (TC_FUNC_GOODS_001 - 成功添加商品):
    • 前置: 已登录后台。
    • 步骤: 进入商品模块 -> 点击添加 -> 输入有效名称、价格(50)、库存(100) -> 保存。
    • 预期: 添加成功,列表显示新商品。
  • 用例示例 (TC_FUNC_GOODS_003 - 价格为负数):
    • 前置: 已登录后台。
    • 步骤: 进入商品模块 -> 点击添加 -> 名称有效,价格输入-10 -> 保存。
    • 预期: 添加失败,提示“价格必须为正数”。

幻灯片6:功能测试 - 执行与缺陷

  • 自动化脚本 (Selenium WebDriver - Java - 登录成功):
    driver.get(baseUrl + "login.html");
    driver.findElement(By.name("username")).sendKeys("admin");
    // ... 点击登录 ...
    assertTrue(driver.getCurrentUrl().contains("index.html"));
    
    [截图:Selenium登录脚本关键代码片段]
  • 关键执行截图:
    [截图:后台登录成功跳转首页]
    [截图:商品添加成功后列表展示]
  • 发现缺陷举例 (BUG_F_001):
    • 标题: 添加商品时,若价格输入非数字,保存后提示不友好。
    • 实际结果: 页面报错或提示“操作失败”,未明确指出原因。
      [截图:BUG_F_001复现界面]

幻灯片7:接口测试 - Postman

  • 测试接口示例:
    • POST /api/auth/login (用户登录)
    • GET /api/goods/list (获取商品列表)
  • 测试流程:
    1. Swagger获取接口定义。
    2. Postman构造请求 (URL, Method, Headers, Body)。
    3. 发送请求,检查响应 (Status, Body)。
    4. 编写Tests断言。
  • 用户登录成功 (用例1):
    • Body: {"mobile": "138...", "password": "..."}
    • Tests: pm.expect(jsonData.errno).to.eql(0); pm.expect(jsonData.data.token).to.not.be.empty;
      [截图:Postman用户登录接口成功响应及Tests通过]

幻灯片8:接口测试 - 结果

  • 获取商品列表 (用例3):
    • URL: /api/goods/list?page=1&size=5
    • Tests: pm.expect(jsonData.errno).to.eql(0); pm.expect(jsonData.data.data).to.be.an('array');
      [截图:Postman获取商品列表接口成功响应及Tests通过]
  • 接口测试总结:
    • 核心接口功能基本正常。
    • 部分接口对错误参数的响应信息需规范化。
    • Token认证机制工作正常。

幻灯片9:性能测试 - JMeter

  • 测试场景:
    1. 后台管理员并发登录。
    2. API并发查询商品列表。
  • 负载设计 (API商品列表):
    • 并发用户数: 50
    • Ramp-up: 20秒
    • Duration: 60秒
      [截图:JMeter线程组配置 (API商品列表场景)]
  • JMeter脚本关键配置:
    • HTTP请求取样器
    • 聚合报告、响应时间图
      [截图:JMeter中HTTP请求取样器配置 (API商品列表)]

幻灯片10:性能测试 - 结果分析

  • 后台登录 (20并发):
    • Avg Response Time: 650 ms
    • 90% Line: 850 ms
    • Error %: 0.0%
    • Throughput: ~15 req/s
      [截图:JMeter聚合报告 (后台登录)]
  • API商品列表 (50并发):
    • Avg Response Time: 280 ms
    • 90% Line: 450 ms
    • Error %: 0.2%
    • Throughput: ~40 req/s
      [截图:JMeter响应时间图 (API商品列表)]
  • 分析与结论:
    • 后台登录性能良好。
    • API商品列表在高并发(50用户)下开始出现轻微压力,有0.2%错误率,建议优化。

幻灯片11:测试管理 (概念 - 禅道)

  • 工具作用: 需求、用例、执行、缺陷、报告全流程管理。
  • 本项目应用设想:
    • 用例管理: 将设计的用例录入禅道,按模块组织。
      [截图:禅道用例管理界面示例]
    • 缺陷跟踪: 本次发现的BUG_F_001等缺陷,在禅道中提交、指派、跟踪。
      [截图:禅道Bug详情界面示例]
    • 优势: 提高测试效率,保证测试覆盖度,便于团队协作和进度跟踪。

幻灯片12:测试总结与体会

  • 测试完成情况:
    • 按计划完成单元、功能、接口、性能测试。
    • 覆盖核心模块,发现5个主要问题点。
  • 项目整体质量评估:
    • 核心功能可用,常规操作稳定。
    • 用户体验和高并发性能有待提升。
    • 建议修复已知缺陷后,可进入下一阶段。
  • 问题与解决:
    • 环境搭建:JDK/Maven版本匹配,数据库初始化。
    • Selenium脚本:元素定位策略,动态等待。
    • JMeter:参数化,关联Token。
  • 个人心得与体会:
    • 深刻理解了软件测试的完整流程。
    • 熟练掌握了多种测试工具的基本使用。
    • 认识到测试用例设计和缺陷分析的重要性。
    • 自动化测试对提高效率和覆盖率有巨大帮助。

幻灯片13:致谢

  • 感谢老师的指导!
  • Q & A

请务必注意,以上所有内容(特别是测试数据、缺陷描述、截图位置提示)都需要你根据实际操作来替换和完善。这份预填充版本是为了让你能更快地搭建起报告和PPT的框架。祝你顺利完成作业!

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

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

相关文章

程序代码篇---face_recognition库实现的人脸检测系统

以下是一个基于face_recognition库的人脸管理系统,支持从文件夹加载人脸数据、实时识别并显示姓名,以及动态添加新人脸。系统采用模块化设计,代码结构清晰,易于扩展。 一、系统架构 face_recognition_system/ ├── faces/ # 人脸数据库(按姓名命名子…

Cursor 工具项目构建指南:Java 21 环境下的 Spring Boot Prompt Rules 约束

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 Cursor 工具项目构建指南:Java 21 环境下的 Spring Boot Prompt Rules 约束前言项目简…

大模型高效提示词Prompt编写指南

大模型高效Prompt编写指南 一、引言二、核心原则1. 清晰性原则:明确指令与期望2. 具体性原则:提供详细上下文3. 结构化原则:组织信息的逻辑与层次4. 迭代优化原则:通过反馈改进Prompt5. 简洁性原则:避免冗余信息 三、文…

gitLab 切换中文模式

点击【头像】--选择settings 选择【language】,选择中文,点击【保存】即可。

vue实现点击按钮input保持聚焦状态

主要功能&#xff1a; 点击"停顿"按钮切换对话框显示状态输入框聚焦时保持状态点击对话框外的区域自动关闭 以下是代码版本&#xff1a; <template><div class"input-container"><el-inputv-model"input"style"width: 2…

[春秋云镜] CVE-2023-23752 writeup

首先奉上大佬的wp表示尊敬&#xff1a;&#xff08;很详细&#xff09;[ 漏洞复现篇 ] Joomla未授权访问Rest API漏洞(CVE-2023-23752)_joomla未授权访问漏洞(cve-2023-23752)-CSDN博客 知识点 Joomla版本为4.0.0 到 4.2.7 存在未授权访问漏洞 Joomla是一套全球知名的内容管理…

OpenCV CUDA模块霍夫变换------在 GPU 上执行概率霍夫变换检测图像中的线段端点类cv::cuda::HoughSegmentDetector

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::cuda::HoughSegmentDetector 是 OpenCV 的 CUDA 模块中一个非常重要的类&#xff0c;它用于在 GPU 上执行 概率霍夫变换&#xff08;Probabi…

李飞飞World Labs开源革命性Web端3D渲染器Forge!3D高斯溅射技术首次实现全平台流畅运行

在AI与3D技术深度融合的今天&#xff0c;李飞飞领衔的World Labs团队再次成为行业焦点。今日&#xff0c;他们正式开源了Forge——一款专为Web端设计的3D高斯溅射&#xff08;3D Gaussian Splatting&#xff09;渲染器&#xff0c;不仅支持THREE.js生态&#xff0c;更能在手机、…

Java 中 ArrayList、Vector、LinkedList 的核心区别与应用场景

Java 中 ArrayList、Vector、LinkedList 的核心区别与应用场景 引言 在 Java 集合框架体系中&#xff0c;ArrayList、Vector和LinkedList作为List接口的三大经典实现类&#xff0c;共同承载着列表数据的存储与操作功能。然而&#xff0c;由于底层数据结构设计、线程安全机制以…

Paraformer分角色语音识别-中文-通用 FunASR

https://github.com/modelscope/FunASR/blob/main/README_zh.md https://github.com/modelscope/FunASR/blob/main/model_zoo/readme_zh.md PyTorch / 2.3.0 / 3.12(ubuntu22.04) / 12.1 1 Paraformer分角色语音识别-中文-通用 https://www.modelscope.cn/models/iic/speech…

k8s热更新-subPath 不支持热更新

文章目录 k8s热更新-subPath 不支持热更新背景subPath 不支持热更新1. 为什么 subPath 不支持热更新&#xff1f;2. 挂载整个目录为何支持热更新&#xff1f;使用demo举例&#xff1a;挂载整个目录&#xff08;不使用 subPath&#xff09; k8s热更新-subPath 不支持热更新 背景…

分班 - 华为OD统一考试(JavaScript 题解)

华为OD机试题库《C》限时优惠 9.9 华为OD机试题库《Python》限时优惠 9.9 华为OD机试题库《JavaScript》限时优惠 9.9 针对刷题难&#xff0c;效率慢&#xff0c;我们提供一对一算法辅导&#xff0c; 针对个人情况定制化的提高计划&#xff08;全称1V1效率更高&#xff09;。 看…

【TCP/IP和OSI模型以及区别——理论汇总】

参考小林code和卡尔哥&#xff0c;感恩&#xff01; 网络基础篇 面试官您好&#xff01;OSI和TCP/IP是网络通信中两个关键模型&#xff0c;本质都是分层处理数据传输&#xff0c;但设计理念和应用场景差异很大。 OSI模型是理论上的七层架构&#xff0c;从下到上依次是物理层…

极客大挑战 2019 EasySQL 1(万能账号密码,SQL注入,HackBar)

题目 做法 启动靶机&#xff0c;打开给出的网址 随便输点东西进去&#xff0c;测试一下 输入1、1’、1"判断SQL语句闭合方式 输入以上两个都是以下结果 但是&#xff0c;输入1’时&#xff0c;出现的是另外结果 输入1&#xff0c;1"时&#xff0c;SQL语句没有…

Tauri(2.5.1)+Leptos(0.7.8)开发桌面应用--简单的工作进度管理

在前期工作&#xff08;Tauri(2.5.1)Leptos(0.7.8)开发桌面应用--程序启动界面_tauri 程序启动画面-CSDN博客&#xff09;的基础上继续进行自用桌面小程序的开发。为了方便管理工作进度&#xff0c;决定自己造轮子。效果如下&#xff1a; 工作进度管理系统 在编写程序过程中&am…

java面试 网络编程与 Java I/O:技术要点解析

java面试 网络编程与 Java I/O&#xff1a;技术要点解析 网络编程与 Java I/O&#xff1a;技术要点解析一、TCP 和 UDP 的区别TCP&#xff08;Transfer Control Protocol&#xff09;UDP&#xff08;User Datagram Protocol&#xff09;TCP 的三次握手与四次挥手 二、Java 的几…

PhpStorm设置中文

环境信息 系统版本&#xff1a;Windows11 22H2 PhpStorm版本&#xff1a;2025.1.1【Build #PS-251.25410.148】 设置中文 PhpStorm并不需要安装插件或下载相应的汉化包进行汉化 依次点击点击&#xff1a; file或右上角设置按钮→ 进入Settings→ 找到Appearance & Behav…

【监控】Spring Boot 应用监控

这段配置是 Spring Boot 应用中对 Actuator 和 Micrometer 监控系统的配置&#xff0c;用于将应用的指标暴露给 Prometheus 进行收集。下面我将详细介绍这种配置方式及其提供的指标。 配置说明 这个配置主要涉及 Spring Boot Actuator 和 Micrometer 两个核心组件&#xff1a…

学习笔记(23): 机器学习之数据预处理Pandas和转换成张量格式[1]

学习笔记(23): 机器学习之数据预处理Pandas和转换成张量格式[1] 学习机器学习&#xff0c;需要学习如何预处理原始数据&#xff0c;这里用到pandas&#xff0c;将原始数据转换为张量格式的数据。 1、安装pandas pip install pandas 2、写入和读取数据 >>创建一个人工…