mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-26 19:00:05 +08:00
black .
This commit is contained in:
@@ -7,7 +7,11 @@ from httprunner import utils
|
||||
from httprunner.exceptions import ValidationFailure
|
||||
from httprunner.models import IStep, StepResult, TStep, ProtoType, TransType
|
||||
from httprunner.runner import HttpRunner
|
||||
from httprunner.step_request import call_hooks, StepRequestExtraction, StepRequestValidation
|
||||
from httprunner.step_request import (
|
||||
call_hooks,
|
||||
StepRequestExtraction,
|
||||
StepRequestValidation,
|
||||
)
|
||||
from httprunner.models import TThriftRequest
|
||||
from httprunner.response import ThriftResponseObject
|
||||
|
||||
@@ -18,29 +22,40 @@ def run_step_thrift_request(runner: HttpRunner, step: TStep) -> StepResult:
|
||||
"""run teststep:thrift request"""
|
||||
start_time = time.time()
|
||||
|
||||
step_result = StepResult(
|
||||
name=step.name,
|
||||
success=False,
|
||||
)
|
||||
step_result = StepResult(name=step.name, success=False,)
|
||||
step.variables = runner.merge_step_variables(step.variables)
|
||||
# parse
|
||||
request_dict = step.thrift_request.dict()
|
||||
parsed_request_dict = runner.parser.parse_data(
|
||||
request_dict, step.variables
|
||||
)
|
||||
parsed_request_dict = runner.parser.parse_data(request_dict, step.variables)
|
||||
config = runner.get_config()
|
||||
parsed_request_dict["psm"] = parsed_request_dict["psm"] or config.thrift.psm
|
||||
parsed_request_dict["env"] = parsed_request_dict["env"] or config.thrift.env
|
||||
parsed_request_dict["cluster"] = parsed_request_dict["cluster"] or config.thrift.cluster
|
||||
parsed_request_dict["idl_path"] = parsed_request_dict["idl_path"] or config.thrift.idl_path
|
||||
parsed_request_dict["include_dirs"] = parsed_request_dict["include_dirs"] or config.thrift.include_dirs
|
||||
parsed_request_dict["method"] = parsed_request_dict["method"] or config.thrift.method
|
||||
parsed_request_dict["service_name"] = parsed_request_dict["service_name"] or config.thrift.service_name
|
||||
parsed_request_dict["cluster"] = (
|
||||
parsed_request_dict["cluster"] or config.thrift.cluster
|
||||
)
|
||||
parsed_request_dict["idl_path"] = (
|
||||
parsed_request_dict["idl_path"] or config.thrift.idl_path
|
||||
)
|
||||
parsed_request_dict["include_dirs"] = (
|
||||
parsed_request_dict["include_dirs"] or config.thrift.include_dirs
|
||||
)
|
||||
parsed_request_dict["method"] = (
|
||||
parsed_request_dict["method"] or config.thrift.method
|
||||
)
|
||||
parsed_request_dict["service_name"] = (
|
||||
parsed_request_dict["service_name"] or config.thrift.service_name
|
||||
)
|
||||
parsed_request_dict["ip"] = parsed_request_dict["ip"] or config.thrift.ip
|
||||
parsed_request_dict["port"] = parsed_request_dict["port"] or config.thrift.port
|
||||
parsed_request_dict["proto_type"] = parsed_request_dict["proto_type"] or config.thrift.proto_type
|
||||
parsed_request_dict["trans_port"] = parsed_request_dict["trans_type"] or config.thrift.trans_type
|
||||
parsed_request_dict["timeout"] = parsed_request_dict["timeout"] or config.thrift.timeout
|
||||
parsed_request_dict["proto_type"] = (
|
||||
parsed_request_dict["proto_type"] or config.thrift.proto_type
|
||||
)
|
||||
parsed_request_dict["trans_port"] = (
|
||||
parsed_request_dict["trans_type"] or config.thrift.trans_type
|
||||
)
|
||||
parsed_request_dict["timeout"] = (
|
||||
parsed_request_dict["timeout"] or config.thrift.timeout
|
||||
)
|
||||
parsed_request_dict["thrift_client"] = parsed_request_dict["thrift_client"]
|
||||
|
||||
# parsed_request_dict["headers"].setdefault(
|
||||
@@ -53,17 +68,24 @@ def run_step_thrift_request(runner: HttpRunner, step: TStep) -> StepResult:
|
||||
|
||||
runner.thrift_client = parsed_request_dict["thrift_client"]
|
||||
if not runner.thrift_client:
|
||||
runner.thrift_client = ThriftClient(parsed_request_dict["idl_path"], parsed_request_dict["service_name"],
|
||||
parsed_request_dict["ip"], parsed_request_dict["port"],
|
||||
parsed_request_dict["timeout"], parsed_request_dict["proto_type"],
|
||||
parsed_request_dict["trans_port"])
|
||||
runner.thrift_client = ThriftClient(
|
||||
parsed_request_dict["idl_path"],
|
||||
parsed_request_dict["service_name"],
|
||||
parsed_request_dict["ip"],
|
||||
parsed_request_dict["port"],
|
||||
parsed_request_dict["timeout"],
|
||||
parsed_request_dict["proto_type"],
|
||||
parsed_request_dict["trans_port"],
|
||||
)
|
||||
|
||||
# setup hooks
|
||||
if step.setup_hooks:
|
||||
call_hooks(runner, step.setup_hooks, step.variables, "setup request")
|
||||
|
||||
# thrift request
|
||||
resp = runner.thrift_client.send_request(parsed_request_dict["params"], parsed_request_dict["method"])
|
||||
resp = runner.thrift_client.send_request(
|
||||
parsed_request_dict["params"], parsed_request_dict["method"]
|
||||
)
|
||||
resp_obj = ThriftResponseObject(resp, parser=runner.parser)
|
||||
step.variables["thrift_response"] = resp_obj
|
||||
|
||||
@@ -72,7 +94,9 @@ def run_step_thrift_request(runner: HttpRunner, step: TStep) -> StepResult:
|
||||
call_hooks(runner, step.teardown_hooks, step.variables, "teardown request")
|
||||
|
||||
def log_thrift_req_resp_details():
|
||||
err_msg = "\n{} THRIFT DETAILED REQUEST & RESPONSE {}\n".format("*" * 32, "*" * 32)
|
||||
err_msg = "\n{} THRIFT DETAILED REQUEST & RESPONSE {}\n".format(
|
||||
"*" * 32, "*" * 32
|
||||
)
|
||||
|
||||
# log request
|
||||
err_msg += "====== thrift request details ======\n"
|
||||
@@ -101,9 +125,7 @@ def run_step_thrift_request(runner: HttpRunner, step: TStep) -> StepResult:
|
||||
# validate
|
||||
validators = step.validators
|
||||
try:
|
||||
resp_obj.validate(
|
||||
validators, variables_mapping
|
||||
)
|
||||
resp_obj.validate(validators, variables_mapping)
|
||||
step_result.success = True
|
||||
except ValidationFailure:
|
||||
log_thrift_req_resp_details()
|
||||
@@ -153,7 +175,9 @@ class RunThriftRequest(IStep):
|
||||
self.__step.retry_interval = retry_interval
|
||||
return self
|
||||
|
||||
def teardown_hook(self, hook: Text, assign_var_name: Text = None) -> "RunThriftRequest":
|
||||
def teardown_hook(
|
||||
self, hook: Text, assign_var_name: Text = None
|
||||
) -> "RunThriftRequest":
|
||||
if assign_var_name:
|
||||
self.__step.teardown_hooks.append({assign_var_name: hook})
|
||||
else:
|
||||
@@ -182,11 +206,13 @@ class RunThriftRequest(IStep):
|
||||
self.__step.thrift_request.include_dirs = [idl_root_path]
|
||||
return self
|
||||
|
||||
def with_thrift_client(self, thrift_client: Union["ThriftClient", str]) -> "RunThriftRequest":
|
||||
def with_thrift_client(
|
||||
self, thrift_client: Union["ThriftClient", str]
|
||||
) -> "RunThriftRequest":
|
||||
self.__step.thrift_request.thrift_client = thrift_client
|
||||
return self
|
||||
|
||||
def with_ip(self,ip: str) -> "RunThriftRequest":
|
||||
def with_ip(self, ip: str) -> "RunThriftRequest":
|
||||
self.__step.thrift_request.ip = ip
|
||||
return self
|
||||
|
||||
@@ -194,11 +220,11 @@ class RunThriftRequest(IStep):
|
||||
self.__step.thrift_request.port = port
|
||||
return self
|
||||
|
||||
def with_proto_type(self,proto_type:ProtoType) -> "RunThriftRequest":
|
||||
def with_proto_type(self, proto_type: ProtoType) -> "RunThriftRequest":
|
||||
self.__step.thrift_request.proto_type = proto_type
|
||||
return self
|
||||
|
||||
def with_trans_type(self,trans_type:TransType) -> "RunThriftRequest":
|
||||
def with_trans_type(self, trans_type: TransType) -> "RunThriftRequest":
|
||||
self.__step.thrift_request.proto_type = trans_type
|
||||
return self
|
||||
|
||||
@@ -220,6 +246,8 @@ class RunThriftRequest(IStep):
|
||||
def validate(self) -> StepThriftRequestValidation:
|
||||
return StepThriftRequestValidation(self.__step)
|
||||
|
||||
def with_jmespath(self, jmes_path: Text, var_name: Text) -> "StepThriftRequestExtraction":
|
||||
def with_jmespath(
|
||||
self, jmes_path: Text, var_name: Text
|
||||
) -> "StepThriftRequestExtraction":
|
||||
self.__step.extract[var_name] = jmes_path
|
||||
return StepThriftRequestExtraction(self.__step)
|
||||
|
||||
Reference in New Issue
Block a user