巴青农资商城

商城服务协议测试用例.md 24KB

商城服务协议 — 测试用例

依据: 《商城服务协议功能需求.md》v1.0、《商城服务协议技术方案.md》v1.0
范围: 平台 GET/PUT;C 端 GET /api/member/serviceAgreement/status;Facade 注册/登录校验;会员 register/login 对接;业务规则 SP1~SP10
排除: 协议历史版本、勾选存证、强制阅读时长、PDF、下单页二次协议、平台/商家后台登录
环境: RuoYi v3.9.2;平台 /agri/mallServiceAgreement;C 端 /api/member/serviceAgreement;Playwright · Chromium


用例编号说明

前缀 类型 工具
MSA-UT-xxx 单元测试 JUnit 5 + Mockito
MSA-API-xxx 接口测试 Apifox / MockMvc
MSA-UI-xxx 界面测试 Playwright(Chromium)

一、单元测试

MSA-UT-001 协议标题为空拒绝保存

要素 内容
测试模块 商城服务协议
测试项 保存校验
测试类型 单元测试
测试工具 JUnit + Mockito
测试目的 验证 §5.2、SP5
前置条件
测试步骤 saveConfig(dto)agreementTitle 为空
预期结果 ServiceException;msg「请输入协议标题」

MSA-UT-002 启用时正文为空拒绝

要素 内容
测试模块 商城服务协议
测试项 保存校验
测试类型 单元测试
测试工具 JUnit
测试目的 验证 SP5
前置条件
测试步骤 enableFlag=1content
预期结果 msg「启用状态下请填写协议内容」

MSA-UT-003 启用时仅空白 HTML 拒绝

要素 内容
测试模块 商城服务协议
测试项 AgreementContentSupport
测试类型 单元测试
测试工具 JUnit
测试目的 验证 §5.2
前置条件
测试步骤 saveConfigcontent=<p></p>
预期结果 msg「协议内容不能为空」

MSA-UT-004 禁用时正文可空保存成功

要素 内容
测试模块 商城服务协议
测试项 保存校验
测试类型 单元测试
测试工具 JUnit
测试目的 验证 §5.1
前置条件 合法标题
测试步骤 enableFlag=0content 空 → saveConfig
预期结果 成功;enable_flag=0

MSA-UT-005 enable_flag 非法值拒绝

要素 内容
测试模块 商城服务协议
测试项 字段校验
测试类型 单元测试
测试工具 JUnit
测试目的 验证仅 0/1
前置条件
测试步骤 enableFlag=2
预期结果 校验失败

MSA-UT-006 无库记录 getConfig 返回默认空壳

要素 内容
测试模块 商城服务协议
测试项 getConfig
测试类型 单元测试
测试工具 JUnit
测试目的 验证 §4.2
前置条件 Mapper 返回 null
测试步骤 getConfig()
预期结果 configId=1enableFlag=0

MSA-UT-007 首次保存 insert config_id=1

要素 内容
测试模块 商城服务协议
测试项 单例写入
测试类型 单元测试
测试工具 JUnit
测试目的 验证 SP1
前置条件 表无记录
测试步骤 saveConfig 合法 dto
预期结果 insertconfig_id=1

MSA-UT-008 再次保存 update 不新增行

要素 内容
测试模块 商城服务协议
测试项 单例更新
测试类型 单元测试
测试工具 JUnit
测试目的 验证 SP1
前置条件 已有 config_id=1
测试步骤 修改标题后 saveConfig
预期结果 update

MSA-UT-009 getForApp 禁用 SP4 三标志为 false

要素 内容
测试模块 商城服务协议
测试项 getForApp
测试类型 单元测试
测试工具 JUnit
测试目的 验证 SP4、技术方案 §4.1
前置条件 enable_flag=0
测试步骤 getForApp()
预期结果 enabled=falseregistrationOpen=falserequireAgreementOnLogin=falsemessage 含「会员注册暂未开放」; content

MSA-UT-010 getForApp 启用三标志为 true

要素 内容
测试模块 商城服务协议
测试项 getForApp
测试类型 单元测试
测试工具 JUnit
测试目的 验证启用态
前置条件 启用且正文有效
测试步骤 getForApp()
预期结果 enabled/registrationOpen/requireAgreementOnLogin 均为 true;含 checkboxLabel

MSA-UT-011 checkboxLabel 含版本号

要素 内容
测试模块 商城服务协议
测试项 checkboxLabel
测试类型 单元测试
测试工具 JUnit
测试目的 验证文案规则
前置条件 标题+版本非空
测试步骤 buildCheckboxLabel(title, "v1.0")
预期结果 「我已阅读并同意《…》(v1.0)」

MSA-UT-012 assertAcceptedForRegister 未开放拒绝

要素 内容
测试模块 商城服务协议
测试项 注册校验
测试类型 单元测试
测试工具 JUnit
测试目的 验证 SP4
前置条件 协议禁用
测试步骤 assertAcceptedForRegister(true)
预期结果 msg「会员注册暂未开放」

MSA-UT-013 assertAcceptedForRegister 未勾选拒绝

要素 内容
测试模块 商城服务协议
测试项 注册校验
测试类型 单元测试
测试工具 JUnit
测试目的 验证 SP3
前置条件 协议启用
测试步骤 assertAcceptedForRegister(false)
预期结果 msg「请先阅读并同意商城服务协议」

MSA-UT-014 assertAcceptedForLogin 禁用跳过校验

要素 内容
测试模块 商城服务协议
测试项 登录校验 SP4
测试类型 单元测试
测试工具 JUnit
测试目的 验证老用户登录不要求勾选
前置条件 协议禁用
测试步骤 assertAcceptedForLogin(false)
预期结果 无异常

MSA-UT-015 assertAcceptedForLogin 启用未勾选拒绝

要素 内容
测试模块 商城服务协议
测试项 登录校验
测试类型 单元测试
测试工具 JUnit
测试目的 验证 SP3
前置条件 协议启用
测试步骤 assertAcceptedForLogin(false)
预期结果 msg「请先阅读并同意商城服务协议」

MSA-UT-016 assertAcceptedForLogin 启用已勾选通过

要素 内容
测试模块 商城服务协议
测试项 登录校验
测试类型 单元测试
测试工具 JUnit
测试目的 验证 SP3 正向
前置条件 协议启用
测试步骤 assertAcceptedForLogin(true)
预期结果 无异常

MSA-UT-017 isEnabled 启用但正文无效为 false

要素 内容
测试模块 商城服务协议
测试项 isEnabled
测试类型 单元测试
测试工具 JUnit
测试目的 验证 §6.4 配置异常
前置条件 enable_flag=1content=<p></p>
测试步骤 isEnabled()
预期结果 false

MSA-UT-018 saveConfig 不调用会员 Mapper

要素 内容
测试模块 商城服务协议
测试项 状态不级联
测试类型 单元测试
测试工具 JUnit + Mockito
测试目的 验证 SP10
前置条件 Mock BizMemberMapper(若注入)
测试步骤 saveConfig
预期结果 会员 Mapper 零次 调用

二、接口测试

MSA-API-001 平台获取配置成功

要素 内容
测试模块 商城服务协议
测试项 GET /agri/mallServiceAgreement
测试类型 接口测试
测试工具 Apifox / MockMvc
测试目的 验证 §4
前置条件 agri:mallServiceAgreement:query
测试步骤 GET
预期结果 code=200;含 agreementTitleenableFlag

MSA-API-002 无 Token 平台接口 401

要素 内容
测试模块 商城服务协议
测试项 鉴权
测试类型 接口测试
测试工具 Apifox
测试目的 验证 SP2
前置条件 无 Authorization
测试步骤 GET 平台配置
预期结果 401

MSA-API-003 无 query 权限 403

要素 内容
测试模块 商城服务协议
测试项 权限
测试类型 接口测试
测试工具 Apifox
测试目的 验证 SP2
前置条件 无 query 权限
测试步骤 GET
预期结果 403

MSA-API-004 保存启用配置成功

要素 内容
测试模块 商城服务协议
测试项 PUT
测试类型 接口测试
测试工具 Apifox
测试目的 验证 §5.3
前置条件 edit 权限
测试步骤 PUT 合法 Body
预期结果 code=200;再次 GET 一致

MSA-API-005 保存标题为空失败

要素 内容
测试模块 商城服务协议
测试项 PUT 校验
测试类型 接口测试
测试工具 Apifox
测试目的 验证 §5.2
前置条件 edit 权限
测试步骤 PUT,agreementTitle=""
预期结果 失败;「请输入协议标题」

MSA-API-006 启用无正文失败

要素 内容
测试模块 商城服务协议
测试项 PUT 校验
测试类型 接口测试
测试工具 Apifox
测试目的 验证 SP5
前置条件 edit 权限
测试步骤 enableFlag=1content
预期结果 失败

MSA-API-007 无 edit 权限 PUT 403

要素 内容
测试模块 商城服务协议
测试项 权限
测试类型 接口测试
测试工具 Apifox
测试目的 验证 SP2
前置条件 仅 query
测试步骤 PUT
预期结果 403

MSA-API-008 保存后 C 端立即生效

要素 内容
测试模块 商城服务协议
测试项 SP9
测试类型 接口测试
测试工具 Apifox
测试目的 验证即时生效
前置条件 已启用
测试步骤 PUT 改 content → 匿名 GET /api/member/serviceAgreement
预期结果 C 端 content 已更新

MSA-API-009 C 端获取协议无需登录

要素 内容
测试模块 商城服务协议
测试项 GET /api/member/serviceAgreement
测试类型 接口测试
测试工具 Apifox
测试目的 验证 Anonymous
前置条件 协议已启用
测试步骤 无 Token GET
预期结果 code=200

MSA-API-010 C 端启用响应含 SP4 字段

要素 内容
测试模块 商城服务协议
测试项 C 端协议
测试类型 接口测试
测试工具 Apifox
测试目的 验证 §4.1
前置条件 启用且正文有效
测试步骤 GET
预期结果 registrationOpen=truerequireAgreementOnLogin=true;含 content、checkboxLabel

MSA-API-011 C 端禁用响应 SP4

要素 内容
测试模块 商城服务协议
测试项 C 端协议
测试类型 接口测试
测试工具 Apifox
测试目的 验证 SP4
前置条件 enable_flag=0
测试步骤 GET
预期结果 registrationOpen=falserequireAgreementOnLogin=false;message 含「会员注册暂未开放」

MSA-API-012 GET status 与开放状态一致

要素 内容
测试模块 商城服务协议
测试项 GET /status
测试类型 接口测试
测试工具 Apifox
测试目的 验证 §4.2
前置条件
测试步骤 启用/禁用各测 GET /api/member/serviceAgreement/status
预期结果 isEnabled() 一致

MSA-API-013 注册未勾选失败

要素 内容
测试模块 商城服务协议 × 会员
测试项 POST /api/member/register
测试类型 接口测试
测试工具 Apifox
测试目的 验证 SP3
前置条件 协议启用;合法手机号未注册
测试步骤 POST,agreementAccepted=false 或缺省
预期结果 失败;「请先阅读并同意商城服务协议」

MSA-API-014 注册协议未开放失败

要素 内容
测试模块 商城服务协议 × 会员
测试项 POST /api/member/register
测试类型 接口测试
测试工具 Apifox
测试目的 验证 SP4
前置条件 协议禁用
测试步骤 POST,agreementAccepted=true
预期结果 失败;「会员注册暂未开放」

MSA-API-015 注册勾选成功路径

要素 内容
测试模块 商城服务协议 × 会员
测试项 POST /api/member/register
测试类型 接口测试
测试工具 Apifox
测试目的 验证正向
前置条件 协议启用;验证码有效
测试步骤 POST,agreementAccepted=true + 合法注册字段
预期结果 code=200;返回 memberId(以会员接口为准)

MSA-API-016 登录协议启用未勾选失败

要素 内容
测试模块 商城服务协议 × 会员
测试项 POST /api/member/login
测试类型 接口测试
测试工具 Apifox
测试目的 验证 SP3 登录
前置条件 协议启用;会员启用
测试步骤 POST 登录,agreementAccepted=false
预期结果 失败;协议文案

MSA-API-017 登录协议禁用可不传勾选

要素 内容
测试模块 商城服务协议 × 会员
测试项 POST /api/member/login
测试类型 接口测试
测试工具 Apifox
测试目的 验证 SP4 登录
前置条件 协议禁用;会员启用
测试步骤 POST 登录,不传 agreementAccepted
预期结果 可按会员规则成功登录(不因协议失败)

MSA-API-018 登录会员禁用仍失败

要素 内容
测试模块 商城服务协议 × 会员
测试项 POST /api/member/login
测试类型 接口测试
测试工具 Apifox
测试目的 验证 M4 优先于协议
前置条件 协议启用;会员 status 禁用
测试步骤 POST,agreementAccepted=true
预期结果 失败;「账号已禁用」类文案(M4)

MSA-API-019 改协议不改动会员启用状态

要素 内容
测试模块 商城服务协议 × 会员
测试项 状态不级联
测试类型 接口测试
测试工具 Apifox + SQL
测试目的 验证 SP10
前置条件 会员 M 状态已知
测试步骤 PUT 改协议 → 查会员 M
预期结果 会员 status 不变

MSA-API-020 不提供删除接口

要素 内容
测试模块 商城服务协议
测试项 接口存在性
测试类型 接口测试
测试工具 Apifox
测试目的 验证单例无删
前置条件
测试步骤 DELETE /agri/mallServiceAgreement
预期结果 404 或 405

MSA-API-021 与入驻协议路径独立

要素 内容
测试模块 商城服务协议
测试项 SP7
测试类型 接口测试
测试工具 Apifox
测试目的 验证路径隔离
前置条件 两协议均已配置
测试步骤 GET /api/member/serviceAgreement 与 GET /api/merchant/entry/agreement
预期结果 返回不同 agreementTitle/正文

三、界面测试(Playwright)

通用前置: 平台:管理员登录 →「内容管理 → 商城服务协议」;C 端:用户商城 URL。

MSA-UI-001 进入服务协议配置页

要素 内容
测试模块 商城服务协议
测试项 配置页加载
测试类型 界面测试
测试工具 Playwright (Chrome)
测试目的 验证 §3、§4
前置条件 有 query 权限
测试步骤 登录平台 → 进入「商城服务协议」
预期结果 单页:标题、版本、启用、富文本、保存

MSA-UI-002 保存启用协议完整流程

要素 内容
测试模块 商城服务协议
测试项 编辑保存
测试类型 界面测试
测试工具 Playwright
测试目的 验证 §5.3
前置条件 有 edit 权限
测试步骤 填写标题、正文 → 启用=是 → 保存
预期结果 保存成功;刷新回显

MSA-UI-003 启用开关旁说明文案

要素 内容
测试模块 商城服务协议
测试项 页面说明
测试类型 界面测试
测试工具 Playwright
测试目的 验证 §7
前置条件 在配置页
测试步骤 查看启用开关说明
预期结果 含关闭后无法新注册、已注册会员登录不要求勾选等说明

MSA-UI-004 启用无正文前端校验

要素 内容
测试模块 商城服务协议
测试项 保存校验
测试类型 界面测试
测试工具 Playwright
测试目的 验证 §5.2
前置条件 edit 权限
测试步骤 启用=是,正文空 → 保存
预期结果 前端提示;不提交

MSA-UI-005 无 edit 权限保存不可用

要素 内容
测试模块 商城服务协议
测试项 权限
测试类型 界面测试
测试工具 Playwright
测试目的 验证 SP2
前置条件 仅 query
测试步骤 进入配置页
预期结果 保存隐藏/禁用

MSA-UI-006 C 端注册页展示协议与勾选

要素 内容
测试模块 商城服务协议
测试项 注册流程
测试类型 界面测试
测试工具 Playwright
测试目的 验证 §6.1
前置条件 协议已启用
测试步骤 打开 C 端注册页
预期结果 协议正文+勾选框;文案与 checkboxLabel 一致

MSA-UI-007 C 端注册未勾选提交阻断

要素 内容
测试模块 商城服务协议
测试项 注册勾选
测试类型 界面测试
测试工具 Playwright
测试目的 验证 SP3
前置条件 协议启用
测试步骤 填注册信息 → 不勾选 → 提交
预期结果 提示「请先阅读并同意商城服务协议」

MSA-UI-008 C 端登录须勾选(协议启用)

要素 内容
测试模块 商城服务协议
测试项 登录流程
测试类型 界面测试
测试工具 Playwright
测试目的 验证 §6.2、SP3
前置条件 协议启用;已有会员
测试步骤 登录页不勾选 → 提交
预期结果 协议类提示;不登录成功

MSA-UI-009 协议禁用后登录无勾选框

要素 内容
测试模块 商城服务协议
测试项 SP4 登录
测试类型 界面测试
测试工具 Playwright
测试目的 验证 §6.2
前置条件 平台关闭协议启用;已有会员
测试步骤 打开 C 端登录页
预期结果 服务协议勾选区;可凭账号密码登录

MSA-UI-010 协议禁用后注册不可用

要素 内容
测试模块 商城服务协议
测试项 SP4 注册
测试类型 界面测试
测试工具 Playwright
测试目的 验证 §2.1
前置条件 协议禁用
测试步骤 打开 C 端注册页/入口
预期结果 「会员注册暂未开放」或入口不可见

MSA-UI-011 访客浏览首页不要求勾选

要素 内容
测试模块 商城服务协议
测试项 访客浏览
测试类型 界面测试
测试工具 Playwright
测试目的 验证 §6.2
前置条件 协议启用
测试步骤 无痕打开首页
预期结果 可浏览; 强制服务协议弹窗(非本期全站弹窗)

MSA-UI-012 与入驻协议页面分离

要素 内容
测试模块 商城服务协议
测试项 SP7
测试类型 界面测试
测试工具 Playwright
测试目的 验证 §2.2
前置条件 注册页、商家入驻页可访问
测试步骤 分别打开两页
预期结果 注册页为 服务协议;入驻页为 入驻协议

MSA-UI-013 平台修改正文 C 端注册页更新

要素 内容
测试模块 商城服务协议
测试项 SP9
测试类型 界面测试
测试工具 Playwright
测试目的 验证即时生效
前置条件 协议启用
测试步骤 平台改正文含关键字「MSA_UI_13」→ 保存 → C 端刷新注册页
预期结果 C 端正文出现该关键字

四、用例与业务规则对照

规则 覆盖用例
SP1 MSA-UT-007/008,MSA-API-020
SP2 MSA-API-002/003/007,MSA-UI-005
SP3 MSA-UT-013/015/016,MSA-API-013/016,MSA-UI-007/008
SP4 MSA-UT-009/012/014,MSA-API-011/014/017,MSA-UI-009/010
SP5 MSA-UT-002/003,MSA-API-006
SP6 MSA-API-019(数据不变)
SP7 MSA-API-021,MSA-UI-012
SP8 排除后台登录(文档范围)
SP9 MSA-API-008,MSA-UI-013
SP10 MSA-UT-018,MSA-API-019

五、统计与执行说明

类型 数量
单元测试 18
接口测试 21
界面测试 13
合计 52

执行顺序: sql/biz_mall_service_agreement.sqlmvn -pl baqing-shop test "-Dtest=com.ruoyi.web.modules.content.**MallService*" → 接口/UI。

自动化示例:

mvn -pl baqing-shop test "-Dtest=com.ruoyi.web.modules.content.**"

文档版本:v1.0 · 关联《商城服务协议功能需求.md》v1.0、《商城服务协议技术方案.md》v1.0