简介:pytest-stress允许在用户定义的时间内循环测试。特别适用于一些已知测试时间,但不知道运行次数的场景。
历史攻略:
安装:
pip3 install pytest-stress
基础案例:
Loop tests for 30 seconds:
$ pytest --seconds 30
Loop tests for 45 minutes:
$ pytest --minutes 45
Loop tests for 8 hours:
$ pytest --hours 8
Loop tests for 1 hour 8 minutes and 9 seconds:
$ pytest --hours 1 --minutes 8 --seconds 9
每次运行后增加运行等待:例如5秒,--delay 5
$ pytest --delay 5 --hours 4 --minutes 30
案例源码:
# -*- coding: utf-8 -*-
# time: 2024/3/31 10:34
# file: test_demo.py
# 公众号: 玩转测试开发
import time
import sys
from logger import log
class TestDemo:
def test_01(self):
time.sleep(1)
log.info('test_case 01 run')
log.info(sys.platform)
assert(1 == 1)
def test_02(self):
time.sleep(1)
log.info('test_case 02 run')
log.info(sys.platform)
assert(2 == 2)
def test_03(self):
time.sleep(1)
log.info('test_case 03 run')
log.info(sys.version)
assert (3 == 3)
运行结果:pytest --seconds 10
(py397) D:\year2024>pytest --seconds 10
=================================================================================== test session starts ====================================================================================
platform win32 -- Python 3.9.7, pytest-8.1.1, pluggy-1.4.0
rootdir: D:\year2024
configfile: pytest.ini
plugins: allure-pytest-2.13.3, anyio-3.6.2, dash-2.9.3, hypothesis-6.99.6, assume-2.4.3, cov-5.0.0, forked-1.6.0, html-4.1.1, metadata-3.1.1, repeat-0.9.3, rerunfailures-14.0, ssh-0.1, stress-1.0.1, xdist-3.5.0
collected 3 items
========================================================================================== Loop # 1 =========================================================================================
test_case\test_demo.py ... [100%]
========================================================================================== Loop # 2 =========================================================================================
. [100%]. [100%]. [100%]
========================================================================================== Loop # 3 =========================================================================================
. [100%]. [100%]. [100%]
========================================================================================== Loop # 4 =========================================================================================
. [100%]. [100%]. [100%]
=================================================================================== 12 passed in 12.68s ====================================================================================
(py397) D:\year2024>
delay的场景:pytest --seconds 10 --delay 3
(py397) D:\year2024>pytest --seconds 10 --delay 3
=================================================================================== test session starts ====================================================================================
platform win32 -- Python 3.9.7, pytest-8.1.1, pluggy-1.4.0
rootdir: D:\year2024
configfile: pytest.ini
plugins: allure-pytest-2.13.3, anyio-3.6.2, dash-2.9.3, hypothesis-6.99.6, assume-2.4.3, cov-5.0.0, forked-1.6.0, html-4.1.1, metadata-3.1.1, repeat-0.9.3, rerunfailures-14.0, ssh-0.1, stress-1.0.1, xdist-3.5.0
collected 3 items
========================================================================================== Loop # 1 =========================================================================================
test_case\test_demo.py ... [100%]
========================================================================================== Loop # 2 =========================================================================================
. [100%]. [100%]. [100%]
========================================================================================== Loop # 3 =========================================================================================
. [100%]. [100%]. [100%]
==================================================================================== 9 passed in 15.62s ====================================================================================
(py397) D:\year2024>