mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 02:21:29 +08:00
docs: add examples for session_fixture and testcase_fixture
This commit is contained in:
52
examples/postman_echo/request_methods/conftest.py
Normal file
52
examples/postman_echo/request_methods/conftest.py
Normal file
@@ -0,0 +1,52 @@
|
||||
from typing import List
|
||||
|
||||
import pytest
|
||||
from loguru import logger
|
||||
|
||||
from httprunner.schema import TConfig, TStep
|
||||
|
||||
|
||||
@pytest.fixture(scope="session", autouse=True)
|
||||
def session_fixture(request):
|
||||
"""setup and teardown each task"""
|
||||
total_testcases_num = request.node.testscollected
|
||||
testcases = []
|
||||
for item in request.node.items:
|
||||
testcase = {
|
||||
"name": item.cls.config.name,
|
||||
"path": item.cls.config.path,
|
||||
"node_id": item.nodeid,
|
||||
}
|
||||
testcases.append(testcase)
|
||||
|
||||
logger.debug(f"collected {total_testcases_num} testcases: {testcases}")
|
||||
|
||||
yield
|
||||
|
||||
logger.debug(f"teardown task fixture")
|
||||
|
||||
# teardown task
|
||||
# TODO: upload task summary
|
||||
|
||||
|
||||
@pytest.fixture(scope="function", autouse=True)
|
||||
def testcase_fixture(request):
|
||||
"""setup and teardown each testcase"""
|
||||
config: TConfig = request.cls.config
|
||||
teststeps: List[TStep] = request.cls.teststeps
|
||||
|
||||
logger.debug(f"setup testcase fixture: {config.name} - {request.module.__name__}")
|
||||
|
||||
# prefix = f"HRUN-{uuid.uuid4()}"
|
||||
# for index, teststep in enumerate(teststeps):
|
||||
# # you can update testcase teststep here
|
||||
# teststep.request.headers["HRUN-Request-ID"] = f"{prefix}-{index}"
|
||||
|
||||
yield
|
||||
|
||||
logger.debug(f"teardown testcase fixture: {config.name} - {request.module.__name__}")
|
||||
|
||||
summary = request.instance.get_summary()
|
||||
logger.debug(f"testcase result summary: {summary}")
|
||||
|
||||
# TODO: upload testcase summary
|
||||
Reference in New Issue
Block a user