19.电子商城接口自动化测试 实战

19.电子商城接口自动化测试 实战

目录

接口测试流程

产品需求分析

测试用例设计思路

接口自动化脚本编写

接口测试流程

@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/1.token传递 在类里面,不同方法里调用变量要实例化变量;要放到接口请求前把token所以要放到setup_class2.下一个接口用上一个接口的字段3.清理数据放到teardown_class4.日志优化 序列化方法5.参数化传递参数

相关推荐

宝骏510:车型详情及落地价解析
365bet中文

宝骏510:车型详情及落地价解析

⌛ 10-30 👁️ 4952
明日方舟等级上限是多少(明日方舟等级上限提升及碎石上限取消)
HTML document对象常见事件有哪些?如点击、加载等
365体育APP官网

HTML document对象常见事件有哪些?如点击、加载等

⌛ 10-06 👁️ 1145
电脑怎样重装系统Win7旗舰版?
365bet中文

电脑怎样重装系统Win7旗舰版?

⌛ 07-03 👁️ 6945
LINKSYS 领势 EA7500 无线路由器开箱及使用体验
宾利与兰博基尼哪个好
365allsports

宾利与兰博基尼哪个好

⌛ 08-21 👁️ 9517
如何快速设置PDF文件双面打印?三步搞定PDF双面打印
车辆报废需要什么手续怎么办
365bet中文

车辆报废需要什么手续怎么办

⌛ 08-06 👁️ 4603
顶配近三万,更强也更贵的iPad Pro,真的值得买吗?