From 25b37ebc57950dac95a0dea7a49f8dc9e077caf5 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Tue, 21 Apr 2020 15:13:48 +0800 Subject: [PATCH] fix: show assert value type when validation failed --- .../request_with_functions_test.py | 2 +- .../validate_with_functions.yml | 31 ------------------- httprunner/v3/response.py | 4 ++- 3 files changed, 4 insertions(+), 33 deletions(-) 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 b8bd9126..3de4c44a 100644 --- a/examples/postman_echo/request_methods/request_with_functions_test.py +++ b/examples/postman_echo/request_methods/request_with_functions_test.py @@ -44,7 +44,7 @@ class TestCaseRequestMethodsWithFunctions(TestCaseRunner): {"eq": ["status_code", 200]}, {"eq": ["body.args.foo1", "session_bar1"]}, {"eq": ["body.args.foo2", "session_bar2"]}, - {"eq": ["body.args.sum_v", "3"]} + {"eq": ["body.args.sum_v", 3]} ] }), TestStep(**{ diff --git a/examples/postman_echo/request_methods/validate_with_functions.yml b/examples/postman_echo/request_methods/validate_with_functions.yml index ea2c6a40..8de9242b 100644 --- a/examples/postman_echo/request_methods/validate_with_functions.yml +++ b/examples/postman_echo/request_methods/validate_with_functions.yml @@ -27,34 +27,3 @@ teststeps: - eq: ["status_code", 200] - eq: ["body.args.sum_v", "3"] - less_than: ["body.args.sum_v", "${sum_two(2, 2)}"] -- - name: post raw text - variables: - foo1: "hello world" - foo3: "$session_foo2" - request: - method: POST - url: /post - headers: - User-Agent: HttpRunner/${get_httprunner_version()} - Content-Type: "text/plain" - data: "This is expected to be sent back as part of response body: $foo1-$foo3." - validate: - - eq: ["status_code", 200] - - eq: ["body.data", "This is expected to be sent back as part of response body: session_bar1-session_bar2."] -- - name: post form data - variables: - foo1: bar1 - foo2: bar2 - request: - method: POST - url: /post - headers: - User-Agent: HttpRunner/${get_httprunner_version()} - Content-Type: "application/x-www-form-urlencoded" - data: "foo1=$foo1&foo2=$foo2" - validate: - - eq: ["status_code", 200] - - eq: ["body.form.foo1", "session_bar1"] - - eq: ["body.form.foo2", "bar2"] diff --git a/httprunner/v3/response.py b/httprunner/v3/response.py index 9c35ae4d..d4546962 100644 --- a/httprunner/v3/response.py +++ b/httprunner/v3/response.py @@ -51,7 +51,9 @@ class ResponseObject(object): except AssertionError: msg += " - fail" logger.error(msg) - raise ValidationFailure(f"assert {field}: {actual_value} {assert_method} {expect_value}") + actual_type = type(actual_value).__name__ + expect_type = type(expect_value).__name__ + raise ValidationFailure(f"assert {field}: {actual_value}({actual_type}) {assert_method} {expect_value}({expect_type})") def extract(self, extractors: Dict[Text, Text]) -> Dict[Text, Any]: if not extractors: