diff --git a/httprunner/report.py b/httprunner/report.py index f8aca25e..15e2d424 100644 --- a/httprunner/report.py +++ b/httprunner/report.py @@ -235,11 +235,16 @@ def __expand_meta_datas(meta_datas, meta_datas_expanded): def __get_total_response_time(meta_datas_expanded): """ caculate total response time of all meta_datas """ - response_time = 0 - for meta_data in meta_datas_expanded: - response_time += meta_data["response"]["response_time_ms"] + try: + response_time = 0 + for meta_data in meta_datas_expanded: + response_time += meta_data["response"]["response_time_ms"] - return "{:.2f}".format(response_time) + return "{:.2f}".format(response_time) + + except TypeError: + # failure exists + return "N/A" def __stringify_meta_datas(meta_datas): diff --git a/httprunner/runner.py b/httprunner/runner.py index 9fef5302..672eb9aa 100644 --- a/httprunner/runner.py +++ b/httprunner/runner.py @@ -318,8 +318,12 @@ class Runner(object): self.meta_datas = self._run_testcase(test_dict) else: # api - self._run_test(test_dict) - self.meta_datas = self.__get_test_data() + try: + self._run_test(test_dict) + except Exception: + raise + finally: + self.meta_datas = self.__get_test_data() def extract_sessions(self): """