Python+Pytest+Allure搭建接口自动化测试框架

最近在用Python+Pytest+Allure搭建接口自动化测试框架

具体的框架要求:

1,使用Pytest进行测试用例编写和执行

2,使用Allure生成漂亮的测试报告

3,并且要求有断言方法

初步的框架设计如下,后期可以进一步添加很多功能

java 复制代码
import pytest
import requests
import allure

# 接口地址
BASE_URL = "https://www.xxx.com"

# 示例接口函数
def get_user_info(user_id):
    url = f"{BASE_URL}/users/{user_id}"
    response = requests.get(url)
    return response.json()

# 测试用例
@pytest.mark.parametrize("user_id", [1, 2, 3])
def test_get_user_info(user_id):
    with allure.step("调用接口获取用户信息"):
        user_info = get_user_info(user_id)
    with allure.step("断言用户信息"):
        assert user_info["id"] == user_id

# Pytest的fixture,用于在测试用例执行前后进行一些操作
@pytest.fixture(scope="session")
def setup_allure():
    allure_dir = "allure-results"
    allure_report_dir = "allure-report"
    allure.clean_reports(allure_dir)
    allure.clean_results(allure_dir)
    allure.environment(report="true")
    yield
    allure_cmd = f"allure generate {allure_dir} -o {allure_report_dir} --clean"
    allure_cmd += " && allure open --port 8080 allure-report"
    allure_cmd += " && allure serve allure-results"
    allure_cmd += " && allure report clean"
    allure_cmd += f" && rm -rf {allure_dir}"
    allure_cmd += f" && rm -rf {allure_report_dir}"
    allure_cmd += " && allure results clean"
    os.system(allure_cmd)

# 执行测试
if __name__ == "__main__":
    pytest.main(['-s', '-v', '--alluredir=allure-results'])

在这个框架中,首先定义了一个基本的接口测试用例 test_get_user_info,用于测试 get_user_info 函数是否能够正确返回用户信息。

另外使用 pytest.mark.parametrize 装饰器来指定多个用户ID作为参数进行测试。在测试用例中,可以使用 allure.step 来定义测试步骤,以便在Allure报告中展示清晰的测试步骤。

此外,这个框架还定义了一个 setup_allure fixture,用于在测试执行前清理旧的Allure结果,并在测试执行后生成Allure报告,并使用Allure命令行工具打开报告或服务报告。

相关推荐
测试员周周12 小时前
【Appium 系列】第13节-混合测试执行器 — API + UI 的协同执行
开发语言·人工智能·python·功能测试·ui·appium·pytest
旦莫3 天前
一个完美的AI测试Agent应该是什么样的
人工智能·python·测试开发·pytest·ai测试
我的xiaodoujiao3 天前
API 接口自动化测试详细图文教程学习系列20--结合Pytest框架使用
python·学习·测试工具·pytest
测试员周周4 天前
【AI测试路线图2】功能测试转 AI 测试:4~5 个月,一条最稳的路
开发语言·人工智能·python·功能测试·测试工具·单元测试·pytest
我的xiaodoujiao4 天前
API 接口自动化测试详细图文教程学习系列19--添加封装其他的方法
开发语言·python·学习·测试工具·pytest
小卓(friendhan2005)5 天前
基于 Pytest + Requests + Allure 的博客系统API自动化测试实践
pytest
小卓(friendhan2005)5 天前
基于 Pytest + Selenium + Allure 的博客系统自动化测试实践
selenium·测试工具·pytest
金玉满堂@bj6 天前
Pytest 完整使用教程
运维·服务器·pytest
测试员周周6 天前
【Appium 系列】第10节-手势操作实战 — 滑动、拖拽、缩放与轻拂
linux·服务器·开发语言·人工智能·python·appium·pytest