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

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

1. 环境准备

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

1
2
3
4
5
6
pip install requests pytest allure-pytest
```
### 2. 编写测试用例

创建一个 Python 文件,例如test_api.py
,在其中编写接口测试用例。以下是一个简单的示例,假设我们要测试一个获取用户信息的接口:

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()

1
2
3
4
### 3. 运行测试用例  

使用pytest
运行测试用例,并生成 Allure 测试报告所需的数据:

pytest test_api.py --alluredir=./allure-results

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  
上述命令中,--alluredir
指定了 Allure 测试报告数据的保存目录。

![](/images/blog/1742927627585_image_1.png)
### 4. 生成 Allure 测试报告
#### 4.1 安装 Allure 命令行工具

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

#### 4.2 生成测试报告

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

allure generate ./allure-results -o ./allure-report --clean

1
2
3
4
5
6
7
8
9
10
11
  
上述命令中,./allure-results
是测试报告数据的保存目录,./allure-report
是生成的测试报告的保存目录,--clean
表示在生成报告前先清空目标目录。

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

#### 4.3 打开测试报告

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

allure open ./allure-report

1
2
3
4
5
6
7
8
9
10
  
![](/images/blog/1742927627586_image_3.png)

![](/images/blog/1742927627586_image_4.png)
### 5. 更多功能
#### 5.1 添加测试用例描述

可以使用@pytest.mark
和allure
装饰器为测试用例添加描述信息:

import requestsimport allureimport 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()

1
2
3
4
5
#### 5.2 处理测试用例的前置和后置操作  

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

import requestsimport allureimport pytest@pytest.fixturedef 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  
实现接口自动化测试,并生成详细的测试报告。  
  
  





![江达小记](/images/wechatmpscan.png)