基于python+requests+yaml+allure编写接口测试框架
时间: 2023-05-25 15:02:21 浏览: 128
首先,需要安装必要的依赖库 requests, yaml, allure-pytest,可以通过pip进行安装。
接着,创建一个config.yaml文件,用于存放接口的基本信息,如请求方法、URL、请求头、请求参数等。
示例config.yaml文件:
```
- name: demo接口
method: POST
url: http://demoapi.com/api
headers:
Content-Type: application/json
Token: abcdefghijklmnopqrst
params:
key1: value1
key2: value2
```
在接口测试用例中,可以通过yaml.load()方法读取config.yaml文件中的接口信息。接着,使用requests库进行接口请求,并将返回结果与期望值进行断言。
示例接口测试用例:
```
import requests
import yaml
import pytest
@pytest.fixture()
def api_data():
with open('config.yaml', encoding='utf-8') as f:
data = yaml.load(f, Loader=yaml.FullLoader)
return data
def test_api(api_data):
res = requests.request(method=api_data['method'], url=api_data['url'], headers=api_data['headers'], params=api_data['params'])
assert res.status_code == 200
assert res.json()['code'] == 0
assert res.json()['data'] != ''
```
最后,可以使用pytest框架来执行测试用例,并生成allure报告。安装allure-pytest库后,在pytest命令中加上"--alluredir"参数,执行pytest便可以生成allure报告。
命令示例:
```
pytest --alluredir=./allure_results
```
生成的测试报告可以通过使用allure命令进行展示。
命令示例:
```
allure serve allure_results
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)