diff --git a/examples/httpbin/hooks.yml b/examples/httpbin/hooks.yml new file mode 100644 index 00000000..765f5daf --- /dev/null +++ b/examples/httpbin/hooks.yml @@ -0,0 +1,36 @@ +config: + name: basic test with httpbin + base_url: ${get_httpbin_server()} + setup_hooks: + - ${hook_print(setup)} + teardown_hooks: + - ${hook_print(teardown)} + +teststeps: +- + name: headers + variables: + a: 123 + request: + url: /headers + method: GET + setup_hooks: + - ${setup_hook_add_kwargs($request)} + - ${setup_hook_remove_kwargs($request)} + teardown_hooks: + - ${teardown_hook_sleep_N_secs($response, 1)} + validate: + - eq: ["status_code", 200] + - contained_by: [body.headers.Host, "${get_httpbin_server()}"] + +- + name: alter response + request: + url: /headers + method: GET + teardown_hooks: + - ${alter_response($response)} + validate: + - eq: ["status_code", 200] +# - eq: ["headers.content-type", "html/text"] + - eq: [body.headers.Host, "httpbin.org"] diff --git a/examples/httpbin/hooks_test.py b/examples/httpbin/hooks_test.py new file mode 100644 index 00000000..b10d450d --- /dev/null +++ b/examples/httpbin/hooks_test.py @@ -0,0 +1,48 @@ +# NOTICE: Generated By HttpRunner. DO'NOT EDIT! +from httprunner import HttpRunner, TConfig, TStep + + +class TestCaseHooks(HttpRunner): + config = TConfig( + **{ + "name": "basic test with httpbin", + "base_url": "${get_httpbin_server()}", + "setup_hooks": ["${hook_print(setup)}"], + "teardown_hooks": ["${hook_print(teardown)}"], + "path": "examples/httpbin/hooks_test.py", + } + ) + + teststeps = [ + TStep( + **{ + "name": "headers", + "variables": {"a": 123}, + "request": {"url": "/headers", "method": "GET"}, + "setup_hooks": [ + "${setup_hook_add_kwargs($request)}", + "${setup_hook_remove_kwargs($request)}", + ], + "teardown_hooks": ["${teardown_hook_sleep_N_secs($response, 1)}"], + "validate": [ + {"eq": ["status_code", 200]}, + {"contained_by": ["body.headers.Host", "${get_httpbin_server()}"]}, + ], + } + ), + TStep( + **{ + "name": "alter response", + "request": {"url": "/headers", "method": "GET"}, + "teardown_hooks": ["${alter_response($response)}"], + "validate": [ + {"eq": ["status_code", 200]}, + {"eq": ["body.headers.Host", "httpbin.org"]}, + ], + } + ), + ] + + +if __name__ == "__main__": + TestCaseHooks().test_start() diff --git a/examples/httpbin/load_image.yml b/examples/httpbin/load_image.yml new file mode 100644 index 00000000..7a2ada65 --- /dev/null +++ b/examples/httpbin/load_image.yml @@ -0,0 +1,37 @@ +config: + name: load images + base_url: ${get_httpbin_server()} + +teststeps: +- + name: get png image + request: + url: /image/png + method: GET + validate: + - eq: ["status_code", 200] + +- + name: get jpeg image + request: + url: /image/jpeg + method: GET + validate: + - eq: ["status_code", 200] + +- + name: get webp image + request: + url: /image/webp + method: GET + validate: + - eq: ["status_code", 200] + +- + name: get svg image + request: + url: /image/svg + method: GET + validate: + - eq: ["status_code", 200] + diff --git a/examples/httpbin/load_image_test.py b/examples/httpbin/load_image_test.py new file mode 100644 index 00000000..6a99f1db --- /dev/null +++ b/examples/httpbin/load_image_test.py @@ -0,0 +1,47 @@ +# NOTICE: Generated By HttpRunner. DO'NOT EDIT! +from httprunner import HttpRunner, TConfig, TStep + + +class TestCaseLoadImage(HttpRunner): + config = TConfig( + **{ + "name": "load images", + "base_url": "${get_httpbin_server()}", + "path": "examples/httpbin/load_image_test.py", + } + ) + + teststeps = [ + TStep( + **{ + "name": "get png image", + "request": {"url": "/image/png", "method": "GET"}, + "validate": [{"eq": ["status_code", 200]}], + } + ), + TStep( + **{ + "name": "get jpeg image", + "request": {"url": "/image/jpeg", "method": "GET"}, + "validate": [{"eq": ["status_code", 200]}], + } + ), + TStep( + **{ + "name": "get webp image", + "request": {"url": "/image/webp", "method": "GET"}, + "validate": [{"eq": ["status_code", 200]}], + } + ), + TStep( + **{ + "name": "get svg image", + "request": {"url": "/image/svg", "method": "GET"}, + "validate": [{"eq": ["status_code", 200]}], + } + ), + ] + + +if __name__ == "__main__": + TestCaseLoadImage().test_start() diff --git a/httprunner/ext/uploader/__init__.py b/httprunner/ext/uploader/__init__.py index 6e2ef71a..7963ee15 100644 --- a/httprunner/ext/uploader/__init__.py +++ b/httprunner/ext/uploader/__init__.py @@ -123,9 +123,9 @@ def multipart_encoder(**kwargs): is_exists_file = os.path.isfile(value) else: # value is not absolute file path, check if it is relative file path - from httprunner.loader import get_pwd + from httprunner.loader import project_working_directory - _file_path = os.path.join(get_pwd(), value) + _file_path = os.path.join(project_working_directory, value) is_exists_file = os.path.isfile(_file_path) if is_exists_file: