学习京东写测试用例
以下是京东等大型电商平台测试用例编写的通用方法论及示例,结合功能模块、测试类型和实际场景进行设计:
一、测试用例设计原则
- 覆盖全面:覆盖核心业务流程、异常场景、边界条件、用户角色差异。
- 优先级分层:
- P0(最高):核心功能(如下单支付、库存同步)。
- P1:重要功能(如购物车、优惠券)。
- P2:次要功能(如用户评价、页面样式)。
- 可复用性:模块化设计,便于自动化脚本复用。
二、测试用例模板示例
用例ID | 模块 | 测试类型 | 优先级 | 前置条件 | 测试步骤 | 预期结果 | 实际结果 | 备注 |
---|---|---|---|---|---|---|---|---|
TC_001 | 商品搜索 | 功能测试 | P0 | 用户已登录,存在关键词“手机” | 1. 在搜索框输入“手机” 2. 点击搜索按钮 | 1. 展示包含“手机”的商品列表 2. 结果按默认排序(销量/价格)展示 | - | 验证关键词匹配和排序逻辑 |
三、核心模块测试用例设计
1. 商品详情页
- 功能测试:
- 正常场景:商品图片加载、规格选择、库存显示(如“仅剩3件”)、加入购物车按钮状态。
- 异常场景:
- 库存为0时,“立即购买”按钮置灰。
- 商品下架后,页面提示“该商品已失效”。
- 边界值:商品价格显示(如999999元时是否溢出)、长商品标题换行。
2. 购物车
- 功能测试:
- 添加商品后,购物车数量同步更新。
- 跨店商品合并结算时的运费计算。
- 优惠券自动匹配(如满减券、品类券)。
- 并发测试:
- 同时修改购物车商品数量,检查数据一致性(如避免超卖)。
3. 订单支付
- 核心流程:
- 正向流程:选择地址→选择支付方式(京东支付/白条/微信)→提交订单→支付成功→生成订单号。
- 逆向流程:
- 支付超时:订单自动取消,库存回滚。
- 支付失败:引导用户重新支付。
- 安全测试:
- 重复提交订单:拦截幂等性设计(防止重复扣款)。
- 模拟网络中断:支付中途断网,检查订单状态一致性。
四、专项测试用例设计
1. 性能测试
- 高并发场景:
- 模拟秒杀活动:1万用户同时抢购某商品,验证响应时间(<2秒)、错误率(<0.1%)。
- 支付接口压力测试:TPS(每秒事务数)目标值设定,如≥500。
- 数据库负载:
- 订单表读写性能:检查索引优化是否生效。
2. 安全测试
- 渗透测试:
- SQL注入:在搜索框输入
' OR 1=1 --
,验证是否返回异常数据。 - XSS攻击:在商品评价中插入
<script>alert(1)</script>
,检查脚本是否执行。
- SQL注入:在搜索框输入
- 数据加密:
- 用户密码、支付信息是否脱敏(如信用卡号显示为
**** **** **** 1234
)。
- 用户密码、支付信息是否脱敏(如信用卡号显示为
3. 兼容性测试
- 多端覆盖:
- PC端:Chrome/Firefox/Edge不同版本。
- 移动端:iOS/Android主流机型(如iPhone 14、华为Mate 50)。
- 小程序:微信/支付宝环境。
- 分辨率适配:
- 商品详情页在375×667(iPhone 8)和414×896(iPhone 11)下的布局是否错位。
五、自动化测试用例示例(Selenium)
# 测试场景:用户登录后搜索商品并加入购物车
def test_search_and_add_to_cart():
driver = webdriver.Chrome()
driver.get("https://www.jd.com")
# 登录步骤(略)
# 搜索商品
search_input = driver.find_element(By.ID, "key")
search_input.send_keys("手机")
search_input.submit()
# 选择第一个商品
first_item = driver.find_element(By.XPATH, "//div[@class='gl-item'][1]")
first_item.click()
# 切换窗口
driver.switch_to.window(driver.window_handles[1])
# 加入购物车
add_to_cart_btn = driver.find_element(By.ID, "btn-addcart")
add_to_cart_btn.click()
# 验证购物车数量
cart_count = driver.find_element(By.CLASS_NAME, "cart-num").text
assert cart_count == "1"
driver.quit()
六、测试用例管理工具
- 用例管理:TestRail、Jira + Xray。
- 执行跟踪:标记通过率、失败原因(如“前端样式错误”或“接口超时”)。
- 持续集成:Jenkins定时触发自动化用例,生成Allure报告。
七、京东特色场景补充
- 物流跟踪:
- 模拟物流状态变更(如“已出库”→“运输中”→“已签收”),检查用户端状态同步。
- PLUS会员特权:
- 验证会员价显示、免运费规则、专属客服入口。
- 秒杀活动:
- 时间同步校准:服务器时间与前端倒计时一致性。
总结
京东的测试用例设计需兼顾业务复杂性和技术深度,通过分层覆盖(功能、性能、安全)和自动化手段保障质量。实际编写时应结合具体需求,优先验证核心链路(如“浏览→加购→支付”),再逐步扩展异常和边界场景。