目录
- 接口测试流程
- 产品需求分析
- 测试用例设计思路
- 接口自动化脚本编写
接口测试流程
@startuml
:需求分析;
:测试设计;
:测试用例评审;
:测试执行;
:验收;
:预发布;
:上线;
@enduml
电子商城需求分析
- 商城管理后台
- 商城客户端
商城业务场景
- 商品上架
- 商品查询
- 加入购物车
scale 700*500
autonumber
participant 测试人员 as tester
participant 登录模块 as login
participant 管理后台 as admin
participant 客户端 as customer
tester -> login: 编写脚本
login -> admin: 登录接口
admin -> customer: 商品上架接口
admin -> customer: 商品查询接口
customer -> customer: 加购接口
customer -> tester: 测试断言
研发技术评审
- 管理后台接口文档:https://litemall.hogwarts.ceshiren.com/swagger-ui.html#
- 管理后台地址:https://litemall.hogwarts.ceshiren.com/admin/auth/login
- 客户前端地址:https://litemall.hogwarts.ceshiren.com/wx/auth/login
接口测试用例设计思路
@startmindmap
*[#Orange] 接口测试思路
**[#lightblue] 基本功能流程测试(p1)
***[#lightgreen] 冒烟测试
***[#lightgreen] 正常流程覆盖测试
**[#lightblue] 基于输入域的测试(p2)
***[#lightgreen] 边界值测试
***[#lightgreen] 特殊字符校验
***[#lightgreen] 参数类型校验
***[#lightgreen] 必选参数校验
***[#lightgreen] 组合参数校验
***[#lightgreen] 有效性校验
***[#lightgreen] 默认值校验
***[#lightgreen] 排重逻辑
left side
**[#lightblue] 接口幂等性
***[#lightgreen] 重复提交
**[#lightblue] 故障注入
***[#lightgreen] Redis故障降级测试
***[#lightgreen] 服务故障转移测试
**[#lightblue] 线程安全测试
***[#lightgreen] 并发测试
***[#lightgreen] 分布式测试
***[#lightgreen] 数据库读写安全测试
@endmindmap
添加购物车流程脚本编写
title 编写思路
@startmindmap
* 思路
** 获取接口信息
*** swagger 接口文档
*** 前端抓包
** 单步调通接口后,根据业务流程串联起来
** 添加断言,确认流程正常
@endmindmap
- 上架商品
- 查询商品列表,获取商品 ID
- 查询商品详情,获取商品库存 ID
- 加入购物车
脚本优化-参数化(Python)
- 使用 pytest parametrize 装饰器实现商品名称的参数化
@pytest.mark.parametrize("goods_name", ["hogwarts1", "hogwarts2"])
脚本优化-添加日志(Python)
- 新建日志配置
- 在用例中使用配置好的日志实例
"""
__author__ = '霍格沃兹测试开发学社'
__desc__ = '更多测试开发技术探讨,请访问:https://ceshiren.com/t/topic/15860'
"""
# 日志配置
import logging
# 创建logger实例
logger = logging.getLogger('simple_example')
# 设置日志级别
logger.setLevel(logging.DEBUG)
# 流处理器
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# 日志打印格式
formatter = logging.Formatter\
('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 添加格式配置
ch.setFormatter(formatter)
# 添加日志配置
logger.addHandler(ch)
脚本优化-数据清理(Python)
- 在用例执行完成之后调用删除接口完成数据清理
# 删除操作
def teardown(self):
url = "http://litemall.hogwarts.ceshiren.com/admin/goods/create"
data = {
"id": self.goods_id,
}
r = requests.post(url=url, json=data)
logger.debug("删除商品响应:"+json.dumps(r.json(), ensure_ascii=False, indent=2))
脚本优化-报告展示
- 安装 allure 相关依赖
# 生成报告信息
pytest test_add_to_cart.py --alluredir=./report
# 生成报告在线服务,查看报告
allure serve ./report/
标签:customer,logging,19,电子商城,接口,lightgreen,测试,日志
From: https://www.cnblogs.com/csfsz/p/17970715