给一个pytest接口自动化测试框架
时间: 2023-10-06 07:14:01 浏览: 106
自研 pytest 脚本自动化接口测试框架完整版
以下是一个基于pytest的接口自动化测试框架示例:
```
# conftest.py
import pytest
import requests
@pytest.fixture(scope="session")
def api():
return requests.Session()
@pytest.fixture(scope="session")
def base_url():
return "http://api.example.com"
# test_api.py
def test_get_user(api, base_url):
response = api.get(base_url + "/users/1")
assert response.status_code == 200
assert response.json()["name"] == "John"
def test_create_user(api, base_url):
payload = {"name": "Jane", "email": "jane@example.com"}
response = api.post(base_url + "/users", json=payload)
assert response.status_code == 201
assert response.json()["name"] == "Jane"
def test_update_user(api, base_url):
payload = {"name": "John Doe", "email": "john@example.com"}
response = api.put(base_url + "/users/1", json=payload)
assert response.status_code == 200
assert response.json()["name"] == "John Doe"
def test_delete_user(api, base_url):
response = api.delete(base_url + "/users/1")
assert response.status_code == 204
```
这个框架使用了pytest作为测试框架,使用了requests库来发送HTTP请求。在conftest.py中定义了两个fixture,一个是api,用于创建一个session级别的requests.Session对象,另一个是base_url,用于存储API的基础URL。在test_api.py中编写了四个测试用例,分别测试了获取用户、创建用户、更新用户和删除用户的接口。每个测试用例都使用了api和base_url这两个fixture来发送请求和拼接URL,并使用assert语句来验证响应结果。这个框架还可以扩展,例如添加测试数据管理、测试报告生成等功能。
阅读全文