python + Pytest + requests 的接口自动化步骤

python+pytest+request+allure+yaml接口自动化测试项目实战

开发环境准备

1. jdk 下载

Java官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

安装: https://blog.csdn.net/VA_AV/article/details/138508891

2. Pytest

bash 复制代码
# 安装
pip install pytest

#更新 pytest 
pip install --upgrade pytest

# 确认 Pytest 是否已成功安装,并显示 Pytest 的版本信息
pytest --version

python + Pytest + requests 的接口自动化

1. 设计框架结构

bash 复制代码
project_root/
├── conf/                # 配置文件
│   ├── config.yaml      # 全局配置
│   └── env_config.yaml  # 环境配置
├── data/                # 测试数据
│   ├── test_data.json   # 测试数据文件
│   └── ...
├── lib/                 # 自定义库
│   ├── api_client.py    # API客户端
│   └── utils.py         # 工具函数
├── tests/               # 测试用例
│   ├── test_case1.py
│   ├── test_case2.py
│   └── ...
├── reports/             # 测试报告
│   ├── allure_report/   # Allure报告
│   └── pytest_report/   # Pytest报告
├── requirements.txt     # 依赖包
└── README.md            # 项目说明

2. 编写配置文件

bash 复制代码
# conf/config.yaml
base_url: http://api.example.com
timeout: 10

# conf/env_config.yaml
dev:
  base_url: http://dev-api.example.com
  timeout: 5

prod:
  base_url: http://prod-api.example.com
  timeout: 10

置文件用于管理全局配置和环境配置。例如:

3. 封装API客户端

封装一个API客户端,用于发送HTTP请求并处理响应。例如,使用Python和Requests库:

bash 复制代码
# lib/api_client.py
import requests
from conf.config import config

class APIClient:
    def __init__(self):
        self.base_url = config['base_url']
        self.timeout = config['timeout']

    def get(self, endpoint, params=None, headers=None):
        url = f"{self.base_url}{endpoint}"
        response = requests.get(url, params=params, headers=headers, timeout=self.timeout)
        return response

    def post(self, endpoint, json=None, headers=None):
        url = f"{self.base_url}{endpoint}"
        response = requests.post(url, json=json, headers=headers, timeout=self.timeout)
        return response

    # 其他HTTP方法类似

4. 编写测试用例

编写具体的测试用例,使用测试框架来组织和运行这些用例。例如,使用Pytest:

bash 复制代码
# tests/test_case1.py
from lib.api_client import APIClient

def test_get_user():
    client = APIClient()
    response = client.get('/users/1')
    assert response.status_code == 200
    assert response.json()['id'] == 1

def test_create_user():
    client = APIClient()
    data = {'name': 'John Doe', 'email': '[email protected]'}
    response = client.post('/users', json=data)
    assert response.status_code == 201
    assert response.json()['name'] == 'John Doe'

5. 集成报告工具

集成报告工具,生成详细的测试报告。例如,使用Allure:

bash 复制代码
# 安装Allure插件
pip install allure-pytest

# 运行测试并生成报告
# 要使 Allure 侦听器能够在测试执行期间收集结果,只需在命令行添加存储结果的文件夹的路径参数即可
pytest --alluredir=reports/allure_report
#要在测试完成后查看实际报告,需要使用 Allure 命令行实用程序从结果生成报告:
allure serve reports/allure_report

allure的安装和使用(windows环境)

https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/

  1. 选择一个版本(windows下载.zip包就可以)

    下载完直接解压就好了(记住路径)

    打开包,打到bin目录,找到allure.bat双击运行

  2. 配置allure系统环境变量

    【计算机--属性--高级系统设置--环境变量--系统变量--path--编辑】

    环境变量添加刚才解压时allure的地址 放bin文件的路径:E:\tools\allure-2.30.0\bin

  3. 检验环境变量配置成功:打开终端命令行,输入:allure

6. 集成持续集成工具

将测试框架集成到持续集成工具中,实现自动化测试。

持续集成工具:Jenkins、GitLab CI等。

7. 文档和维护

编写详细的文档,包括项目说明、使用指南和维护手册。

相关推荐
小白—人工智能8 分钟前
数据分析 —— 数据预处理
python·数据挖掘·数据分析
若叶时代11 分钟前
数据分析_Python
人工智能·python·数据分析
英英_20 分钟前
python 爬虫框架介绍
开发语言·爬虫·python
大模型铲屎官1 小时前
【Python-Day 14】玩转Python字典(上篇):从零开始学习创建、访问与操作
开发语言·人工智能·pytorch·python·深度学习·大模型·字典
yunvwugua__1 小时前
Python训练营打卡 Day27
开发语言·python
Stara05112 小时前
基于多头自注意力机制(MHSA)增强的YOLOv11主干网络—面向高精度目标检测的结构创新与性能优化
人工智能·python·深度学习·神经网络·目标检测·计算机视觉·yolov11
那雨倾城3 小时前
使用 OpenCV 将图像中标记特定颜色区域
人工智能·python·opencv·计算机视觉·视觉检测
LuckyTHP6 小时前
java 使用zxing生成条形码(可自定义文字位置、边框样式)
java·开发语言·python
mahuifa8 小时前
(7)python开发经验
python·qt·pyside6·开发经验
水银嘻嘻8 小时前
12 web 自动化之基于关键字+数据驱动-反射自动化框架搭建
运维·前端·自动化