class="hide-preCode-box">

基于 pytest + YAML 实现测试框架

1. 测试框架代码

以下是基于 pytest 和 YAML 的接口测试框架代码:

import pytest
import requests
import yaml

# 加载 YAML 测试用例
def load_test_cases(file_path):
    with open(file_path, "r", encoding="utf-8") as f:
        return yaml.safe_load(f)

# 测试数据驱动
test_cases = load_test_cases("test_cases.yml")

@pytest.mark.parametrize("api_test", test_cases)
def test_api(api_test):
    """
    使用 pytest 执行接口测试
    """
    base_url = "http://localhost:8000"  # 替换为实际的接口服务地址

    # 遍历接口的测试用例
    for case in api_test["test_cases"]:
        name = case["name"]  # 测试用例名称
        request_data = case["request"]  # 请求数据
        expected_response = case["expected_response"]  # 期望响应

        # 打印测试用例名称
        print(f"执行测试用例: {name}")

        # 根据方法调用接口
        if api_test["method"] == "POST":
            response = requests.post(base_url + api_test["api"], json=request_data)
        elif api_test["method"] == "GET":
            response = requests.get(base_url + api_test["api"], params=request_data)
        else:
            pytest.fail(f"未支持的 HTTP 方法: {api_test['method']}")

        # 验证响应
        assert response.status_code == 200, f"HTTP 状态码错误: {response.status_code}"
        actual_response = response.json()
        for key, value in expected_response.items():
            assert actual_response.get(key) == value, f"响应字段 {key} 校验失败,期望: {value},实际: {actual_response.get(key)}"
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}"> class="hide-preCode-box">

2. 运行测试

运行以下命令执行测试:

pytest -v test_api.py
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

框架优势与扩展性

  1. 测试数据驱动

  2. 支持多接口多用例

  3. 易于扩展

  4. 异常场景覆盖


总结

通过 DeepSeekpytest + YAML 框架,测试工程师可以快速生成并执行接口测试用例,显著提升测试效率和用例覆盖率。本方案兼具实用性与扩展性,适用于各类接口测试场景,让测试工程师耳目一新,真正实现测试自动化的落地。

data-report-view="{"mod":"1585297308_001","spm":"1001.2101.3001.6548","dest":"https://blog.csdn.net/weixin_44872675/article/details/145532374","extend1":"pc","ab":"new"}">>
注:本文转载自blog.csdn.net的Python测试之道的文章"https://blog.csdn.net/weixin_44872675/article/details/145532374"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接

评论记录:

未查询到任何数据!