pytest+python
时间: 2023-09-02 12:14:22 浏览: 140
pytest是Python语言中的一个单元测试框架,可以帮助你编写和运行测试用例。它使用简单、灵活,支持自定义插件和扩展,能够满足不同项目的测试需求。
使用pytest编写测试用例通常需要遵循一些规则:
1. 测试文件必须以 test_ 开头或者 _test 结尾
2. 测试函数必须以 test_ 开头
3. 断言使用Python内置的 assert 语句
例如,对于一个简单的函数,我们可以编写如下的测试用例:
```python
# my_math.py
def add(x, y):
return x + y
# test_my_math.py
def test_add():
assert add(2, 3) == 5
assert add(0, 0) == 0
assert add(-1, 1) == 0
```
然后使用命令行运行 pytest 即可执行测试用例:
```
$ pytest
```
pytest会自动搜索当前目录及子目录下所有符合命名规则的测试文件,并执行其中的测试函数。测试结果会显示在控制台上。
除了基本的断言之外,pytest还提供了很多方便的功能,比如参数化测试、测试fixtures等等。更多详细的使用方法可以参考pytest官方文档。
相关问题
pytest+Python安装
安装pytest可以通过pip命令在线安装,具体步骤如下:
```shell
pip install pytest
```
安装完成后,可以通过以下命令查询pytest的状态和版本:
```shell
pip show pytest
```
如果需要卸载pytest,可以使用以下命令:
```shell
pip uninstall pytest
```
帮我写pytest+python接口自动化框架
好的,下面是一个简单的 pytest + Python 接口自动化框架:
1. 安装pytest和requests模块
```shell
pip install pytest requests
```
2. 创建一个tests文件夹,在该文件夹下创建一个conftest.py文件,用于存放pytest的fixture和hook函数
```python
import pytest
import requests
@pytest.fixture(scope="session")
def base_url():
return "https://api.example.com"
@pytest.fixture(scope="session")
def session():
return requests.Session()
@pytest.fixture(scope="session")
def headers():
return {"Content-Type": "application/json"}
```
3. 在tests文件夹下创建一个test_xxx.py文件,用于编写测试用例
```python
def test_login(base_url, session, headers):
url = base_url + "/login"
data = {"username": "test", "password": "123456"}
response = session.post(url, json=data, headers=headers)
assert response.status_code == 200
assert response.json()["msg"] == "success"
```
4. 运行测试用例
```shell
pytest tests/
```
这个框架非常简单,可以根据需要自行扩展。例如,可以添加一个fixture来读取测试数据,可以使用pytest-xdist插件实现并行运行,等等。
阅读全文