From e278d6788608fc18c081afe7f47cf32aca9312b9 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Wed, 27 May 2020 10:57:53 +0800 Subject: [PATCH] docs: add testcase fixture example to update teststep headers --- .../postman_echo/request_methods/conftest.py | 20 ++++++++++++++----- httprunner/cli_test.py | 2 +- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/examples/postman_echo/request_methods/conftest.py b/examples/postman_echo/request_methods/conftest.py index 059591d5..4f0e444c 100644 --- a/examples/postman_echo/request_methods/conftest.py +++ b/examples/postman_echo/request_methods/conftest.py @@ -1,3 +1,4 @@ +import uuid from typing import List import pytest @@ -37,14 +38,23 @@ def testcase_fixture(request): 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}" + def update_request_headers(steps, index): + for teststep in steps: + if teststep.request: + index += 1 + teststep.request.headers["X-Request-ID"] = f"{prefix}-{index}" + elif teststep.testcase and hasattr(teststep.testcase, "teststeps"): + update_request_headers(teststep.testcase.teststeps, index) + + # you can update testcase teststep like this + prefix = f"HRUN-{uuid.uuid4()}" + update_request_headers(teststeps, 0) yield - logger.debug(f"teardown testcase fixture: {config.name} - {request.module.__name__}") + logger.debug( + f"teardown testcase fixture: {config.name} - {request.module.__name__}" + ) summary = request.instance.get_summary() logger.debug(f"testcase result summary: {summary}") diff --git a/httprunner/cli_test.py b/httprunner/cli_test.py index a344866c..3ddd0efb 100644 --- a/httprunner/cli_test.py +++ b/httprunner/cli_test.py @@ -43,6 +43,6 @@ class TestCli(unittest.TestCase): pytest.main( [ "-s", - "examples/postman_echo/request_methods/request_with_variables_test.py", + "examples/postman_echo/request_methods/request_with_testcase_reference_test.py", ] )