自研开源项目(3)基于pytest和数据驱动的自定义接口自动化框架caterpillar_apitest

一、安装

pip install -U caterpillar_apitest

二、使用步骤详细说明

2.1、接口之间没有依赖的场景

(1)在空文件夹下创建一个test_开头的py文件,如:test_demo.py,然后在同目录下创建一个文件夹用于存放excel文件,比如文件夹名称为test_datas,如下目录结构:

自研开源项目(3)基于pytest和数据驱动的自定义接口自动化框架caterpillar_apitest
(2)在py文件中编写如下代码:
如下,只需要修改base_url即可
import pytest
import allure
from caterpillar_apitest import ApiTest

@allure.title("用例名称:{case_name}")
@pytest.mark.parametrize('case_id, case_name, url, method, headers, data, dependency, assert_str, mark',
                         ApiTest.get_all_test_datas(__file__, "test_datas"))
def test_api(case_id, case_name, url, method, headers, data, dependency, assert_str, mark):
    base_url="http://www.httpbin.org"
    url=base_url+url

    ApiTest.run(case_id, case_name, url, method, headers, data, dependency, assert_str, mark)

if __name__=="__main__":
    pytest.main(["-s","test_demo.py"])

(3)然后就可以在test_datas目录下创建excel文件即可,注意excel文件需要保存为xlsx格式,excel表格中的格式需要按照如下格式填写,这里需要说明的是:
1)表格的头必须使用这几个字段
2)case_id列为用例id,需要保持唯一性
3)url即为相对路径
4)headers字段根据实际需要填写,字典格式,如果没有就不用填
5)data为字典格式
6)断言的格式需要根据下述数据结构体填写:
数据结构如下,比如如下case_id为case_id_1的检查点是状态码位200,则断言语句为 case_id_1.status_code==200,即按照这种结构将字典的层次关系使用点来表达清楚即可,断言支持的运算符有 ==,>=,

Original: https://blog.csdn.net/redrose2100/article/details/121525929
Author: redrose2100
Title: 自研开源项目(3)基于pytest和数据驱动的自定义接口自动化框架caterpillar_apitest

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/776428/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球