change: refactor Request interface

This commit is contained in:
debugtalk
2020-06-01 11:56:16 +08:00
parent e7aca43470
commit 526b1fcbc9
3 changed files with 30 additions and 19 deletions

View File

@@ -21,8 +21,7 @@ class TestCaseRequestWithFunctions(HttpRunner):
.set_variables(foo1="bar1", foo2="session_bar2", sum_v="${sum_two(1, 2)}") .set_variables(foo1="bar1", foo2="session_bar2", sum_v="${sum_two(1, 2)}")
.run_request( .run_request(
Request() Request()
.set_method("GET") .get("/get")
.set_url("/get")
.set_params(foo1="$foo1", foo2="$foo2", sum_v="$sum_v") .set_params(foo1="$foo1", foo2="$foo2", sum_v="$sum_v")
.set_headers(**{"User-Agent": "HttpRunner/${get_httprunner_version()}"}) .set_headers(**{"User-Agent": "HttpRunner/${get_httprunner_version()}"})
) )
@@ -36,8 +35,7 @@ class TestCaseRequestWithFunctions(HttpRunner):
.set_variables(foo1="hello world", foo3="$session_foo2") .set_variables(foo1="hello world", foo3="$session_foo2")
.run_request( .run_request(
Request() Request()
.set_method("POST") .post("/post")
.set_url("/post")
.set_headers( .set_headers(
**{ **{
"User-Agent": "HttpRunner/${get_httprunner_version()}", "User-Agent": "HttpRunner/${get_httprunner_version()}",
@@ -58,8 +56,7 @@ class TestCaseRequestWithFunctions(HttpRunner):
.set_variables(**{"foo1": "bar1", "foo2": "bar2"}) .set_variables(**{"foo1": "bar1", "foo2": "bar2"})
.run_request( .run_request(
Request() Request()
.set_method("POST") .post("/post")
.set_url("/post")
.set_headers( .set_headers(
**{ **{
"User-Agent": "HttpRunner/${get_httprunner_version()}", "User-Agent": "HttpRunner/${get_httprunner_version()}",

View File

@@ -31,6 +31,7 @@ from httprunner.schema import (
ProjectMeta, ProjectMeta,
TestCase, TestCase,
TRequest, TRequest,
MethodEnum,
) )
@@ -69,21 +70,36 @@ class Config(object):
class Request(object): class Request(object):
def __init__(self): def get(self, url):
self.__method = "GET" return RequestOptionalArgs(MethodEnum.GET, url)
self.__url = ""
def post(self, url):
return RequestOptionalArgs(MethodEnum.POST, url)
def put(self, url):
return RequestOptionalArgs(MethodEnum.PUT, url)
def head(self, url):
return RequestOptionalArgs(MethodEnum.HEAD, url)
def delete(self, url):
return RequestOptionalArgs(MethodEnum.DELETE, url)
def options(self, url):
return RequestOptionalArgs(MethodEnum.OPTIONS, url)
def patch(self, url):
return RequestOptionalArgs(MethodEnum.PATCH, url)
class RequestOptionalArgs(object):
def __init__(self, method: MethodEnum, url: Text):
self.__method = method
self.__url = url
self.__params = {} self.__params = {}
self.__headers = {} self.__headers = {}
self.__data = "" self.__data = ""
def set_method(self, method):
self.__method = method
return self
def set_url(self, url):
self.__url = url
return self
def set_params(self, **params): def set_params(self, **params):
self.__params.update(params) self.__params.update(params)
return self return self

View File

@@ -29,8 +29,6 @@ class MethodEnum(Text, Enum):
HEAD = "HEAD" HEAD = "HEAD"
OPTIONS = "OPTIONS" OPTIONS = "OPTIONS"
PATCH = "PATCH" PATCH = "PATCH"
CONNECT = "CONNECT"
TRACE = "TRACE"
class TConfig(BaseModel): class TConfig(BaseModel):