Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def timeout_test(username, passwd, req_per_min):
- """
- Applies a sustained load test on Overlord
- :param username: Username for Overlord
- :param passwd: Password for Ovverlord
- :param req_per_min: Total requests to make to Overlord per minute
- :return:
- """
- async_client = OverlordAsyncClient(username=username,
- password=passwd)
- future_lis = []
- start_dt = datetime.datetime.utcnow()
- print("Minutes, Requests, Responses, Pending, 200, 423, 502, 503, 504, Timeouts")
- def apply_load(future_lis, time_diff):
- secs_elapsed = time_diff.seconds
- quota = req_per_min / 60 * secs_elapsed
- if len(future_lis) < quota:
- diff = quota - len(future_lis)
- for _ in range(int(diff)):
- id = generate_uuid()
- msg = {'id': id,
- "headers": {"Accept-Language": "en-US,en;q=0.8"}, "id": "fofofo",
- "url": "https://www.truepeoplesearch.com/results?name=Nina%20K%20Lee&personid=plll24lr09r4rnrl9400&rid=0x0"}
- future_lis += [async_client.curl(msg, 60)]
- def report(done_lis, undone_lis):
- req_total = len(done_lis) + len(undone_lis)
- resp_total = len(done_lis)
- pending_total = len(undone_lis)
- code_200 = len(list(filter(lambda x: x.result()[0] is not None and x.result()[0].status_code in (200, 202), done_lis)))
- code_423 = len(list(filter(lambda x: x.result()[0] is not None and x.result()[0].status_code in (423, 429), done_lis)))
- code_502 = len(list(filter(lambda x: x.result()[0] is not None and x.result()[0].status_code == 502, done_lis)))
- code_503 = len(list(filter(lambda x: x.result()[0] is not None and x.result()[0].status_code == 503, done_lis)))
- code_504 = len(list(filter(lambda x: x.result()[0] is not None and x.result()[0].status_code == 504, done_lis)))
- timeout = len(list(filter(lambda x: x.result()[0] is None, done_lis)))
- for x in done_lis:
- id = x.result()[1]
- result = x.result()[0]
- secs_elapsed = time_diff.seconds
- minutes = secs_elapsed / 60
- sys.stdout.write(
- '%d, %d, %d, %d, %d, %d, %d, %d, %d, %d\r' % (
- minutes, req_total, resp_total, pending_total, code_200, code_423, code_502, code_503, code_504, timeout)
- )
- sys.stdout.flush()
- while True:
- time_diff = (datetime.datetime.utcnow() - start_dt)
- apply_load(future_lis, time_diff)
- done_lis, undone_lis = futures.wait(future_lis, return_when=futures.FIRST_COMPLETED)
- report(done_lis, undone_lis)
- time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement