以下是一个简单的接口测试框架示例:
- 安装依赖库
- requests:用于发送HTTP请求和处理响应
- pytest:用于执行测试
pip install requests pytest
- 创建配置文件config.ini
[DEFAULT]
base_url = http://localhost:8080/api
auth = username:password
- 创建测试文件test_cases.py
import pytest
import requests
from configparser import ConfigParser
config = ConfigParser()
config.read('config.ini')
base_url = config.get('DEFAULT', 'base_url')
auth = tuple(config.get('DEFAULT', 'auth').split(':'))
@pytest.fixture(scope='module')
def session():
s = requests.Session()
s.auth = auth
return s
@pytest.mark.parametrize('url, expected_status_code', [
('/users', 200),
('/users/1', 200),
('/users/100', 404),
])
def test_get_users(session, url, expected_status_code):
response = session.get(base_url + url)
assert response.status_code == expected_status_code
@pytest.mark.parametrize('url, data, expected_status_code', [
('/users', {'name': 'John Doe', 'email': 'johndoe@example.com'}, 201),
('/users/1', {'email': 'johndoe@example.com'}, 200),
('/users/100', {'name': 'Jane Doe', 'email': 'janedoe@example.com'}, 404),
])
def test_post_users(session, url, data, expected_status_code):
response = session.post(base_url + url, json=data)
assert response.status_code == expected_status_code
- 运行测试
在命令行中运行以下命令:
pytest test_cases.py
如果所有测试都通过,则输出类似以下内容:
======= 3 passed in 0.32s =======
这个接口测试框架可以扩展支持更多的HTTP方法和动态传递参数。