Browse Source

Accurate statistics in GUI

Akash Singh 3 years ago
parent
commit
c9e76728e0

+ 9 - 1
baangt/TestCase/TestCaseMaster.py

@@ -1,6 +1,7 @@
 from baangt.base import GlobalConstants as GC
 from baangt.base.Timing.Timing import Timing
 from baangt.TestSteps.Exceptions import *
+from baangt.base.RuntimeStatistics import Statistic
 
 
 class TestCaseMaster:
@@ -10,7 +11,7 @@ class TestCaseMaster:
         self.testSteps = {}
         self.apiInstance = None
         self.numberOfParallelRuns = None
-
+        self.statistic = Statistic()
         self.kwargs = kwargs
 
         self.timing = Timing()  # Use own instance of the timing class, so that we can record timing also in
@@ -150,5 +151,12 @@ class TestCaseMaster:
 
         self._checkAndSetTestcaseStatusIfFailExpected()
 
+        if data[GC.TESTCASESTATUS] == GC.TESTCASESTATUS_SUCCESS:
+            self.statistic.update_success()
+        elif data[GC.TESTCASESTATUS] == GC.TESTCASESTATUS_ERROR:
+            self.statistic.update_error()
+        elif data[GC.TESTCASESTATUS] == GC.TESTCASESTATUS_WAITING:
+            self.statistic.update_waiting()
+
         logger.info(
             f"Testcase {self.kwargs.get(GC.STRUCTURE_TESTSTEP, '')} finished with status: {data[GC.TESTCASESTATUS]}")

+ 24 - 0
baangt/base/RuntimeStatistics.py

@@ -45,6 +45,30 @@ class Statistic(metaclass=Singleton):
             sys.stdout.write("||Statistic:"+self.__str__()+"||")
             sys.stdout.flush()
 
+    def update_success(self):
+        self.testcases_success += 1
+        self.testcases_executed = self.testcases_success + self.testcases_failed
+        self.testcases_remaining = self.testcases_total - self.testcases_executed
+        if self.gui:
+            sys.stdout.write("||Statistic:" + self.__str__() + "||")
+            sys.stdout.flush()
+
+    def update_error(self):
+        self.testcases_failed += 1
+        self.testcases_executed = self.testcases_success + self.testcases_failed
+        self.testcases_remaining = self.testcases_total - self.testcases_executed
+        if self.gui:
+            sys.stdout.write("||Statistic:" + self.__str__() + "||")
+            sys.stdout.flush()
+
+    def update_waiting(self):
+        self.testcases_paused += 1
+        self.testcases_executed = self.testcases_success + self.testcases_failed
+        self.testcases_remaining = self.testcases_total - self.testcases_executed
+        if self.gui:
+            sys.stdout.write("||Statistic:" + self.__str__() + "||")
+            sys.stdout.flush()
+
     def update_teststep(self):
         self.teststep_executed += 1
         if self.gui:

+ 0 - 3
baangt/base/TestRun/TestRun.py

@@ -268,9 +268,6 @@ class TestRun:
                 # Damn! The class is wrong.
                 l_class = TestRun.__dynamicImportClasses(lFullQualified)
                 l_class(**kwargs)
-            success, error = self.getSuccessAndError()
-            waiting = self.getWaiting()
-            self.statistics.update_all(success, error, waiting)
 
         self.kwargs = kwargs
 

+ 3 - 2
examples/globals.json

@@ -10,8 +10,9 @@
     "TC.BrowserWindowSize": "1024x768",
     "TC.LogLevel": "Debug",
     "Stage": "Test",
+    "SendMailTo": "",
     "MsWebHook": "",
     "SlackWebHook": "",
-    "TelegramBot": "1130436643:AAHWFuYGmtOm5ACnXBSuY6fgp9LAECUAmNM",
-    "TelegramChannel": "baangt"
+    "TelegramBot": "",
+    "TelegramChannel": ""
 }