pytest ymal接口测试用例怎么写
时间: 2023-11-02 21:03:49 浏览: 84
Pytest是一个非常流行的Python测试框架,可以用于编写各种类型的测试用例,包括接口测试用例。在接口测试中,常用的是YAML格式的测试用例,因为它可以很方便地组织测试数据和测试步骤。
下面是一个示例,展示了如何使用Pytest和YAML编写接口测试用例:
1. 安装pytest和pyyaml:
```
pip install pytest pyyaml
```
2. 创建一个YAML文件,包含测试用例的数据和步骤,例如:
```yaml
# test_api.yaml
- name: Test API
cases:
- name: Case 1
url: http://example.com/api
method: POST
headers:
Content-Type: application/json
body:
foo: bar
expected:
status_code: 200
body:
message: success
- name: Case 2
url: http://example.com/api
method: GET
expected:
status_code: 404
body:
error: not found
```
3. 创建一个Pytest测试文件,使用YAML文件中的数据运行测试用例:
```python
# test_api.py
import yaml
import requests
def load_test_data():
with open('test_api.yaml') as f:
test_data = yaml.safe_load(f)
return test_data
def run_test_case(test_case):
url = test_case['url']
method = test_case['method']
headers = test_case.get('headers', {})
body = test_case.get('body', {})
expected = test_case.get('expected', {})
response = requests.request(method, url, headers=headers, json=body)
assert response.status_code == expected.get('status_code')
assert response.json() == expected.get('body')
def test_api():
test_data = load_test_data()
for test_case in test_data['cases']:
run_test_case(test_case)
```
4. 运行测试:
```
pytest test_api.py
```
这样就可以使用Pytest和YAML编写接口测试用例了。在实际项目中,可以根据需要自定义加载测试数据和运行测试用例的方法,以满足不同的测试需求。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)