当前位置: 首页 > news >正文

pytest 接口测试

pytest

核心重点
读取excel(xfile --> read)
函数循环执行( @pytest 装饰器,自动解析,一个个单独执行)
接口关联(Template 处理参数变量)

pytest 是什么

.py文件名 用 test_开头,函数用 test_开头,运行的时候,pycharm会自动用pytest模式去执行代码!

处理excel 文件

点击获取excel 文件

核心思想: 把excel 文件的内容转化为 python的字典数组

可以先阅读 python函数 函数

注意: 需要xToolkit 只能读取 xls

from xToolkit import xfile

test_res = xfile.read('test.xls').excel_to_dict('Sheet1')
print(test_res)
print(test_res[0]['接口URL'])

for data in test_res:
    print(data['接口URL'])

在这里插入图片描述

使用pytest 自动循环执行


import  requests
from xToolkit import xfile
import pytest

# 读取excel 文件,生成字典数组
test_res = xfile.read('test.xls').excel_to_dict('Sheet1')
print(test_res)
# print(test_res[0]['接口URL'])
#
# for data in test_res:
#     print(data['接口URL'])


# 自动循环执行; data:传递的参数,test_res: 需要解析的列表
@pytest.mark.parametrize('data', test_res)
def test_excute(data):
    res = requests.request(method=data['请求方式'],
                           url=data['接口URL'])
    print(res.url)

if __name__ == '__main__':
    pytest.main(['-s', 'test2.py'])
    pytest.main(["-vs"])

在这里插入图片描述

token

template

举例: 测试购物车,需要token,但是token每次都会变

Template会自动拿字典里的value去替换掉与花括号单词相同的key

在这里插入图片描述

接口封装

from string import Template

import  requests
from jsonpath import jsonpath
from xToolkit import xfile
import pytest

# 读取excel 文件,生成字典数组
test_res = xfile.read('test.xls').excel_to_dict('Sheet1')
print(test_res)
print(test_res[0]['提取参数'])
#
# for data in test_res:
#     print(data['接口URL'])

dir = {"token":'ceshi123'}
dic = { }


# 自动循环执行; data:传递的参数,test_res: 需要解析的列表
@pytest.mark.parametrize('data', test_res)
def test_excute(data):
    url = data['接口URL']
    if "$" in url:
        # url = Template(url).substitute(dic)
        url = Template(url).substitute(dir)
    print(url)
    res = requests.request(method=data['请求方式'],
                           url=url)
    print(res.url)
    if data["提取参数"]:
        print([data["提取参数"]])
        # key : excel 文档里面的提取参数 ; value: url 返回获取到的
        # tq = jsonpath.jsonpath(res.json(), '$..' + data["提取参数"])   # $..token $..good_id
        # dic[data["提取参数"]] = tq[0]

if __name__ == '__main__':
    pytest.main(['-s', 'test2.py'])
    pytest.main(["-vs"])

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/12746.html

相关文章:

  • 深度挖掘| 如何高效实现Cloudera 安装之基础环境搭建
  • Web3入门指南:从基础概念到实际应用
  • C++第二讲:类和对象
  • Linux中的简单命令2
  • C++系列-STL中搜索相关算法
  • C++二叉搜索树学习
  • 【C/C++】涉及string类的经典OJ编程题
  • Redis 数据类型
  • SpringBoot开发——获取HTTP请求头(Header)的三种方法
  • chattr:修改文件的特殊属性
  • Flask-JWT-Extended登录验证
  • 使用LangChain创建简单的语言模型应用程序【快速入门指南】
  • 快速提升Python Pandas处理速度的秘诀
  • Redis 篇-初步了解 Redis 持久化、Redis 主从集群、Redis 哨兵集群、Redis 分片集群
  • 【电脑组装】✈️从配置拼装到安装系统组装自己的台式电脑
  • 使用肘部法则确定K-Means中的k值
  • SQL使用IN进行分组统计时如何将不存在的字段显示为0
  • JZ2440开发板——S3C2440的UART的使用
  • 嵌入式常用算法之低通滤波算法
  • C/C++实现植物大战僵尸(PVZ)(打地鼠版)
  • Qt (16)【Qt 事件 —— Qt 事件简介 | 如何重写相关的 Event 函数】
  • 【D3.js in Action 3 精译_023】3.3 使用 D3 将数据绑定到 DOM 元素
  • 计算机网络 第三章: 点对点协议
  • 应用案例分享 | 智驾路试数据分析及 SiL/HiL 回灌案例介绍
  • VMware Fusion虚拟机Mac版 安装Ubuntu操作系统教程
  • 车载软件架构 --- 什么是CI/CD?(科普篇)
  • cmd命令
  • c++ #include <memory> 智能指针介绍
  • linux-系统管理与监控-日志管理
  • 企业项目中响应工具类