接口自动化 assert 用法
时间: 2024-02-11 15:01:18 浏览: 22
在接口自动化中,assert语句用于判断接口返回结果是否符合预期。以下是几种常用的assert用法:
1. 判断结果为真
```python
assert res['err_msg'] == 'ok'
```
2. 判断结果不为真
```python
assert not res['err_code']
```
3. 判断某个元素是否在列表中
```python
assert 'apple' in res['fruits']
```
4. 判断两个值是否相等
```python
assert res['status_code'] == 200
```
5. 判断两个值是否不相等
```python
assert res['data'] != ''
```
相关问题
使用python做一个接口自动化
接口自动化是现代软件开发中必不可少的一个环节,使用Python编写接口自动化脚本可以提高测试效率和测试质量。下面是一个基本的接口自动化测试框架,供您参考:
1. 安装所需的Python包,例如requests、jsonpath、pytest等。
2. 编写基本的HTTP请求方法,例如:
```python
import requests
def send_request(method, url, params=None, data=None, headers=None):
if method.upper() == "GET":
response = requests.get(url, params=params, headers=headers)
elif method.upper() == "POST":
response = requests.post(url, data=data, headers=headers)
elif method.upper() == "PUT":
response = requests.put(url, data=data, headers=headers)
elif method.upper() == "DELETE":
response = requests.delete(url, headers=headers)
else:
raise ValueError("Unsupported HTTP method")
return response
```
3. 编写基本的测试用例,例如:
```python
def test_get_user_info():
url = "http://api.example.com/user"
params = {"id": 1}
headers = {"Authorization": "Bearer token"}
response = send_request("GET", url, params=params, headers=headers)
assert response.status_code == 200
assert response.json()["id"] == 1
```
4. 编写测试执行脚本,例如:
```python
import pytest
if __name__ == "__main__":
pytest.main(["-s", "-v", "test_api.py"])
```
5. 运行测试脚本,例如:
```
python test_runner.py
```
这是一个基本的接口自动化测试框架,您可以根据需要进行扩展和优化。例如,可以使用数据驱动的方式执行多组测试数据,使用Mock数据模拟接口返回值等。
使用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框架可以大大简化测试用例的编写和管理,提高测试效率和可维护性。