搭建一个pytest 接口测试框架
时间: 2023-10-27 14:43:53 浏览: 98
好的,下面是搭建 PyTest 接口测试框架的步骤:
1. 安装 PyTest。在命令行中输入 `pip install pytest` 即可安装。
2. 创建一个测试用例文件。通常来说,测试用例文件名都以 `test_` 开头,如 `test_login.py`。
3. 编写测试用例。测试用例通常是一个函数,以 `test_` 开头,例如 `def test_login():`。
4. 在测试用例函数中编写测试代码。测试代码中应该包含请求接口、获取响应数据和断言的过程。
5. 运行测试用例。在命令行中输入 `pytest`,就可以运行所有以 `test_` 开头的测试用例了。
希望这些步骤能够帮到你。如果你有其他问题,欢迎继续提问。
相关问题
搭建一个pytest+allure+request接口自动化框架
好的,这里为您提供一个简单的pytest+allure+requests接口自动化框架搭建步骤:
1. 安装pytest和allure
```
pip install pytest
pip install allure-pytest
```
2. 安装requests库
```
pip install requests
```
3. 创建测试用例文件和测试数据文件
在项目中创建一个tests文件夹,用于存放测试用例文件。在tests文件夹中创建一个test_api.py文件,用于编写测试用例。
同时,也需要在项目中创建一个data文件夹,用于存放测试数据文件。在data文件夹中创建一个api_data.json文件,用于存放接口测试数据。
4. 编写测试用例
在test_api.py文件中,使用pytest编写测试用例。可以使用requests库发送接口请求,并对返回结果进行断言。
示例代码:
```python
import pytest
import requests
class TestAPI:
@pytest.fixture(scope='session', autouse=True)
def setup_class(self):
self.base_url = 'https://api.github.com'
def test_get_user(self):
url = self.base_url + '/users/github'
response = requests.get(url)
assert response.status_code == 200
assert response.json()['login'] == 'github'
def test_create_gist(self):
url = self.base_url + '/gists'
data = {
"description": "test gist",
"public": True,
"files": {
"test.txt": {
"content": "Test gist content"
}
}
}
headers = {
"Authorization": "token <your access token>"
}
response = requests.post(url, json=data, headers=headers)
assert response.status_code == 201
```
5. 编写测试数据
在api_data.json文件中,编写接口测试用到的数据。可以对不同接口的测试数据进行分类,方便维护。
示例代码:
```json
{
"get_user": {
"url": "/users/github",
"method": "get",
"headers": {},
"params": {},
"data": {},
"json": {},
"expected_status_code": 200,
"expected_data": {
"login": "github"
}
},
"create_gist": {
"url": "/gists",
"method": "post",
"headers": {
"Authorization": "token <your access token>"
},
"params": {},
"data": {
"description": "test gist",
"public": true,
"files": {
"test.txt": {
"content": "Test gist content"
}
}
},
"json": {},
"expected_status_code": 201,
"expected_data": {}
}
}
```
6. 使用pytest执行测试用例
在项目根目录下打开终端,执行如下命令:
```
pytest --alluredir=./report
```
该命令将会执行tests文件夹下的所有测试用例,并将测试结果保存在report文件夹中。
7. 生成测试报告
执行完测试用例后,使用如下命令生成测试报告:
```
allure generate ./report -o ./report/html --clean
```
该命令将会在report文件夹下生成一个html文件夹,里面包含测试结果的详细信息和图表。
至此,一个简单的pytest+allure+requests接口自动化框架就搭建完成了。
pytest搭建一个简单的接口自动化框架
当使用 pytest 搭建一个简单的接口自动化测试框架时,你需要安装 pytest 和相关的库。以下是一个基本的框架结构:
1. 创建项目文件夹并进入该文件夹。
2. 使用虚拟环境(可选但推荐)。
3. 安装所需的库:
```
pip install pytest requests
```
4. 创建一个配置文件 `pytest.ini`,用于配置 pytest 的行为。可以在此文件中指定测试用例的命名规则、报告格式等。
5. 创建一个 `tests` 文件夹,用于存放测试用例文件。
6. 在 `tests` 文件夹中创建一个测试用例文件,例如 `test_api.py`。
7. 编写测试用例:
```python
# test_api.py
import requests
def test_get_request():
url = "https://api.example.com/get"
response = requests.get(url)
assert response.status_code == 200
assert response.json()["success"] == True
def test_post_request():
url = "https://api.example.com/post"
payload = {"key": "value"}
response = requests.post(url, json=payload)
assert response.status_code == 201
assert response.json()["result"] == "success"
```
在这个示例中,我们使用 `requests` 库发送 GET 和 POST 请求,并使用断言验证响应的状态码和内容。
8. 在命令行中执行以下命令来运行测试用例:
```
pytest
```
pytest 将会自动发现并执行以 "test_" 开头的函数作为测试用例。
9. 运行测试后,pytest 将生成测试报告和详细的测试结果。
这是一个简单的接口自动化测试框架的基本搭建步骤。你可以根据需求进一步扩展和优化。祝你成功!如果你有其他问题,请随时提问。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![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)