购物车思路分析

购物车思路分析

一、购物车流程

在这里插入图片描述

二、加入购物车

在这里插入图片描述

三、查看购物车
  1. 未登录状态下从Cookie中获取数据
  2. 登录状态下从Redis中获取数据
四、订单结算

在这里插入图片描述

五、削峰处理

在这里插入图片描述

六、总结分析
  1. 技术涵盖:

    cookie+redis+RabbitMQ

  2. 开发介绍:

    购物车(多台服务器跑)目前主流有两种:京东、淘宝,我们采用的是京东模式(用户不登录也可以添加到购物车)。用户没有登陆时,数据存放到cookie中去,cookie中只保存商品编号与商品数量(商品颜色,商品型号。。。),为了提高安全性会将购物车中的数据加密(Base64)后再保存。用户登录成功后将cookie中的数据存放到redis数据库中去,并且清空cookie。

    商品加入购物车后,结算是单独的一个模块(单独的服务器跑)。结算与加入购物模块服务器处理的速度不对等,因此使用RabbitMQ实现消峰。Rabbit只是将"加入购物车模块"与"订单结算模块"的处理速度(被执行的速度)保持一致(购物车与订单一一对应,保证相同的订单结算不会出现多次处理的情况),处理高并发。

  3. 问题:

    商品进购物车逻辑比较复杂(cookie中的商品与redis中的商品合并,还要保证cookie安全性)

    结算模块

<think>我们首先需要理解用户的需求:用户希望获得关于服装商场购物车功能测试的测试用例设计思路或测试方法。 由于这是一个具体的测试设计问题,我们可以通过搜索相关的测试用例设计方法、购物车功能测试点等来获取信息。 搜索关键词可能包括:"购物车测试用例设计思路"、"电商购物车功能测试点"、"服装商城购物车测试用例"等。 根据测试用例设计的一般原则,我们可以从功能、性能、易用性、兼容性、安全性等方面考虑,但用户主要关注功能测试。 因此,我们将重点放在功能测试上,同时可能涉及其他方面的测试点。 通过搜索,我们可以整理出以下常见的测试点: 1. 添加商品到购物车: - 添加单个商品 - 添加多个商品(相同商品和不同商品) - 添加商品的数量(包括边界值,如最小数量、最大数量) - 添加商品时是否显示正确的价格、折扣、库存状态 - 添加商品后购物车中商品的显示(图片、名称、价格、数量、总价等) 2. 购物车中商品的管理: - 修改商品数量(增加、减少、手动输入) - 删除商品(单个删除、批量删除) - 商品选择(单选、全选、取消选择) - 商品移动至收藏夹或关注 3. 价格计算: - 单个商品总价计算(数量*单价) - 多个商品总价计算 - 优惠券、折扣码、促销活动的应用 - 运费计算(根据金额是否包邮或重量等) - 税费计算(如果适用) - 价格变动处理(如商品价格变化后购物车中的处理) 4. 购物车状态持久化: - 登录后购物车同步(将未登录时添加的商品同步到登录账户) - 不同设备或浏览器之间的同步 - 购物车超时处理(如长时间未操作,购物车是否保留) 5. 其他功能: - 清空购物车 - 购物车提示信息(如商品库存不足、商品下架等) - 购物车商品库存监控(如库存减少时购物车中的商品是否还能购买) - 结算流程(从购物车跳转到结算页面) 6. 非功能测试点(虽然用户主要问功能,但为了全面性,可以简要提及): - 性能:购物车加载速度,大量商品时操作是否流畅 - 兼容性:不同浏览器、不同设备(特别是移动端)上的表现 - 安全性:购物车数据是否安全,是否容易遭受攻击(如篡改商品价格) 测试方法: - 等价类划分:例如商品数量的输入,可以划分为有效等价类(1-最大库存)和无效等价类(负数、0、超过最大库存等) - 边界值分析:针对商品数量的边界(如1、最大库存、最大库存+1等) - 场景法:模拟用户购物流程,如添加商品->修改数量->删除商品->结算 - 错误推测法:根据经验推测可能出错的地方,如网络中断时操作购物车、并发操作等 根据以上思路,我们可以组织回答如下:</think>### 服装商场购物车功能测试用例设计思路与测试方法 #### 一、核心功能测试 **商品管理测试** - 添加商品:验证单商品/多商品加入购物车,检查库存同步(库存不足时提示)、价格显示(折扣价/原价)、商品属性(颜色/尺码)是否准确。 - 修改数量:测试手动输入/增减按钮调整数量,边界值包括最小值(1)、最大值(库存上限)、超库存输入(提示缺货)。 - 删除商品:验证单条删除、批量删除、清空购物车功能,删除后总价实时更新。 **价格计算逻辑测试** - 基础计算:验证单价×数量的小计计算($$ \text{小计} = \text{单价} \times \text{数量} $$)。 - 优惠叠加:测试优惠券、满减活动、会员折扣的优先级和叠加规则(如:先满减后折扣)。 - 动态价格:商品调价后,购物车内价格更新逻辑(保留加入时价格/实时同步新价格)。 #### 二、交互与状态测试 **用户操作流程** - 未登录态操作:添加商品后登录,验证购物车数据同步。 - 跨设备同步:同一账号在不同终端(Web/App)操作购物车,检查数据一致性。 - 中断恢复:页面刷新/后退/应用重启后,购物车内容持久化。 **异常场景覆盖** - 失效商品处理:商品下架/删除时,购物车内显示失效提示,禁止结算。 - 并发冲突测试:多用户同时修改同一商品库存,验证库存锁机制。 - 网络异常:弱网下操作购物车,检查超时重试、数据回滚。 #### 三、业务规则测试 **库存与限购** - 库存预警:商品库存低于阈值时,购物车提示“仅剩X件”。 - 限购策略:验证限购商品(如每人限购3件)在购物车的数量限制。 **促销规则集成** - 满减触发:总金额达到满减门槛时,自动显示优惠金额。 - 赠品绑定:购买指定商品时,购物车自动展示赠品信息。 #### 四、非功能测试 **性能与兼容性** - 负载测试:百量级商品同时操作,响应时间≤2秒。 - 兼容性:覆盖主流浏览器(Chrome/Safari/Firefox)及移动端(iOS/Android)。 **安全测试** - 价格篡改防御:拦截前端参数篡改(如修改商品单价HTTP请求)。 - 数据加密:购物车API传输使用HTTPS,敏感数据(价格)加密存储。 --- ### 测试用例设计模板示例 ```gherkin 场景:添加不同尺码的同款商品 当 用户选择商品A(尺码S)加入购物车 且 再次选择商品A(尺码M)加入购物车购物车显示两条独立记录 且 小计金额 = (商品A单价 × 2) 场景:优惠券叠加 当 购物车总金额为¥300 且 应用“满200减30”优惠券 且 叠加“9折会员折扣” 则 最终金额 = (300 - 30) × 0.9 = ¥243 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值