Windows下,Python+Pytest+Allure搭建接口自动化框架

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

在 Windows 系统下,使用 Python、Pytest 和 Allure 搭建接口自动化测试框架是一个不错的选择。以下是详细的步骤,从安装环境到框架结构的搭建,帮助您快速上手。

一、环境配置

  1. 安装 Python:确保已安装 Python(建议 3.7 以上版本)。

    • Python 官网下载并安装 Python。
    • 验证安装是否成功:打开终端,输入 python --version
  2. 安装 Pytest:Pytest 是一个简单而强大的测试框架。

    pip install pytest

  3. 安装 Allure:Allure 是一个报告生成工具,用于生成测试报告。

    • 先安装 Java(JDK),因为 Allure 依赖 Java 运行环境。
    • 安装 Allure:
      1. 下载 Allure 命令行版并解压缩。
      2. 将解压后的 bin 文件夹路径添加到环境变量 Path 中。
      3. 验证安装是否成功:打开终端,输入 allure --version
  4. 安装 Allure-pytest:让 Pytest 支持生成 Allure 报告。

    pip install allure-pytest
  5. 安装 requests:用于发送 HTTP 请求。

    pip install requests

二、项目结构

创建一个清晰的项目结构是良好实践。以下是推荐的结构:

api_test_framework/
│
├── config/
│   └── config.yaml      # 配置文件,存储接口基本信息
│
├── test_cases/
│   └── test_api.py      # 测试用例
│
├── utils/
│   ├── request_helper.py # 请求封装工具
│   └── logger.py         # 日志记录器
│
├── reports/              # 报告存放目录
├── requirements.txt      # 依赖文件
└── conftest.py           # Pytest 配置文件

三、框架实现

1. 配置文件(config/config.yaml

使用 YAML 格式来存储测试环境信息,例如服务器地址、端口等。

# config/config.yaml
api:
  base_url: "https://api.example.com"
2. 请求封装工具(utils/request_helper.py

封装一个通用的请求函数,简化接口调用。

# utils/request_helper.py
import requests
import yaml

# 读取配置文件
def load_config():
    with open("config/config.yaml", "r") as file:
        return yaml.safe_load(file)

config = load_config()

class RequestHelper:
    def __init__(self):
        self.base_url = config['api']['base_url']
    
    def send_request(self, method, endpoint, **kwargs):
        url = f"{self.base_url}{endpoint}"
        response = requests.request(method, url, **kwargs)
        return response
3. 日志记录器(utils/logger.py

记录测试日志,方便调试和追踪。

# utils/logger.py
import logging

def get_logger():
    logger = logging.getLogger("api_test_logger")
    logger.setLevel(logging.DEBUG)
    # 输出到控制台
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.DEBUG)
    formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
    console_handler.setFormatter(formatter)
    logger.addHandler(console_handler)
    return logger
4. 测试用例(test_cases/test_api.py

创建测试用例,使用 Pytest 语法,并集成 Allure 标注。

# test_cases/test_api.py
import pytest
import allure
from utils.request_helper import RequestHelper
from utils.logger import get_logger

logger = get_logger()
request_helper = RequestHelper()

@allure.feature("User Module")
@allure.story("Test User Login")
@pytest.mark.parametrize("username, password, expected_status", [
    ("user1", "password1", 200),
    ("user2", "password2", 403)
])
def test_login(username, password, expected_status):
    payload = {
        "username": username,
        "password": password
    }
    with allure.step("Sending login request"):
        response = request_helper.send_request("POST", "/login", json=payload)
        logger.info(f"Request Payload: {payload}")
        logger.info(f"Response Status Code: {response.status_code}")
        assert response.status_code == expected_status
5. Pytest 配置(conftest.py

设置 Pytest 配置,添加钩子函数等。

# conftest.py
import pytest

@pytest.fixture(scope="session", autouse=True)
def setup_and_teardown():
    print("\nSetup before any tests")
    yield
    print("\nTeardown after all tests")

四、运行测试并生成报告

  1. 运行测试用例:在项目根目录下运行以下命令。

    pytest test_cases/ --alluredir=reports/
    

  2. 生成 Allure 报告:生成测试报告以便查看测试结果。

    allure serve reports/
    

五、总结

通过以上步骤,您已经成功搭建了一个基础的接口自动化测试框架。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值