diff --git a/httprunner/__init__.py b/httprunner/__init__.py index 5d1c8208..6d6902bd 100644 --- a/httprunner/__init__.py +++ b/httprunner/__init__.py @@ -1,4 +1,4 @@ -__version__ = "3.0.13" +__version__ = "3.1.0" __description__ = "One-stop solution for HTTP(S) testing." from httprunner.runner import HttpRunner diff --git a/httprunner/runner.py b/httprunner/runner.py index f2c06c25..ab9b4efa 100644 --- a/httprunner/runner.py +++ b/httprunner/runner.py @@ -203,24 +203,30 @@ class HttpRunner(object): # validate validators = step.validators + session_success = False try: resp_obj.validate( validators, variables_mapping, self.__project_meta.functions ) - self.__session.data.success = True + session_success = True except ValidationFailure: - self.__session.data.success = False + session_success = False log_req_resp_details() # log testcase duration before raise ValidationFailure self.__duration = time.time() - self.__start_at raise finally: - # save request & response meta data - self.__session.data.validators = resp_obj.validation_results - self.success = self.__session.data.success - # save step data - step_data.success = self.__session.data.success - step_data.data = self.__session.data + self.success = session_success + step_data.success = session_success + + if hasattr(self.__session, "data"): + # httprunner.client.HttpSession, not locust.clients.HttpSession + # save request & response meta data + self.__session.data.success = session_success + self.__session.data.validators = resp_obj.validation_results + + # save step data + step_data.data = self.__session.data return step_data diff --git a/pyproject.toml b/pyproject.toml index 7af26f24..542fe3ca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "httprunner" -version = "3.0.13" +version = "3.1.0" description = "One-stop solution for HTTP(S) testing." license = "Apache-2.0" readme = "README.md"