等峰也等你

博客园 首页 新随笔 联系 订阅 管理

目录

 
  • 接口测试流程
  • 产品需求分析
  • 测试用例设计思路
  • 接口自动化脚本编写

接口测试流程

 
@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
  1. 上架商品
  2. 查询商品列表,获取商品 ID
  3. 查询商品详情,获取商品库存 ID
  4. 加入购物车

脚本优化-参数化(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_class
2.下一个接口用上一个接口的字段
3.清理数据放到teardown_class
4.日志优化 序列化方法
5.参数化传递参数

 

 
posted on 2024-01-17 18:28  等峰也等你  阅读(151)  评论(0)    收藏  举报