Functest fail to parse tempest-based results 03/57103/1
authorxudan <xudan16@huawei.com>
Fri, 4 May 2018 08:40:06 +0000 (04:40 -0400)
committerDan Xu <xudan16@huawei.com>
Mon, 7 May 2018 06:41:40 +0000 (06:41 +0000)
1. The regular expression can't work well for all tempest-based results
2. Refer to http://testresults.opnfv.org/test/api/v1/results?project=functest&case_name=refstack_defcore&last=1
3. There are 88 success test cases but the list of success is empty
4. tempest test case name is not always begin with {0}, it maybe any number
5. The test case whose name has the keyword 'fail' will also be list in 'failures'

Change-Id: I5187aaaabdca762256be9162cc85ba42263169bc
Signed-off-by: xudan <xudan16@huawei.com>
(cherry picked from commit 9286e052afe194c400479275edaa2aaf8ed52de8)

functest/opnfv_tests/openstack/tempest/tempest.py

index 9d001a8..b9b6e37 100644 (file)
@@ -226,13 +226,16 @@ class TempestCommon(testcase.TestCase):
                 output = logfile.read()
 
             success_testcases = []
-            for match in re.findall(r'.*\{0\} (.*?)[. ]*success ', output):
+            for match in re.findall(r'.*\{\d{1,2}\} (.*?) \.{3} success ',
+                                    output):
                 success_testcases.append(match)
             failed_testcases = []
-            for match in re.findall(r'.*\{0\} (.*?)[. ]*fail', output):
+            for match in re.findall(r'.*\{\d{1,2}\} (.*?) \.{3} fail',
+                                    output):
                 failed_testcases.append(match)
             skipped_testcases = []
-            for match in re.findall(r'.*\{0\} (.*?)[. ]*skip:', output):
+            for match in re.findall(r'.*\{\d{1,2}\} (.*?) \.{3} skip:',
+                                    output):
                 skipped_testcases.append(match)
 
             self.details = {"tests_number": stat['num_tests'],