From abb1882ca6035827cd0ee6f1146d8d197f6b7ccc Mon Sep 17 00:00:00 2001 From: debugtalk Date: Thu, 27 Jul 2017 14:44:32 +0800 Subject: [PATCH] specify run times in testcase --- ate/__init__.py | 2 +- ate/runner.py | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/ate/__init__.py b/ate/__init__.py index 9dd16a34..db9cf742 100644 --- a/ate/__init__.py +++ b/ate/__init__.py @@ -1 +1 @@ -__version__ = '0.2.2' \ No newline at end of file +__version__ = '0.2.3' \ No newline at end of file diff --git a/ate/runner.py b/ate/runner.py index 46b935ff..cf11de8f 100644 --- a/ate/runner.py +++ b/ate/runner.py @@ -61,6 +61,7 @@ class Runner(object): @param (dict) testcase { "name": "testcase description", + "times": 3, "requires": [], # optional, override "function_binds": {}, # optional, override "variable_binds": {}, # optional, override @@ -89,16 +90,19 @@ class Runner(object): except KeyError: raise exception.ParamsError("URL or METHOD missed!") - resp = self.http_client_session.request(url=url, method=method, **parsed_request) - resp_obj = response.ResponseObject(resp) - + run_times = int(testcase.get("times", 1)) extract_binds = testcase.get("extract_binds", {}) - extracted_variables_mapping_list = resp_obj.extract_response(extract_binds) - self.context.bind_variables(extracted_variables_mapping_list, level="testset") - validators = testcase.get("validators", []) - diff_content_list = resp_obj.validate( - validators, self.context.get_testcase_variables_mapping()) + + for _ in range(run_times): + resp = self.http_client_session.request(url=url, method=method, **parsed_request) + resp_obj = response.ResponseObject(resp) + + extracted_variables_mapping_list = resp_obj.extract_response(extract_binds) + self.context.bind_variables(extracted_variables_mapping_list, level="testset") + + diff_content_list = resp_obj.validate( + validators, self.context.get_testcase_variables_mapping()) return resp_obj.success, diff_content_list