首页 > 其他分享 >19.电子商城接口自动化测试 实战

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

时间:2024-01-17 18:33:07浏览次数:43  
标签:customer logging 19 电子商城 接口 lightgreen 测试 日志

目录

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

接口测试流程

 
@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/

标签:customer,logging,19,电子商城,接口,lightgreen,测试,日志
From: https://www.cnblogs.com/csfsz/p/17970715

相关文章

  • 15.宠物商店 接口自动化测试实战
    目录 被测产品需求说明相关知识点接口自动化测试实战被测产品 PetStore宠物商城:一个在线的小型的商城。主要提供了增删查改等操作接口。结合Swagger实现了接口的管理。需求说明 完成宠物商城宠物管理功能接口自动化测试。编写自动化测......
  • 05.接口请求体 - JSON
    目录 接口请求体JSON格式请求体介绍如何构造JSON格式请求体接口请求体简介 进行HTTP请求时,发送给服务器的数据。数据格式类型可以是JSON、XML、文本、图像等格式。请求体的格式和内容取决于服务器端API的设计和开发人员的要求。飞书接口文档常用接......
  • 06.接口响应断言
    目录 接口断言使用场景响应结果对象响应结果断言接口断言使用场景 问题:如何确保请求可以发送成功。如何保证符合业务需求。解决方案:通过获取响应信息,验证接口请求是否成功,是否符合业务需求。Requests中的响应结果对象 importrequestsfro......
  • Postman接口测试的工具使用
    postman下载:https://www.postman.com/downloads/下载后双击即可安装,安装后需要创建账号,登录后可以在不同平台同步数据。postman主要功能说明postman主要模块功能介绍点击最上面的测试集的添加目录图标,来新增一个根目录,这样等于新建了一个项目.可以将一个项目或一个模块的用......
  • [极客大挑战 2019]Knife 1
    [极客大挑战2019]Knife1审题没啥好审的,给出eval($_POST["Syc"]);一句话木马了知识点蚁剑连接一句话木马。做题蚁剑连接测试成功后打开找到flag。......
  • 使用API接口获取拼多多商品详情
    随着电商行业的快速发展,越来越多的电商平台涌现出来,为消费者提供了丰富的商品选择。拼多多作为国内知名的电商平台之一,拥有庞大的商品库和优惠活动,吸引了大量的用户。本文将详细介绍如何通过调用API接口获取拼多多商品详情,帮助开发者快速实现拼多多商品信息的获取和展示。一、API接......
  • 恩比德41+7+10约基奇空砍25+19 76人力克掘金
    恩比德41+7+10约基奇空砍25+1976人力克掘金北京时间1月17日,NBA常规赛,76人126-121力克掘金。  76人(26-13):恩比德41分7篮板10助攻、马克西25分5篮板9助攻、哈里斯24分5篮板4助攻、乌布雷11分5篮板、巴图姆8分4篮板2助攻2帽、贝弗利8分2篮板2助攻掘金(28-13):约基奇25分......
  • SpringBoot使用jwt实现接口带令牌访问
    1、 添加依赖<dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>${jwt.version}</version></dependency>2、先定义一个用户实体@Data@TableName("t_user")publicclass......
  • 已知IP地址是192.168.5.121,子网掩码是255.255.255.248,求网络地址和主机地址
    方法1首先,将Ip地址转换为二进制:192.168.5.121转换为二进制:11000000.10101000.00000101.01111001然后将子网掩码转换成二进制:255.255.255.248转换为二进制:11111111.11111111.11111111.11111000网络地址=IP地址&子网掩码192.168.5.121&255.255.255.248=192.168.5.12......
  • CF1919F2 Wine Factory (Hard Version)
    题意有\(n\)个桶,每个桶里有\(a_i\)单位水。每次查询按\(1,2...,n\)的顺序进行。当操作到桶\(i\)时,先将当前桶里的水取\(b_i\)加入答案。并将当前里的水全部流向\(i+1\),最多只能流\(c_i\)单位。每次修改\(a_p,b_p,c_p\)查询答案。Sol不难想到建模网络流......