Created
April 3, 2019 08:51
-
-
Save nseinlet/dd28e7788e30adefbfab32b94b214eb3 to your computer and use it in GitHub Desktop.
odoo logs 2 locust load test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python3 | |
import sys | |
# grep -v /longpolling openerp.log.1 | grep 127.0.0.1 | grep get | grep -v /event/get_country_event_list | grep -v /im_livechat/ | grep -v trial_do |grep -v /static/ | grep -v assets | grep -v button_immediate | grep -v /web | grep -v /xmlrpc/ | grep -v /yodlee/ | grep -v /plaid/ | awk ' { print $14 }' | sort | uniq -c | sort -nr > urls20190403.log | |
if __name__ == '__main__': | |
if len(sys.argv) < 6: | |
print("Usage : logs2taskset.py host min_wait max_wait logfile taskfile") | |
else: | |
logfile = sys.argv[4] | |
taskfile = sys.argv[5] | |
task_num = 0 | |
with open(logfile, 'r') as my_log: | |
with open(taskfile, 'w') as my_task: | |
my_task.write(""" | |
# -*- coding: utf-8 -*- | |
from locust import HttpLocust, TaskSet, task | |
from requests.adapters import HTTPAdapter | |
class MyTaskSet(TaskSet): | |
""") | |
for line in my_log: | |
l = [r.replace("\n", "").replace("\\", "").replace('"', '""') for r in line.split(" ") if r] | |
my_task.write(""" | |
@task(%s) | |
def task_%s(self): | |
self.client.request("get", "%s") | |
""" % (l[0], task_num, l[1])) | |
task_num += 1 | |
my_task.write(""" | |
class MyLocust(HttpLocust): | |
host = "%s" | |
task_set = MyTaskSet | |
min_wait = %s | |
max_wait = %s | |
""" % (sys.argv[1], sys.argv[2], sys.argv[3])) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment