使用python的requests、pytest、allure-pytest库进行接口自动化测试

下面将详细介绍如何结合 Python 的requests 、pytest 和Allure 来实现接口自动化测试,主要分为以下几个步骤:

1. 环境准备

首先需要安装所需的库,可以使用pip 进行安装:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
pip install requests pytest allure-pytest
```
### 2. 编写测试用例

创建一个 Python 文件,例如test_api.py ,在其中编写接口测试用例。以下是一个简单的示例,假设我们要测试一个获取用户信息的接口:
```python
import requests
# 定义接口测试类
class TestAPI:    
# 测试获取用户信息接口的方法    
def test_get_user_info(self):        
# 定义接口的 URL
url = 'https://jsonplaceholder.typicode.com/users/1'        
# 发送 GET 请求       
response = requests.get(url)        
# 断言响应状态码是否为 200        
assert response.status_code ==200        
# 断言响应数据是否包含 'name' 字段        
assert 'name' in response.json()
```
### 3. 运行测试用例

使用pytest 运行测试用例,并生成 Allure 测试报告所需的数据:
```bash
pytest test_api.py --alluredir=./allure-results

上述命令中,–alluredir 指定了 Allure 测试报告数据的保存目录。

4. 生成 Allure 测试报告

4.1 安装 Allure 命令行工具

你需要先安装 Allure 命令行工具,具体安装方法可以参考  Allure 官方文档  https://allurereport.org/docs/install/

4.2 生成测试报告

使用以下命令生成 Allure 测试报告:

1
2
3
4
5
6
7
8
9
10
allure generate ./allure-results -o ./allure-report --clean
```

上述命令中,./allure-results 是测试报告数据的保存目录,./allure-report 是生成的测试报告的保存目录,--clean 表示在生成报告前先清空目标目录。

![](/images/blog/1742927627585_image_2.png)

#### 4.3 打开测试报告

使用以下命令打开生成的 Allure 测试报告:

allure open ./allure-report

  
![](/images/blog/1742927627586_image_3.png)  
  
![](/images/blog/1742927627586_image_4.png)  
### 5. 更多功能  
#### 5.1 添加测试用例描述  
  
可以使用@pytest.mark  和allure  装饰器为测试用例添加描述信息:  
```python
import requests
import allure
import pytest
@allure.feature('用户信息接口测试')
class TestAPI:    
    @allure.story('获取单个用户信息')    
    @allure.title('验证获取用户信息接口是否正常')    
    @allure.description('该测试用例用于验证获取用户信息接口的响应状态码和响应数据是否符合预期')    
    def test_get_user_info(self):        
        url = 'https://jsonplaceholder.typicode.com/users/1'        
        response = requests.get(url)        
        assert response.status_code ==200        
        assert 'name' in response.json()

5.2 处理测试用例的前置和后置操作

可以使用pytest 的fixture 来处理测试用例的前置和后置操作:

import requests
import allure
import pytest
@pytest.fixture
def setup():    
    # 前置操作    
    print("开始测试")    
    yield    
    # 后置操作    
    print("测试结束")
    @allure.feature('用户信息接口测试')
    class TestAPI:    
        @allure.story('获取单个用户信息')    
        @allure.title('验证获取用户信息接口是否正常') 
        @allure.description('该测试用例用于验证获取用户信息接口的响应状态码和响应数据是否符合预期')    
        def test_get_user_info(self, setup):      
            url = 'https://jsonplaceholder.typicode.com/users/1'        
            response = requests.get(url)        
            assert response.status_code ==200    
            assert 'name' in response.json()

通过以上步骤,你就可以结合requests 、pytest 和Allure 实现接口自动化测试,并生成详细的测试报告。

江达小记