feat: add default header for each testcase #721

This commit is contained in:
debugtalk
2020-05-21 15:57:31 +08:00
parent 7b819ab311
commit 354e4c2726
4 changed files with 18 additions and 2 deletions

View File

@@ -1,4 +1,4 @@
__version__ = "3.0.4"
__version__ = "3.0.5"
__description__ = "One-stop solution for HTTP(S) testing."
from httprunner.runner import HttpRunner

View File

@@ -1,5 +1,6 @@
import os
import time
import uuid
from datetime import datetime
from typing import List, Dict, Text
@@ -31,6 +32,7 @@ class HttpRunner(object):
success: bool = True # indicate testcase execution result
__project_meta: ProjectMeta = None
__hrun_request_id: Text = None
__step_datas: List[StepData] = None
__session: HttpSession = None
__session_variables: VariablesMapping = {}
@@ -45,6 +47,10 @@ class HttpRunner(object):
self.__session = session
return self
def with_request_id(self, hrun_request_id: Text) -> "HttpRunner":
self.__hrun_request_id = hrun_request_id
return self
def with_variables(self, variables: VariablesMapping) -> "HttpRunner":
self.__session_variables = variables
return self
@@ -60,6 +66,10 @@ class HttpRunner(object):
parsed_request_dict = parse_data(
request_dict, step.variables, self.__project_meta.functions
)
parsed_request_dict["headers"].setdefault(
"HRUN-Request-ID",
f"{self.__hrun_request_id}-{str(int(time.time() * 1000))[-6:]}",
)
# prepare arguments
method = parsed_request_dict.pop("method")
@@ -131,6 +141,7 @@ class HttpRunner(object):
case_result = (
HttpRunner()
.with_session(self.__session)
.with_request_id(self.__hrun_request_id)
.with_variables(step_variables)
.run_path(ref_testcase_path)
)
@@ -183,6 +194,7 @@ class HttpRunner(object):
parse_config(self.config)
self.__start_at = time.time()
self.__step_datas: List[StepData] = []
self.__hrun_request_id = self.__hrun_request_id or f"HRUN-{uuid.uuid4()}"
self.__session = self.__session or HttpSession()
self.__session_variables = {}
for step in self.teststeps: