From a2a28ef2f3532ac26de88b746305d26f900b16fc Mon Sep 17 00:00:00 2001 From: Morgan Richomme Date: Mon, 6 Mar 2017 14:44:47 +0100 Subject: [PATCH] bug fix: last 4 run reporting for storperf - bug fix: copy/paste of yardstick code but list of results is not sorted by default, taking the last 4 array items lead to random results on the 4 last run sort results before taking the last 4 results to establish last 4 run criteria - enhancement: add link to last CI run in the reporting page - fix trend line bug Change-Id: Ice16832a81cb65503a63b16321a2be92a427d279 Signed-off-by: Morgan Richomme --- utils/test/reporting/storperf/reporting-status.py | 37 ++++++++++++++++------ .../storperf/template/index-status-tmpl.html | 4 +-- utils/test/reporting/utils/scenarioResult.py | 6 +++- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/utils/test/reporting/storperf/reporting-status.py b/utils/test/reporting/storperf/reporting-status.py index 674fdd880..888e339f8 100644 --- a/utils/test/reporting/storperf/reporting-status.py +++ b/utils/test/reporting/storperf/reporting-status.py @@ -63,15 +63,23 @@ for version in versions: logger.info("ten_score: %s / %s" % (ten_score, ten_criteria)) - LASTEST_TESTS = rp_utils.get_config( - 'general.nb_iteration_tests_success_criteria') - four_result = s_result[:LASTEST_TESTS] - four_criteria = len(four_result) four_score = 0 - for v in four_result: - if "PASS" in v['criteria']: - four_score += 1 - logger.info("four_score: %s / %s " % (four_score, four_criteria)) + try: + LASTEST_TESTS = rp_utils.get_config( + 'general.nb_iteration_tests_success_criteria') + s_result.sort(key=lambda x: x['start_date']) + four_result = s_result[-LASTEST_TESTS:] + logger.debug("four_result: {}".format(four_result)) + logger.debug("LASTEST_TESTS: {}".format(LASTEST_TESTS)) + # logger.debug("four_result: {}".format(four_result)) + four_criteria = len(four_result) + for v in four_result: + if "PASS" in v['criteria']: + four_score += 1 + logger.info("4 Score: %s / %s " % (four_score, + four_criteria)) + except: + logger.error("Impossible to retrieve the four_score") try: s_status = (four_score * 100) / four_criteria @@ -82,12 +90,20 @@ for version in versions: s_ten_score = str(ten_score) + '/' + str(ten_criteria) s_score_percent = str(s_status) - if '100' == s_status: + logger.debug(" s_status: {}".format(s_status)) + if s_status == 100: logger.info(">>>>> scenario OK, save the information") else: logger.info(">>>> scenario not OK, last 4 iterations = %s, \ last 10 days = %s" % (s_four_score, s_ten_score)) + s_url = "" + if len(s_result) > 0: + build_tag = s_result[len(s_result)-1]['build_tag'] + logger.debug("Build tag: %s" % build_tag) + s_url = s_url = rp_utils.getJenkinsUrl(build_tag) + logger.info("last jenkins url: %s" % s_url) + # Save daily results in a file path_validation_file = ("./display/" + version + "/storperf/scenario_history.txt") @@ -106,7 +122,8 @@ for version in versions: scenario_result_criteria[s] = sr.ScenarioResult(s_status, s_four_score, s_ten_score, - s_score_percent) + s_score_percent, + s_url) logger.info("--------------------------") diff --git a/utils/test/reporting/storperf/template/index-status-tmpl.html b/utils/test/reporting/storperf/template/index-status-tmpl.html index e3a18b1ce..e0fcc6828 100644 --- a/utils/test/reporting/storperf/template/index-status-tmpl.html +++ b/utils/test/reporting/storperf/template/index-status-tmpl.html @@ -25,7 +25,7 @@ } // trend line management - d3.csv("./scenario_history.csv", function(data) { + d3.csv("./scenario_history.txt", function(data) { // *************************************** // Create the trend line {% for scenario in scenario_results.keys() -%} @@ -95,7 +95,7 @@ {% for scenario,result in scenario_results.iteritems() -%} - {{scenario}} + {{scenario}}
{{scenario_results[scenario].getFourDaysScore()}} diff --git a/utils/test/reporting/utils/scenarioResult.py b/utils/test/reporting/utils/scenarioResult.py index 1f7eb2b24..6029d7f42 100644 --- a/utils/test/reporting/utils/scenarioResult.py +++ b/utils/test/reporting/utils/scenarioResult.py @@ -10,11 +10,12 @@ class ScenarioResult(object): def __init__(self, status, four_days_score='', ten_days_score='', - score_percent=0.0): + score_percent=0.0, last_url=''): self.status = status self.four_days_score = four_days_score self.ten_days_score = ten_days_score self.score_percent = score_percent + self.last_url = last_url def getStatus(self): return self.status @@ -27,3 +28,6 @@ class ScenarioResult(object): def getScorePercent(self): return self.score_percent + + def getLastUrl(self): + return self.last_url -- 2.16.6