pytest封装接口自动化测试
pytest是一个Python的单元测试框架,它可以很好地支持接口自动化测试。要使用pytest进行接口测试,需要进行如下步骤:
- 安装pytest
使用pip安装pytest:
pip install pytest
- 安装requests
使用pip安装requests库:
pip install requests
- 创建测试用例
编写测试用例,使用requests库发送HTTP请求,然后断言响应结果是否符合预期。
例如,假设有一个简单的接口:
bash
GET /hello?name=world
返回如下JSON格式的响应:
json
{
"message": "Hello, world!"
}
可以编写如下的测试用例:
python
import requests
def test_hello():
url = 'http://localhost:8000/hello?name=world'
resp = requests.get(url)
assert resp.status_code == 200
assert resp.json() == {'message': 'Hello, world!'}
在这个测试用例中,首先发送了一个GET请求到指定的URL,然后使用断言语句判断响应状态码是否为200,以及响应结果是否与预期相符。
- 运行测试用例
在命令行中执行如下命令来运行测试:
pytest test_api.py
其中test_api.py是包含测试用例的文件名。pytest会自动发现并运行其中的测试用例,输出测试结果。
可以使用pytest提供的很多选项来定制测试行为,例如指定测试文件或目录、输出测试结果、指定测试环境等。
- 封装测试框架
可以将测试用例封装在一个类中,并添加setUp和tearDown方法来初始化和清理测试环境。
例如,可以创建一个名为TestApi的类,并将测试用例和相关方法放到其中:
python
import requests
class TestApi:
def setup(self):
# 初始化测试环境
self.base_url = 'http://localhost:8000'
def teardown(self):
# 清理测试环境
pass
def test_hello(self):
url = f'{self.base_url}/hello?name=world'
resp = requests.get(url)
assert resp.status_code == 200
assert resp.json() == {'message': 'Hello, world!'}
在这个封装的测试框架中,setUp方法用于初始化测试环境,tearDown方法用于清理测试环境。test_hello方法是实际的测试用例,其中使用了self.base_url来构造请求URL。使用这种方式可以更好地组织和管理测试用例。
标签:封装,url,resp,pytest,接口,测试用例,测试,requests From: https://blog.51cto.com/u_14911999/6065455