Mercurial > hg > orthanc-tests
diff PerfsDb/Test.py @ 156:f1a75985caa8
first Db test framework - work in progress
author | am@osimis.io |
---|---|
date | Thu, 16 Aug 2018 17:13:32 +0200 |
parents | |
children | df1f9946571c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PerfsDb/Test.py Thu Aug 16 17:13:32 2018 +0200 @@ -0,0 +1,59 @@ +import time +import statistics +from orthancRestApi import OrthancClient + +from TestResult import TestResult + +class Test: + + def __init__(self, name: str): + self.name = name + self._orthanc = None + self.repeatCount = 10 + + def setOrthancClient(self, orthanc: OrthancClient): + self._orthanc = orthanc + + def setRepeatCount(self, repeatCount: int): + self.repeatCount = repeatCount + + def prepare(self): + """ + Code to execute before the execution of a test; i.e: upload a file (not including in timings) + """ + pass + + def test(self): + """ + Code whose execution time will be measured + """ + pass + + def cleanup(self): + """ + Code to execute after the execution of a test; i.e: remove an instance (not including in timings) + """ + pass + + def run(self) -> TestResult: + result = TestResult(self.name) + + for i in range(0, self.repeatCount): + self.prepare() + startTime = time.time() + self.test() + endTime = time.time() + self.cleanup() + + result.add((endTime - startTime) * 1000) + + result.compute() + return result + + def __str__(self): + return "{name:<40}: {avg:>8.2f} ms {min:>8.2f} ms {max:>8.2f} ms".format( + name=self.name, + avg = self.averageTimeInMs, + min=self.minTimeInMs, + max=self.maxTimeInMs + ) \ No newline at end of file