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

相关推荐
世界的尽头在哪里8 小时前
python测试框架之pytest
开发语言·python·测试工具·单元测试·pytest
胆大的1 天前
怎样才能设计好的自动化测试用例
自动化·测试用例·pytest
雨中夜归人4 天前
自动化测试工具playwright中文文档-------14.Chrome 插件
python·测试工具·自动化·pytest·playwright
小马哥编程8 天前
【软件测试】自动化测试框架Pytest + Selenium的使用
selenium·测试工具·pytest
明月与玄武11 天前
Pytest多环境切换实战:测试框架配置的最佳实践!
pytest·pytest框架环境切换
<花开花落>20 天前
将Python第三方库转换为真正的 pytest 插件
pytest
春风又。22 天前
接口自动化——初识pytest
python·测试工具·自动化·pytest
南部余额23 天前
playwright解决重复登录问题,通过pytest夹具自动读取storage_state用户状态信息
前端·爬虫·python·ui·pytest·pylawright