pytest接口压测脚本
时间: 2024-06-11 14:02:04 浏览: 175
pytest是一种基于Python编写的测试框架,可以用于单元测试、功能测试、集成测试和接口测试等多种场景。同时,pytest也支持压力测试。
对于接口压测,通常可以通过编写pytest脚本实现。下面是一个简单的示例:
```python
import pytest
import requests
@pytest.mark.parametrize("i", range(10))
def test_interface(i):
url = "http://example.com/interface"
headers = {
"Content-Type": "application/json"
}
data = {
"param": "value"
}
response = requests.post(url, headers=headers, json=data)
assert response.status_code == 200
```
上述脚本使用pytest的`@pytest.mark.parametrize`装饰器来实现参数化,循环执行10次接口请求。接口请求使用了requests库发送POST请求,并校验响应状态码是否为200。可以通过调整参数和实现更复杂的接口请求来实现接口压测。
同时,pytest还提供了其他丰富的功能,如fixture、mock、异常处理等等,可以大大简化测试脚本编写和维护的难度。
相关问题
pytest中做接口压测
在pytest中进行接口压测可以通过以下步骤实现:
1. 首先,在定义测试用例时使用装饰器声明这是一个压力测试。可以使用`@pytest.mark.performance`装饰器来标记测试用例。例如:
```python
# 定义测试用例
@pytest.mark.performance
def test_performance():
# 设置测试参数
url = 'http://www.a.biz/'
num_threads = 20
# ...
```
这样可以将该测试用例标记为压力测试。
2. 接下来,在命令行中使用pytest命令执行测试。可以使用`-v`参数来显示详细的测试结果,使用`--html`参数来指定输出报告的位置。需要安装pytest-html包才能使用`--html`参数。例如:
```
$ pytest -v --html=report.html test_a.py
```
这样会执行`test_a.py`中的测试用例,并生成一个详细的测试报告。
以上是在pytest中进行接口压测的基本步骤。可以根据具体需求设置测试参数,如设置请求的URL、线程数、请求次数等。例如:
```python
# 定义测试用例
def test_performance():
# 设置测试参数
url = 'http://www.a.com/'
num_threads = 20
num_requests = 200
timeout = 5
# ...
```
通过设置这些参数,可以模拟多线程并发请求,对接口进行压力测试。
#### 引用[.reference_title]
- *1* *2* *3* [【Python】案例介绍Pytest进行压力测试](https://blog.csdn.net/u013589130/article/details/129456421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
pytest 接口脚本
好的,我可以为你提供一些编写 pytest 接口脚本的基本步骤和示例代码。
步骤:
1. 安装 pytest 库
```
pip install pytest
```
2. 编写测试用例
创建一个 test_*.py 文件,编写测试用例函数。以测试加法函数为例:
```python
def add(x, y):
return x + y
def test_add():
assert add(1, 2) == 3
assert add(0, 0) == 0
assert add(-1, 1) == 0
```
每个测试用例函数以“test_”开头,可以使用 assert 语句进行断言。
3. 运行测试用例
在命令行中运行 pytest 命令,自动搜索当前目录及其子目录中的测试用例文件,执行所有测试用例:
```
pytest
```
运行结果会显示每个测试用例的执行情况以及统计报告。
示例代码:
```python
# test_math.py
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
if y == 0:
raise ValueError('Cannot divide by zero!')
return x / y
def test_add():
assert add(1, 2) == 3
assert add(0, 0) == 0
assert add(-1, 1) == 0
def test_subtract():
assert subtract(1, 2) == -1
assert subtract(0, 0) == 0
assert subtract(-1, 1) == -2
def test_multiply():
assert multiply(1, 2) == 2
assert multiply(0, 0) == 0
assert multiply(-1, 1) == -1
def test_divide():
assert divide(1, 2) == 0.5
assert divide(0, 1) == 0
assert divide(-1, 1) == -1
try:
divide(1, 0)
except ValueError as err:
assert str(err) == 'Cannot divide by zero!'
```
希望能对你有所帮助!
阅读全文