帮我对接口测试框架使用request进行封装
时间: 2024-06-04 07:02:15 浏览: 18
好的,我可以为您提供一些关于使用request进行接口测试框架封装的建议。首先,您需要导入request库,并且使用它来发送HTTP请求。然后,您可以创建一些通用的函数,例如发送GET请求、发送POST请求等等,并对它们进行封装,以便您可以在测试过程中轻松地调用它们。此外,您还可以使用一些附加的库和工具,例如unittest和pytest,来帮助您编写测试用例和测试报告。希望这些建议能够对您有所帮助!
相关问题
python接口自动化+request库+pytest框架+PO模式封装实现登录获取token
好的,下面是一个简单的示例代码:
1. 安装依赖库
```
pip install requests
pip install pytest
```
2. 创建项目结构
```
.
├── api
│ ├── __init__.py
│ └── login.py
├── case
│ ├── __init__.py
│ └── test_login.py
├── common
│ ├── __init__.py
│ └── utils.py
└── pytest.ini
```
3. 编写代码
api/login.py
```python
import requests
class LoginApi:
def __init__(self):
self.url = 'http://localhost:8080/api/login'
def login(self, username, password):
payload = {
'username': username,
'password': password
}
response = requests.post(self.url, json=payload)
return response.json().get('data').get('token')
```
common/utils.py
```python
import pytest
from api.login import LoginApi
@pytest.fixture(scope='session')
def token():
api = LoginApi()
return api.login('test', '123456')
```
case/test_login.py
```python
def test_login(token):
assert token is not None
```
4. 运行测试
在项目根目录下运行以下命令:
```
pytest
```
输出结果:
```
============================= test session starts =============================
platform darwin -- Python 3.8.5, pytest-6.2.2, py-1.10.0, pluggy-0.13.1
rootdir: /Users/username/project
collected 1 item
case/test_login.py . [100%]
============================== 1 passed in 0.17s ==============================
```
这样就完成了一个简单的接口自动化测试,并且封装了登录获取 token 的 API 和使用了 pytest 的 fixture 机制。
写个接口自动化测试框架,用Python写
以下是一个简单的接口自动化测试框架,使用Python语言编写:
1. 环境准备
在运行测试框架之前,需要安装以下软件包:
- Python 3.x
- requests
- pytest
2. 目录结构
在创建测试框架之前,需要先创建以下目录结构:
```
- api_test/
- api/
- __init__.py
- base_api.py
- tests/
- __init__.py
- test_sample.py
- config.py
- conftest.py
- requirements.txt
```
- api_test/ 目录是测试框架的主目录,包含了所有的测试用例和测试代码。
- api/ 目录是存放 API 封装代码的目录。
- tests/ 目录是存放测试用例的目录。
- config.py 是测试框架的配置文件,里面包含了一些常量,如 API 地址、用户名、密码等。
- conftest.py 是 pytest 的配置文件,主要用于设置测试环境。
- requirements.txt 是 Python 的依赖文件,里面包含了测试框架所需的所有 Python 包及其版本号。
3. 编写 API 封装代码
在 api/base_api.py 中,我们定义了一个 BaseApi 类,用于封装 HTTP 请求方法。具体代码如下:
```python
import requests
class BaseApi:
def __init__(self, base_url, headers=None):
self.base_url = base_url
self.headers = headers or {}
def request(self, method, path, **kwargs):
url = self.base_url + path
headers = self.headers.copy()
headers.update(kwargs.pop('headers', {}))
response = requests.request(method, url, headers=headers, **kwargs)
return response
```
4. 编写测试用例
在 tests/test_sample.py 中,我们编写了一个简单的测试用例,用于测试登录接口。具体代码如下:
```python
def test_login(api):
data = {
'username': 'admin',
'password': 'admin123'
}
response = api.request('POST', '/login', json=data)
assert response.status_code == 200
assert response.json() == {'status': 'success', 'message': 'Login success.'}
```
5. 编写 pytest 配置文件
在 conftest.py 中,我们定义了一个 api 的 pytest fixture,用于初始化 API 封装类。具体代码如下:
```python
import pytest
from api.base_api import BaseApi
from config import API_BASE_URL, API_HEADERS
@pytest.fixture(scope='session')
def api():
return BaseApi(API_BASE_URL, headers=API_HEADERS)
```
6. 运行测试
在运行测试之前,需要先安装测试框架所需的 Python 包。在命令行中执行以下命令即可:
```
pip install -r requirements.txt
```
安装完成后,可以直接在命令行中运行 pytest 命令,即可运行测试:
```
pytest
```
测试结果会在命令行中显示。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)