BookStack测试报告

📅 发布时间:2026/10/9 2:56:23
BookStack测试报告
一、项目概述1.1 项目背景随着团队与个人知识沉淀需求的增长自托管知识库系统成为替代商业 WIKI 产品的主流选择。本项目选取开源企业知识库系统BookStack作为被测对象将其部署于腾讯云服务器构建真实可访问的测试环境围绕其完成功能测试、接口自动化测试、Web UI 自动化测试与安全探索测试的全流程实践验证产品质量并沉淀可复用的自动化测试体系。1.2 项目简介被测系统BookStack v26.05.5基于 PHP 8.5 Laravel 框架 MariaDB内容按书架 → 书籍 → 章节 → 页面四级结构组织功能构成内容管理四级实体增删改查、富文本与 Markdown 双模式编辑、修订版本、标签、附件、导出、回收站协作与个性化评论、收藏、关注、全文搜索、深/浅色模式、多语言权限与安全用户/角色管理、细粒度权限点、实体级内容权限、公开访问、API Token、MFA系统管理站点设置、自定义 Head 注入、审计日志、SMTP/Webhook/OIDC 集成开放能力REST API、ZIP 数据导入部署形态腾讯云 Ubuntu 24.04Docker Compose 双容器80 端口公网可访问在线演示http://124.221.241.3二、测试概要2.1 测试目的验证系统各功能模块的正确性与完整性通过接口自动化与 UI 自动化建设可重复执行的回归测试体系验证权限控制与安全防护的有效性通过探索性测试发现产品缺陷与行为不一致问题2.2 测试范围覆盖系统 内容管理、检索、权限与安全、文件附件、系统管理、开放接口、个性化、协作通知8 大功能模块共 78 个 API 端点与全部 Web 页面交互场景。2.3 测试环境类别配置版本服务器腾讯云 Ubuntu 24.04Docker 29 Compose v2被测版本BookStack v26.05.5 MariaDB数据库MariaDB 11后端框架Laravel接口测试工具Python 3.14 Requests Pytest JSONSchemaUI 测试工具Python Selenium/Playwright测试管理测试大纲/测试用例文档 问题记录/修改记录缺陷管理禅道部署方式Docker Compose 编排restart 常驻 数据卷持久化三、测试内容与执行3.1 功能模块覆盖3.2 业务场景覆盖正向场景登录 → 创建书籍 → 创建章节 → 创建页面 → 编辑正文 → 保存 → 导出 HTML → 删除 → 回收站恢复 → 彻底销毁创建用户 → 绑定角色 → 修改名称 → 删除创建附件 → 下载比对 → 删除异常场景书籍名称为空 → 422 校验拦截页面无归属→ 422 校验拦截空正文→ 422 校验拦截重复邮箱创建用户 → 422 唯一性校验无 Token / 错误 Token / 非法格式 Token 调用 API → 401低权限角色访问建书页与管理页 → 403/404 拦截查询不存在的资源 ID → 404边界场景单字符书名→ 创建成功255 字符边界标题 → 创建成功3000 字符超长标题 → 422 校验拦截800 字符无断行单词渲染 → 无横向溢出count0 / count-1 / count999999 / page-1 / page99999999 → 全部优雅处理无 500同名书籍 slug 自动追加后缀区分3.3 测试执行结果套件用例数通过xfail失败通过率耗时接口自动化Pytest777610100%*2.5 分钟UI 自动化Playwright Chrome151500100%42 秒合计929110——四、缺陷统计与分析4.1 缺陷概览按严重级别严重级别数量占比中240%低120%待定性240%按状态状态数量已确认xfail 用例锁定待上游修复3待产品确认预期2按类型类型数量可见性判定不一致1重定向机制缺失1数据唯一性约束缺失1行为待确认24.2 缺陷详细清单编号所属模块缺陷描述严重级别状态BUG-01检索/公开访问公开访问下游客可见性不一致直访实体可见列表与搜索为空中已确认BUG-02内容管理-页面页面改名后旧 URL 直接 404无重定向机制书籍层级有中已确认BUG-03内容管理-标签标签完全不去重同名同值重复输入原样存储低已确认TBD-01权限书籍旧 slug 重定向仅对登录会话生效游客跳登录低待确认TBD-02个性化中文实体名 slug 退化为通用词或随机串低待确认4.3 缺陷按模块分布模块Bug 数占比检索120%内容管理240%权限/重定向120%个性化120%五、关键缺陷分析BUG-01 公开访问下游客可见性不一致测试步骤管理员开启公开访问系统存在书籍内容退出登录直访某书籍详情 URLGET /books/{slug}访问书籍列表GET /books观察书籍条目使用头部搜索已知书名观察结果实际结果步骤 2 返回 200 内容可见步骤 3 列表为空步骤 4 搜索无结果预期结果游客可见性三处入口判定一致说明已用 xfail 用例锁定上游修复后用例将自动转为通过BUG-02 页面改名后旧 URL 直接 404测试步骤创建页面并记录访问 URL编辑页面修改名称用旧 URL 访问实际结果HTTP 404旧外部链接失效预期结果由 slug 历史接管重定向到新地址BUG-03 标签完全不去重测试步骤创建书籍时提交两条完全相同的标签查看书籍详情的标签列表实际结果两条原样存储预期结果去重或提交校验拒绝六、测试结论6.1 质量评估本项目共设计功能测试用例 85 条建设接口自动化用例 77 条 与 UI 自动化用例 15 条另执行探索性测试 33 项。最终回归结果92 条自动化用例通过 91 条、0 失败接口全量回归耗时 2.5 分钟、UI 回归 42 秒。确认产品缺陷 3 项。综合评估系统核心功能稳定安全防护扎实——7 种 XSS 载荷全部净化、参数滥用无 500 错误、越权访问全部拦截、敏感数据、哈希存储主要问题集中在公开访问场景的可见性判定一致性与层级间功能对称性上。6.2 遗留风险上游确认缺陷 3 项待官方修邮件服务未部署邮箱邀请、关注通知类场景未覆盖服务器资源受限未执行并发压力测试6.3 改进建议统一公开访问模式下列表/搜索/详情三处入口的可见性判定逻辑页面层级补充 slug 历史重定向机制与书籍层级对齐标签提交增加唯一性校验部署侧建议配置域名与 HTTPS关闭 HTTP 明文访问测试基础设施建议增加 Mailpit 假邮箱容器解锁邮件链路用例自动化框架可引入 storageState 登录态复用降低高频登录触发限流的风险