「短网址服务」测试用例大纲
短网址服务测试用例大纲
1. 首页(短链生成页)
1.1 正常场景
- 输入合法 URL,点击生成 → 返回短链 & 二维码。
- 输入合法 URL + 自定义短码 → 返回短链(短码为用户指定值)。
- 输入合法 URL + 设置过期时间 → 返回带过期信息的短链。
1.2 异常场景
- 输入空链接 → 提示「请输入有效链接」。
- 输入非 http/https 链接 → 提示「请输入有效链接」。
- 输入超长链接(>2048) → 提示「链接过长」。
- 输入短码已存在 → 提示「短码已被使用」。
- 输入黑名单域名 → 提示「该链接无法生成短网址」。
1.3 边界场景
- 多次点击「生成短链」 → 仅生成一次(按钮禁用 Loading)。
- 游客用户生成短链 → 无历史记录。
2. 登录 / 注册
2.1 正常场景
- 注册:输入合法邮箱+密码 → 注册成功 → 自动登录跳转 Dashboard。
- 登录:输入正确邮箱+密码 → 登录成功 → 跳转 Dashboard。
2.2 异常场景
- 注册时输入已注册邮箱 → 提示「邮箱已被注册」。
- 注册时邮箱格式错误 → 提示「邮箱格式错误」。
- 登录时输入错误邮箱/密码 → 提示「账号或密码错误」。
- 登录时使用过期 Token → 提示「登录已过期,请重新登录」。
2.3 边界场景
- 密码和确认密码不一致 → 提示「两次密码不一致」。
- 注册时未勾选服务协议 → 注册按钮禁用。
3. Dashboard
3.1 短链管理
正常场景
- 列表展示短链,包含短链/长链/点击量/到期时间。
- 搜索短链/长链关键字 → 列表过滤正确。
- 修改短链 → 提交后列表更新。
- 删除短链 → 弹窗确认后,列表移除。
- 复制短链按钮 → 剪贴板内容正确。
- 查看二维码 → 弹窗展示二维码,可下载。
异常场景
- 修改短链为无效 URL → 提示「链接格式不正确」。
- 删除已过期短链 → 提示「短链已过期」。
- 删除非本人短链 → 提示「无权限」。
3.2 数据统计
正常场景
- 默认显示近 7 天访问趋势。
- 切换日期范围 → 图表刷新。
- 饼图展示来源/设备比例,hover 显示详情。
- 地图展示地域分布。
异常场景
- 无数据时 → 显示「暂无统计数据」。
- 请求超时/错误 → 提示「数据统计失败,请稍后再试」。
3.3 用户设置
API Key 管理
- 新建 Key → 成功生成,提示「请保存」。
- 删除 Key → 成功后列表移除。
- 使用无效 Key 调用 API → 提示「API Key 无效」。
自定义域名
- 输入合法域名 + 校验成功 → 绑定成功。
- 输入非法域名 → 提示「域名格式错误」。
- 未配置 DNS → 提示「请检查 DNS 配置」。
账号设置
- 修改密码 → 成功后提示「修改成功」。
- 输入错误旧密码 → 提示「旧密码错误」。
4. API 接口
4.1 短链生成 API
- 正常调用 → 返回短链 JSON。
- 输入无效 URL → 返回错误码
120001
。 - 输入已存在短码 → 返回错误码
120004
。 - 触发限流 → 返回错误码
130003
。
4.2 短链查询 API
- 查询存在短链 → 返回正确数据。
- 查询不存在短链 → 返回错误码
120005
。 - 查询已过期短链 → 返回错误码
120006
。
4.3 删除短链 API
- 删除成功 → 返回成功状态。
- 删除不存在短链 → 返回错误码
120005
。 - 删除非本人短链 → 返回错误码
110005
。
5. 短链跳转
- 访问存在短链 → 302 跳转到目标 URL。
- 访问不存在短链 → 错误页提示「短链不存在」。
- 访问已过期短链 → 错误页提示「短链已过期」。
- 访问黑名单短链 → 阻止跳转,提示「该链接不可用」。
6. 异常与边界条件
- 系统内部错误(数据库挂掉/Redis 不可用) → 返回
100003
,前端提示「系统开小差了,请稍后再试」。 - API 调用超出频率限制 → 返回
130003
,前端提示「API 调用次数超出限制」。 - 移动端访问 Dashboard → 表格切换为卡片展示。
覆盖关系
- 功能需求 → 测试用例:每个需求点至少有 1 个正向测试 + 1 个反向测试。
- 错误码 → 测试用例:每个错误码至少有 1 个触发路径。
- 交互细节 → 测试用例:复制按钮、Loading 状态、分页刷新均需覆盖。
7. 测试用例矩阵表格
短网址服务测试用例矩阵
用例编号 | 模块 | 场景 | 前置条件 | 输入 | 预期结果 | 错误码/提示 |
---|---|---|---|---|---|---|
TC-001 | 首页生成 | 输入合法 URL | 无 | https://example.com |
返回短链 + 二维码,状态成功 | code=0 |
TC-002 | 首页生成 | 输入非法 URL | 无 | abc123 |
生成失败 | 120001 → 「请输入有效链接」 |
TC-003 | 首页生成 | 输入超长 URL | 无 | 长度 >2048 | 生成失败 | 120002 → 「链接过长」 |
TC-004 | 首页生成 | 自定义短码冲突 | 已有短码 myshop |
输入 URL + 短码 myshop |
生成失败 | 120004 → 「短码已被使用」 |
TC-005 | 首页生成 | 黑名单 URL | 黑名单域名已配置 | http://phish.com |
生成失败 | 120003 → 「该链接无法生成短网址」 |
TC-006 | 登录 | 输入正确邮箱密码 | 已注册用户 | 邮箱+密码正确 | 登录成功 → 跳转 Dashboard | code=0 |
TC-007 | 登录 | 输入错误密码 | 已注册用户 | 邮箱+密码错误 | 登录失败 | 110003 → 「账号或密码错误」 |
TC-008 | 注册 | 输入已注册邮箱 | 无 | 已注册邮箱+密码 | 注册失败 | 110002 → 「该邮箱已被注册」 |
TC-009 | 注册 | 输入非法邮箱 | 无 | abc@ |
注册失败 | 110001 → 「邮箱格式错误」 |
TC-010 | 短链跳转 | 短链存在 | 短链已生成 | s.io/abc123 |
302 跳转至长链 | - |
TC-011 | 短链跳转 | 短链不存在 | 无 | s.io/notfound |
错误页提示 | 120005 → 「短链不存在」 |
TC-012 | 短链跳转 | 短链过期 | 短链已过期 | s.io/expired |
错误页提示 | 120006 → 「短链已过期」 |
TC-013 | Dashboard 列表 | 查看短链 | 用户已登录,已有短链 | - | 列表显示短链、点击量、到期时间 | - |
TC-014 | Dashboard 列表 | 删除短链成功 | 用户已登录 | 删除操作 → 确认 | 短链从列表中移除 | code=0 |
TC-015 | Dashboard 列表 | 删除非本人短链 | 登录用户尝试删除他人短链 | - | 删除失败 | 110005 → 「无权限」 |
TC-016 | 数据统计 | 有访问记录 | 短链有访问 | 查询统计接口 | 返回 PV/UV/来源/设备/地域 | code=0 |
TC-017 | 数据统计 | 无访问记录 | 短链无访问 | 查询统计接口 | 返回空图表 | 140001 → 「暂无统计数据」 |
TC-018 | API 调用 | 使用有效 API Key | 用户有 Key | 调用 shorten API | 返回短链 JSON | code=0 |
TC-019 | API 调用 | 使用无效 API Key | Key 不存在 | 调用 shorten API | 返回错误 | 130001 → 「API Key 无效」 |
TC-020 | API 调用 | 超出调用频率 | 达到限流阈值 | 连续快速调用 | 返回错误 | 130003 → 「API 调用超限」 |
TC-021 | 用户设置 | 新建 API Key | 用户已登录 | 点击「新建」 | 成功生成 Key,提示「请保存」 | code=0 |
TC-022 | 用户设置 | 删除 API Key | 用户已登录 | 删除 Key | 成功移除 | code=0 |
TC-023 | 用户设置 | 自定义域名绑定成功 | DNS 已配置 | 输入合法域名 | 绑定成功 | code=0 |
TC-024 | 用户设置 | 自定义域名绑定失败 | DNS 未配置 | 输入合法域名 | 绑定失败,提示「请检查 DNS 配置」 | - |
TC-025 | 系统异常 | 数据库不可用 | 人为断开 DB | 请求 shorten API | 返回错误 | 100003 → 「系统开小差了」 |
说明
- 用例编号:TC-XXX,方便追踪。
- 模块:对应 PRD/FDD 中的功能模块。
- 场景:测试目标(正常/异常/边界)。
- 前置条件:需要准备的数据/环境。
- 输入:用户操作/接口调用。
- 预期结果:前端展示 or API 响应。
- 错误码/提示:对应后端返回 code 和前端用户友好文案。