mirror of
https://github.com/httprunner/httprunner.git
synced 2026-06-06 16:29:37 +08:00
refactor: make step extensible to support implementing new protocols and test types for python version
This commit is contained in:
40
httprunner/step.py
Normal file
40
httprunner/step.py
Normal file
@@ -0,0 +1,40 @@
|
||||
from typing import Union
|
||||
|
||||
from httprunner.models import StepData, TRequest, TStep, TestCase
|
||||
from httprunner.runner import HttpRunner
|
||||
from httprunner.step_request import RequestWithOptionalArgs, StepRequestExtraction, StepRequestValidation
|
||||
from httprunner.step_testcase import StepRefCase
|
||||
|
||||
|
||||
class Step(object):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
step: Union[
|
||||
StepRequestValidation,
|
||||
StepRequestExtraction,
|
||||
RequestWithOptionalArgs,
|
||||
StepRefCase,
|
||||
],
|
||||
):
|
||||
self.__step = step
|
||||
|
||||
@property
|
||||
def request(self) -> TRequest:
|
||||
return self.__step.struct().request
|
||||
|
||||
@property
|
||||
def testcase(self) -> TestCase:
|
||||
return self.__step.struct().testcase
|
||||
|
||||
def struct(self) -> TStep:
|
||||
return self.__step.struct()
|
||||
|
||||
def name(self) -> str:
|
||||
return self.__step.name()
|
||||
|
||||
def type(self) -> str:
|
||||
return self.__step.type()
|
||||
|
||||
def run(self, runner: HttpRunner) -> StepData:
|
||||
return self.__step.run(runner)
|
||||
Reference in New Issue
Block a user