bug 559929 (Run performance tests on top addons) quick and dirty addons reporting for talos (take 3) p=anodelman r=jhammel
git-svn-id: svn://10.0.0.236/trunk@260436 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
dce86c20e7
commit
62ff5747d8
@ -99,23 +99,42 @@ def process_Request(post):
|
|||||||
|
|
||||||
def send_to_csv(csv_dir, results):
|
def send_to_csv(csv_dir, results):
|
||||||
import csv
|
import csv
|
||||||
|
def avg_excluding_max(val_list):
|
||||||
|
"""return float rounded to two decimal places, converted to string
|
||||||
|
calculates the average value in the list exluding the max value"""
|
||||||
|
i = len(val_list)
|
||||||
|
total = sum(float(v) for v in val_list)
|
||||||
|
maxval = max(float(v) for v in val_list)
|
||||||
|
if total > maxval:
|
||||||
|
avg = str(round((total - maxval)/(i-1), 2))
|
||||||
|
else:
|
||||||
|
avg = str(round(total, 2))
|
||||||
|
return avg
|
||||||
|
|
||||||
for res in results:
|
for res in results:
|
||||||
browser_dump, counter_dump, print_format = results[res]
|
browser_dump, counter_dump, print_format = results[res]
|
||||||
|
if csv_dir:
|
||||||
writer = csv.writer(open(os.path.join(csv_dir, res + '.csv'), "wb"))
|
writer = csv.writer(open(os.path.join(csv_dir, res + '.csv'), "wb"))
|
||||||
|
else: #working with stdout
|
||||||
|
writer = csv.writer(sys.stdout)
|
||||||
if print_format == 'tsformat':
|
if print_format == 'tsformat':
|
||||||
i = 0
|
i = 0
|
||||||
|
res_list = []
|
||||||
writer.writerow(['i', 'val'])
|
writer.writerow(['i', 'val'])
|
||||||
for val in browser_dump:
|
for val in browser_dump:
|
||||||
val_list = val.split('|')
|
val_list = val.split('|')
|
||||||
for v in val_list:
|
for v in val_list:
|
||||||
writer.writerow([i, v])
|
writer.writerow([i, v])
|
||||||
i += 1
|
i += 1
|
||||||
|
res_list.append(v)
|
||||||
|
writer.writerow(['RETURN: ' + res + ': ' + avg_excluding_max(res_list),])
|
||||||
elif print_format == 'tpformat':
|
elif print_format == 'tpformat':
|
||||||
writer.writerow(['i', 'page', 'median', 'mean', 'min' , 'max', 'runs'])
|
writer.writerow(['i', 'page', 'median', 'mean', 'min' , 'max', 'runs'])
|
||||||
for bd in browser_dump:
|
for bd in browser_dump:
|
||||||
bd.rstrip('\n')
|
bd.rstrip('\n')
|
||||||
page_results = bd.splitlines()
|
page_results = bd.splitlines()
|
||||||
i = 0
|
i = 0
|
||||||
|
res_list = []
|
||||||
for mypage in page_results:
|
for mypage in page_results:
|
||||||
r = mypage.split(';')
|
r = mypage.split(';')
|
||||||
#skip this line if it isn't the correct format
|
#skip this line if it isn't the correct format
|
||||||
@ -126,18 +145,24 @@ def send_to_csv(csv_dir, results):
|
|||||||
page = r[1].split('/')[1]
|
page = r[1].split('/')[1]
|
||||||
else:
|
else:
|
||||||
page = r[1]
|
page = r[1]
|
||||||
|
res_list.append(r[2])
|
||||||
writer.writerow([i, page, r[2], r[3], r[4], r[5], '|'.join(r[6:])])
|
writer.writerow([i, page, r[2], r[3], r[4], r[5], '|'.join(r[6:])])
|
||||||
i += 1
|
i += 1
|
||||||
|
writer.writerow(['RETURN: ' + res + ': ' + avg_excluding_max(res_list), ])
|
||||||
else:
|
else:
|
||||||
raise talosError("Unknown print format in send_to_csv")
|
raise talosError("Unknown print format in send_to_csv")
|
||||||
for cd in counter_dump:
|
for cd in counter_dump:
|
||||||
for count_type in cd:
|
for count_type in cd:
|
||||||
|
if csv_dir:
|
||||||
writer = csv.writer(open(os.path.join(csv_dir, res + '_' + count_type + '.csv'), "wb"))
|
writer = csv.writer(open(os.path.join(csv_dir, res + '_' + count_type + '.csv'), "wb"))
|
||||||
|
else:
|
||||||
|
writer = csv.writer(sys.stdout)
|
||||||
writer.writerow(['i', 'value'])
|
writer.writerow(['i', 'value'])
|
||||||
i = 0
|
i = 0
|
||||||
for val in cd[count_type]:
|
for val in cd[count_type]:
|
||||||
writer.writerow([i, val])
|
writer.writerow([i, val])
|
||||||
i += 1
|
i += 1
|
||||||
|
writer.writerow(['RETURN: ' + res + '_' + count_type + ': ' + avg_excluding_max(cd[count_type]),])
|
||||||
|
|
||||||
def filesizeformat(bytes):
|
def filesizeformat(bytes):
|
||||||
"""
|
"""
|
||||||
@ -306,11 +331,12 @@ def browserInfo(browser_config, devicemanager = None):
|
|||||||
browser_config['sourcestamp'] = 'NULL'
|
browser_config['sourcestamp'] = 'NULL'
|
||||||
return browser_config
|
return browser_config
|
||||||
|
|
||||||
def test_file(filename):
|
def test_file(filename, to_screen):
|
||||||
"""Runs the talos tests on the given config file and generates a report.
|
"""Runs the talos tests on the given config file and generates a report.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
filename: the name of the file to run the tests on
|
filename: the name of the file to run the tests on
|
||||||
|
to_screen: boolean, determine if all results should be outputed directly to stdout
|
||||||
"""
|
"""
|
||||||
|
|
||||||
browser_config = []
|
browser_config = []
|
||||||
@ -427,6 +453,8 @@ def test_file(filename):
|
|||||||
# If we're doing CSV, write this test immediately (bug 419367)
|
# If we're doing CSV, write this test immediately (bug 419367)
|
||||||
if csv_dir != '':
|
if csv_dir != '':
|
||||||
send_to_csv(csv_dir, {testname : results[testname]})
|
send_to_csv(csv_dir, {testname : results[testname]})
|
||||||
|
if to_screen:
|
||||||
|
send_to_csv(None, {testname : results[testname]})
|
||||||
except talosError, e:
|
except talosError, e:
|
||||||
utils.stamped_msg("Failed " + testname, "Stopped")
|
utils.stamped_msg("Failed " + testname, "Stopped")
|
||||||
print 'FAIL: Busted: ' + testname
|
print 'FAIL: Busted: ' + testname
|
||||||
@ -448,16 +476,20 @@ def test_file(filename):
|
|||||||
utils.stamped_msg("Failed sending results", "Stopped")
|
utils.stamped_msg("Failed sending results", "Stopped")
|
||||||
print 'FAIL: ' + e.msg.replace('\n', '\nRETURN:')
|
print 'FAIL: ' + e.msg.replace('\n', '\nRETURN:')
|
||||||
|
|
||||||
|
|
||||||
if __name__=='__main__':
|
if __name__=='__main__':
|
||||||
optlist, args = getopt.getopt(sys.argv[1:], 'dn', ['debug', 'noisy'])
|
screen = False
|
||||||
|
optlist, args = getopt.getopt(sys.argv[1:], 'dns', ['debug', 'noisy', 'screen'])
|
||||||
for o, a in optlist:
|
for o, a in optlist:
|
||||||
if o in ('-d', "--debug"):
|
if o in ('-d', "--debug"):
|
||||||
print 'setting debug'
|
print 'setting debug'
|
||||||
utils.setdebug(1)
|
utils.setdebug(1)
|
||||||
if o in ('-n', "--noisy"):
|
if o in ('-n', "--noisy"):
|
||||||
utils.setnoisy(1)
|
utils.setnoisy(1)
|
||||||
|
if o in ('-s', "--screen"):
|
||||||
|
screen = True
|
||||||
# Read in each config file and run the tests on it.
|
# Read in each config file and run the tests on it.
|
||||||
for arg in args:
|
for arg in args:
|
||||||
utils.debug("running test file " + arg)
|
utils.debug("running test file " + arg)
|
||||||
test_file(arg)
|
test_file(arg, screen)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user