comparison PerfsDb/Run.py @ 164:ff939d07989f

saving results
author am@osimis.io
date Mon, 20 Aug 2018 15:50:47 +0200
parents dbc42a03ee75
children 1ff0d830bb87
comparison
equal deleted inserted replaced
163:53575aa2614b 164:ff939d07989f
1 import argparse 1 import argparse
2 import fnmatch 2 import fnmatch
3 import csv
4 import datetime
5 import os
3 6
4 from ConfigFileBuilder import ConfigFileBuilder 7 from ConfigFileBuilder import ConfigFileBuilder
5 from TestConfig import TestConfig 8 from TestConfig import TestConfig
6 from Tests import * 9 from Tests import *
7 from DbServer import DbServer 10 from DbServer import DbServer
147 testNames.add(result.name) 150 testNames.add(result.name)
148 if not result.name in resultsByTestName: 151 if not result.name in resultsByTestName:
149 resultsByTestName[result.name] = {} 152 resultsByTestName[result.name] = {}
150 resultsByTestName[result.name][configName] = result 153 resultsByTestName[result.name][configName] = result
151 154
152 headerLine = "{empty:<40}|".format(empty="") 155 resultFileName = os.path.join(os.path.dirname(os.path.abspath(__file__)), "Results/run-" + datetime.datetime.now().strftime("%Y.%m.%d.%H.%M.%S"))
153 for testConfig in selectedTestConfigs:
154 headerLine += "{configName:^15}|".format(configName=testConfig.label)
155 156
156 print(headerLine) 157 with open(resultFileName, 'w', newline='') as resultFile:
158 resultWriter = csv.writer(resultFile)
159 resultHeaderRow = [""]
157 160
158 for testName in sorted(testNames): 161 headerLine = "{empty:<40}|".format(empty="")
159 resultLine = "{name:<40}|".format(name=testName) 162
160 for testConfig in selectedTestConfigs: 163 for testConfig in selectedTestConfigs:
161 resultLine += "{avg:>11.2f} ms |".format(avg = resultsByTestName[testName][testConfig.label].averageTimeInMs) 164 headerLine += "{configName:^15}|".format(configName=testConfig.label)
162 print(resultLine) 165 resultHeaderRow.append(configName)
163 166
164 print("** Done") 167 print(headerLine)
168 resultWriter.writerow(resultHeaderRow)
169
170 for testName in sorted(testNames):
171 resultLine = "{name:<40}|".format(name=testName)
172 resultRow=[testName]
173
174 for testConfig in selectedTestConfigs:
175 resultLine += "{avg:>11.2f} ms |".format(avg = resultsByTestName[testName][testConfig.label].averageTimeInMs)
176 resultRow.append(resultsByTestName[testName][testConfig.label].averageTimeInMs)
177
178 print(resultLine)
179 resultWriter.writerow(resultRow)
180
181 print("** Done; results saved in " + resultFileName)