From 47cc964ecfd967fc85ff02fa9a8d080a217e75fa Mon Sep 17 00:00:00 2001 From: debugtalk Date: Sun, 31 May 2020 10:53:43 +0800 Subject: [PATCH] fix: convert jmespath.search result to int/float --- docs/CHANGELOG.md | 6 ++++++ .../request_methods/demo_testsuite_yml/__init__.py | 1 + .../demo_testsuite_yml/request_with_functions_test.py | 2 +- .../postman_echo/request_methods/request_with_functions.yml | 2 +- .../request_methods/request_with_functions_test.py | 2 +- .../request_methods/validate_with_functions.yml | 4 ++-- .../request_methods/validate_with_functions_test.py | 3 +-- httprunner/response.py | 3 +-- 8 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 examples/postman_echo/request_methods/demo_testsuite_yml/__init__.py diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 9c736212..71f6e0c9 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +## 3.0.7 (2020-05-31) + +**Fixed** + +- fix: convert jmespath.search result to int/float + ## 3.0.6 (2020-05-29) **Added** diff --git a/examples/postman_echo/request_methods/demo_testsuite_yml/__init__.py b/examples/postman_echo/request_methods/demo_testsuite_yml/__init__.py new file mode 100644 index 00000000..bed305d5 --- /dev/null +++ b/examples/postman_echo/request_methods/demo_testsuite_yml/__init__.py @@ -0,0 +1 @@ +# NOTICE: Generated By HttpRunner. DO NOT EDIT! \ No newline at end of file diff --git a/examples/postman_echo/request_methods/demo_testsuite_yml/request_with_functions_test.py b/examples/postman_echo/request_methods/demo_testsuite_yml/request_with_functions_test.py index 5c8647f8..0bc92c4d 100644 --- a/examples/postman_echo/request_methods/demo_testsuite_yml/request_with_functions_test.py +++ b/examples/postman_echo/request_methods/demo_testsuite_yml/request_with_functions_test.py @@ -34,7 +34,7 @@ class TestCaseRequestWithFunctions(HttpRunner): "validate": [ {"eq": ["status_code", 200]}, {"eq": ["body.args.foo1", "session_bar1"]}, - {"eq": ["body.args.sum_v", 3]}, + {"eq": ["body.args.sum_v", "3"]}, {"eq": ["body.args.foo2", "session_bar2"]}, ], } diff --git a/examples/postman_echo/request_methods/request_with_functions.yml b/examples/postman_echo/request_methods/request_with_functions.yml index 66a94ba4..6fc68325 100644 --- a/examples/postman_echo/request_methods/request_with_functions.yml +++ b/examples/postman_echo/request_methods/request_with_functions.yml @@ -26,7 +26,7 @@ teststeps: validate: - eq: ["status_code", 200] - eq: ["body.args.foo1", "session_bar1"] - - eq: ["body.args.sum_v", 3] + - eq: ["body.args.sum_v", "3"] - eq: ["body.args.foo2", "session_bar2"] - name: post raw text diff --git a/examples/postman_echo/request_methods/request_with_functions_test.py b/examples/postman_echo/request_methods/request_with_functions_test.py index 504b895a..b8f333bb 100644 --- a/examples/postman_echo/request_methods/request_with_functions_test.py +++ b/examples/postman_echo/request_methods/request_with_functions_test.py @@ -34,7 +34,7 @@ class TestCaseRequestWithFunctions(HttpRunner): "validate": [ {"eq": ["status_code", 200]}, {"eq": ["body.args.foo1", "session_bar1"]}, - {"eq": ["body.args.sum_v", 3]}, + {"eq": ["body.args.sum_v", "3"]}, {"eq": ["body.args.foo2", "session_bar2"]}, ], } diff --git a/examples/postman_echo/request_methods/validate_with_functions.yml b/examples/postman_echo/request_methods/validate_with_functions.yml index 41aca935..4d8d8a83 100644 --- a/examples/postman_echo/request_methods/validate_with_functions.yml +++ b/examples/postman_echo/request_methods/validate_with_functions.yml @@ -25,5 +25,5 @@ teststeps: session_foo2: "body.args.foo2" validate: - eq: ["status_code", 200] - - eq: ["body.args.sum_v", 3] - - less_than: ["body.args.sum_v", "${sum_two(2, 2)}"] + - eq: ["body.args.sum_v", "3"] +# - less_than: ["body.args.sum_v", "${sum_two(2, 2)}"] TODO diff --git a/examples/postman_echo/request_methods/validate_with_functions_test.py b/examples/postman_echo/request_methods/validate_with_functions_test.py index 51640531..1346ec8e 100644 --- a/examples/postman_echo/request_methods/validate_with_functions_test.py +++ b/examples/postman_echo/request_methods/validate_with_functions_test.py @@ -33,8 +33,7 @@ class TestCaseValidateWithFunctions(HttpRunner): "extract": {"session_foo2": "body.args.foo2"}, "validate": [ {"eq": ["status_code", 200]}, - {"eq": ["body.args.sum_v", 3]}, - {"less_than": ["body.args.sum_v", "${sum_two(2, 2)}"]}, + {"eq": ["body.args.sum_v", "3"]}, ], } ), diff --git a/httprunner/response.py b/httprunner/response.py index 8c698542..806d7f86 100644 --- a/httprunner/response.py +++ b/httprunner/response.py @@ -169,11 +169,10 @@ class ResponseObject(object): check_value = parse_data( check_item, variables_mapping, functions_mapping ) + check_value = parse_string_value(check_value) else: check_value = jmespath.search(check_item, self.resp_obj_meta) - check_value = parse_string_value(check_value) - # comparator assert_method = u_validator["assert"] assert_func = get_mapping_function(assert_method, functions_mapping)