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命令行工具打开报告或服务报告。

相关推荐
旦莫2 天前
Pytest教程:Pytest与主流测试框架对比
人工智能·python·pytest
X1A0RAN2 天前
解决docker容器执行pytest命令报socket.gaierror: [Errno -2] Name or service not known 错误问题
docker·容器·pytest
程序员三藏3 天前
接口自动化测试之 pytest 接口关联框架封装
自动化测试·软件测试·python·测试工具·测试用例·pytest·接口测试
旦莫4 天前
怎么才能算对自动化测试框架二次开发(以Pytest为例)
python·测试开发·pytest·ai测试
彩色面团儿6 天前
Pytest框架测试用例分析(测试笔记二)
笔记·测试用例·pytest
阿蔹6 天前
Python-Pytest-Requests-API接口测试自动化框架2
python·自动化·pytest
彩色面团儿7 天前
Pycharm部署pytest运行测试(测试笔记一)
python·pycharm·集成测试·pytest
阿蔹7 天前
Python-Pytest
python·自动化·pytest
阿蔹8 天前
Python-Pytest-Requests-API接口测试自动化框架
python·自动化·pytest
先做个垃圾出来………8 天前
pytest + pytest-mock + pytest-parametrize为基础构建测试框架
microsoft·pytest