pytest实现接口自动化实例
时间: 2023-10-06 15:14:12 浏览: 52
当然可以!下面是一个使用pytest来实现接口自动化的示例:
```python
import pytest
import requests
# 定义测试用例
@pytest.mark.parametrize("url", [
"http://api.example.com/users",
"http://api.example.com/posts",
])
def test_api(url):
response = requests.get(url)
assert response.status_code == 200
assert response.json() is not None
# 运行测试用例
if __name__ == "__main__":
pytest.main(["-v"])
```
在上面的示例中,我们使用`@pytest.mark.parametrize`装饰器来定义多个接口地址作为参数,然后在`test_api`函数中发送请求并断言返回的状态码和响应数据。
你可以根据实际需要,编写更多的测试用例来覆盖不同的接口和功能。
要运行这个示例,你需要安装pytest和requests库。你可以通过命令行运行`pytest -v`来执行测试用例,并查看详细的执行结果。
希望这个示例能对你有所帮助!如果有任何问题,请随时提问。
相关问题
python+pytest实现接口自动化
接口自动化测试是指通过编写测试脚本,模拟用户请求接口,验证接口返回结果是否符合预期。而pytest是Python中的一种测试框架,可以方便地编写测试用例和运行测试脚本。
下面是一个简单的示例,用pytest实现接口自动化测试:
1. 安装pytest和requests库
```
pip install pytest
pip install requests
```
2. 编写测试用例
新建一个test_api.py文件,编写测试用例代码:
```python
import requests
def test_login():
url = 'http://api.example.com/login'
data = {'username': 'test', 'password': '123456'}
resp = requests.post(url, data=data)
assert resp.status_code == 200
assert resp.json()['code'] == 0
assert resp.json()['message'] == 'success'
```
这个测试用例模拟了一个登录接口,发送post请求,验证返回结果的状态码、code和message是否符合预期。
3. 运行测试脚本
在终端中进入测试用例所在目录,执行以下命令:
```
pytest test_api.py
```
pytest会自动查找所有以test开头的函数,并执行它们。如果测试用例通过,会输出绿色的“PASSED”信息;如果失败,会输出红色的“FAILED”信息。
以上就是一个简单的接口自动化测试示例,当然实际情况中还会有更多的测试用例、数据驱动、报告生成等需求。但通过这个例子可以初步了解pytest和requests库的基本用法。
使用pytest实现接口自动化案例
以下是一个使用pytest实现接口自动化案例的示例:
假设我们要测试一个简单的接口,它的地址为:http://www.example.com/api/get_user,请求方法为GET,参数为user_id,返回json格式的用户信息。
第一步:安装pytest和requests
在命令行中输入以下命令安装pytest和requests:
```
pip install pytest requests
```
第二步:创建测试文件
在项目根目录下创建一个名为test_api.py的文件,在文件中编写测试用例代码:
```python
import pytest
import requests
@pytest.mark.parametrize("user_id", [1, 2, 3])
def test_get_user(user_id):
url = "http://www.example.com/api/get_user"
params = {"user_id": user_id}
response = requests.get(url, params=params)
assert response.status_code == 200
assert response.json()["user_id"] == user_id
```
该测试文件中定义了一个测试函数test_get_user,使用了pytest提供的@parametrize装饰器来实现参数化测试,测试的参数为1、2、3三个不同的用户id。
测试函数中首先定义了接口地址和请求参数,然后使用requests库发送get请求,并对返回结果进行断言,判断接口是否返回了正确的状态码和用户信息。
第三步:运行测试用例
在命令行中进入项目根目录,执行以下命令运行测试:
```
pytest test_api.py
```
如果所有的测试用例都运行通过,命令行将输出“X passed”,表示测试用例全部通过。
上述示例仅是一个简单的接口测试案例,实际应用中可能需要更复杂的测试场景,需要根据实际情况编写测试用例代码。但是,使用pytest框架可以大大简化测试用例的编写和管理,提高测试效率和可维护性。