衣目了然项目测试报告

📅 2026/8/14 17:46:57
衣目了然项目测试报告
衣目了然项目测试报告项目名称衣目了然AIWEAR测试类型接口测试Apifox 功能测试手工 UI 自动化Selenium 性能测试JMeter测试环境接口 / 功能前端 http://localhost:5173后端 http://localhost:8081/apiUI 自动化 / 性能http://8.134.217.89测试日期2026-08-08 2026-08-13测试人员Jonkin用例总数36 条接口 20 功能 10 UI 自动化 3 性能场景 3一、测试结论摘要1.1 总体测试类型执行数通过不通过功能通过*通过率接口测试20133275%15/20功能测试101000100%10/10UI 自动化3300100%3/3性能测试3300100%3/3合计36293286%31/36*功能通过接口层功能正确但响应体非统一 Result 格式。1.2 接口测试结论核心业务流程符合预期。受缺少全局异常处理类影响的接口用例共 5 条t002、t003、t005、t011、t013。上述用例在 Java 后端已能输出正确错误消息问题在于未通过统一Result返回给 Apifox/前端。1.3 功能测试结论10 条核心功能用例全部通过。登录、路由守卫、编辑主流程、图片列表、退出登录、历史记录均正常。编辑页对「未选图」「未填指令」采用提交按钮禁用disabled的前置校验与「提交后文字提示」等效视为通过。1.4 UI 自动化结论3 条 Selenium 用例全部通过。覆盖密码登录成功、未登录访问受保护页拦截含redirect、退出登录后再次拦截与手工用例 UI-01 / UI-02 / UI-09 对应。1.5 性能测试结论3 个 JMeter 场景均通过数据以桌面性能测试/*/index.html为准。覆盖登录鉴权尖峰、图片列表高并发读取、图片上传写路径。登录/上传错误率0%列表错误率0.2%500 样本中 1 条失败整体仍达标。上传平均约15.7s为写路径性能关注点。二、功能测试明细浏览器手工用例编号模块用例标题优先级是否通过实际结果摘要UI-01登录/路由未登录访问受保护页P0通过访问/edit正常跳转登录页UI-02登录密码登录成功P0通过登录后进入编辑页页面正常UI-03登录密码登录失败提示P0通过密码错误有明确提示无法进入系统UI-04登录态刷新保持登录P0通过F5 刷新后仍保持登录状态UI-05编辑未选图时不可提交P1通过未选图时提交按钮为 disabled无法点击UI-06编辑未填指令时不可提交P1通过未填指令时提交按钮为 disabled无法点击UI-07编辑正常编辑流程P0通过选图指令后 loading → 正常展示结果图UI-08我的图片列表展示P0通过已上传图片在列表中正常显示UI-09登录/退出退出登录P0通过退出后回到登录页无法再访问受保护页UI-10历史记录编辑后有记录P1通过编辑成功后历史记录页有对应数据说明UI-05、UI-06 预期原为「提交后提示错误」实测为「按钮前置禁用」属合理交互设计记通过。三、接口测试 — 缺陷汇总BUG-001 缺少全局异常类错误未统一封装为 Result影响 t002、t003、t005用例Apifox 响应后端 Java 表现t002 密码错误HTTP 500Spring 默认 JSON控制台有「用户名或密码错误」t003 账号为空HTTP 500Spring 默认 JSON控制台有「账号不能为空」t005 邮箱格式错HTTP 400Spring 校验 JSON校验已触发未返回 ResultBUG-002 必填 Authorization 缺失时 Spring 直接拦截影响 t011、t013现象Apifox 收到 Spring 默认 400 Bad Request功能未授权请求已拒绝记通过(功能)四、接口测试 — 受全局异常类影响用例5 条用例编号用例标题是否通过t002密码登录-密码错误不通过t003密码登录-账号为空不通过t005发送验证码-邮箱格式错误不通过t011上传图片-无Token通过(功能)t013我的图片列表-无Token通过(功能)五、接口测试用例明细用例编号所属模块用例标题优先级是否通过t001用户模块密码登录-成功P0通过t002用户模块密码登录-密码错误P0不通过t003用户模块密码登录-账号为空P1不通过t004用户模块发送验证码-成功P1通过t005用户模块发送验证码-邮箱格式错误P1不通过t006用户模块发送验证码-重复发送P1通过t007用户模块退出登录-成功P0通过t008文件模块上传图片-成功P0通过t009文件模块上传图片-空文件P1通过t010文件模块上传图片-非图片文件P1通过t011文件模块上传图片-无TokenP0通过(功能)t012文件模块我的图片列表-成功P0通过t013文件模块我的图片列表-无TokenP0通过(功能)t014文件模块图片编辑-成功P0通过t015文件模块图片编辑-缺少指令P1通过t016文件模块图片编辑-越权P0通过t017文件模块图片合并-越权P0通过t018文件模块文搜图-成功P1通过t019记录模块历史记录-查询P1通过t020鉴权模块Token失效-退出后访问P0通过六、UI 自动化测试Java Selenium6.1 环境与工具项说明被测地址http://8.134.217.89技术栈Java、JUnit 5、Selenium、WebDriverManager、Chrome测试账号testa / 123456脚本auto001密码登录、auto002未登录拦截、auto003退出后再拦截6.2 用例明细用例编号模块用例标题优先级是否通过实际结果摘要AUTO-01登录密码登录成功P0通过切换密码登录 Tab → 提交正确账号密码 → URL 含/edit用户菜单可见AUTO-02登录/路由未登录访问受保护页P0通过清空登录态后访问/edit→ 跳转/login且 URL 带redirectAUTO-03登录/退出退出后再次拦截P0通过登录 → 退出 → 再访/edit→ 再次跳转/login6.3 用例步骤与预期AUTO-01 密码登录成功auto001步骤操作预期1打开 http://8.134.217.89进入登录页2点击「密码登录」Tab出现用户名、密码输入框3输入 testa / 123456 并提交登录成功4断言URL 包含/edit右上角用户按钮存在AUTO-02 未登录路由守卫auto002步骤操作预期1打开站点并清空 cookie / localStorage / sessionStorage处于未登录状态2直接访问/edit被路由守卫拦截3断言URL 包含/login且包含redirect参数如?redirect/edit说明前端路由在未登录访问需鉴权页时执行next({ name: login, query: { redirect: to.fullPath } })用于登录成功后回跳原页面故 AUTO-02 断言redirect。AUTO-03 退出登录后未登录拦截auto003步骤操作预期1密码登录成功进入/edit登录态有效2点击用户菜单 →「退出登录」回到/login3再次访问/edit再次被拦截到/login4断言当前 URL 包含/login会话已失效6.4 与手工功能测试对应关系UI 自动化对应手工用例说明AUTO-01UI-02密码登录成功AUTO-02UI-01未登录访问受保护页自动化额外校验redirectAUTO-03UI-09退出后无法再访问受保护页七、性能测试JMeter7.1 环境与工具项说明被测地址http://8.134.217.89工具Apache JMeter 5.5压测机本地 Windows约 16 逻辑处理器测试账号登录尖峰loadtest01loadtest10CSV 参数化列表/上传(testa)登录取 JWT 后复用通过标准错误率 ≤ 1%核心读接口 P95 500ms写接口以稳定性低错误率为主结果来源桌面/性能测试/login-report、list-report、upload-report的 HTML / statistics.json2026-08-13 生成7.2 场景设计说明从业务关键路径选取 3 类接口避免只压单一 GET场景接口类型设计意图PERF-01POST /api/user/auth鉴权入口模拟多人同时登录尖峰PERF-02GET /api/file/my-images高频读编辑页/我的图片常调用使用有图片数据账号PERF-03POST /api/file/upload/image写路径验证 multipart 上传 OSS/存储并发稳定性7.3 场景明细与结果以 HTML 报告为准PERF-01 登录鉴权尖峰项配置 / 结果方法10 账号 CSV 参数化多线程并发登录含同步定时器尖峰HeaderContent-Type: application/json无需 TokenBody{account:${username},password:${password}}样本数500平均 / 中位702.5 ms / 701 ms最小 / 最大125 ms / 1312 msP90 / P95 / P991105.9 / 1145.8 / 1253.9 ms错误率0.00%0/500吞吐量43.5/secHTML性能测试/login-report/index.html结论通过— 鉴权入口稳定无错误P90 约 1.1sPERF-02 图片列表高并发读取有图数据项配置 / 结果方法前置登录提取 JWT → 全局属性传递 → 并发压列表HeaderAuthorization: Bearer ${__P(token)}样本数登录 1 列表500合计 501登录耗时163 ms错误率 0%列表平均 / 中位125.9 ms / 83 ms列表最小 / 最大29 ms / 21029 ms存在个别长尾列表 P90 / P95 / P99111 / 113 / 123 ms列表错误率0.20%1/500列表吞吐量22.7/secHTML性能测试/list-report/index.html结论通过— P95 远低于 500ms错误率 0.2% ≤ 1%读接口表现良好PERF-03 图片上传写路径项配置 / 结果方法前置登录取 Tokenmultipart 上传test.jpg参数名fileHeader仅Authorization: Bearer ${__P(token)}Content-Type 由 JMeter 自动带 boundary样本数上传50平均 / 中位15711 ms / 15690 ms≈15.7 s最小 / 最大11005 ms / 21128 msP90 / P95 / P9919401 / 20391 / 21128 ms错误率0.00%0/50吞吐量0.26/secHTML性能测试/upload-report/index.html结论通过稳定性— 全部成功耗时长符合写 OSS/存储特征为后续优化重点7.4 结果对比摘要场景样本主接口平均 RTP95错误率吞吐量结论PERF-01 登录500702.5 ms1145.8 ms0%43.5/s通过PERF-02 列表500125.9 ms113 ms0.2%22.7/s通过PERF-03 上传5015711 ms20391 ms0%0.26/s通过稳定性解读列表读最快且 P95 很低登录中等上传最慢但零错误。三者形态差异符合「读轻、鉴权中、写重」预期。7.5 与功能 / 接口测试对应关系性能场景对应已有验证说明PERF-01t001 / UI-02功能正确后验证登录并发能力PERF-02t012 / UI-08功能正确后验证列表高并发读取PERF-03t008功能正确后验证上传写并发八、改进建议实现全局异常类修复 t002、t003、t005、t011、t013 的响应封装接口修复后对上述 5 条执行回归功能 / UI 自动化 / 性能三类基线已建立后续迭代可做对比回归性能方面可选增强排查列表 0.2% 失败与超长尾max≈21s优化上传耗时P95≈20sAI 编辑/合并仅做低并发基线