Advertisement
Guest User

Untitled

a guest
Nov 1st, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. def timeout_test(username, passwd, req_per_min):
  2. """
  3. Applies a sustained load test on Overlord
  4.  
  5. :param username: Username for Overlord
  6. :param passwd: Password for Ovverlord
  7. :param req_per_min: Total requests to make to Overlord per minute
  8. :return:
  9. """
  10. async_client = OverlordAsyncClient(username=username,
  11. password=passwd)
  12.  
  13. future_lis = []
  14. start_dt = datetime.datetime.utcnow()
  15. print("Minutes, Requests, Responses, Pending, 200, 423, 502, 503, 504, Timeouts")
  16.  
  17. def apply_load(future_lis, time_diff):
  18. secs_elapsed = time_diff.seconds
  19. quota = req_per_min / 60 * secs_elapsed
  20. if len(future_lis) < quota:
  21. diff = quota - len(future_lis)
  22. for _ in range(int(diff)):
  23. id = generate_uuid()
  24. msg = {'id': id,
  25. "headers": {"Accept-Language": "en-US,en;q=0.8"}, "id": "fofofo",
  26. "url": "https://www.truepeoplesearch.com/results?name=Nina%20K%20Lee&personid=plll24lr09r4rnrl9400&rid=0x0"}
  27. future_lis += [async_client.curl(msg, 60)]
  28.  
  29. def report(done_lis, undone_lis):
  30. req_total = len(done_lis) + len(undone_lis)
  31. resp_total = len(done_lis)
  32. pending_total = len(undone_lis)
  33. code_200 = len(list(filter(lambda x: x.result()[0] is not None and x.result()[0].status_code in (200, 202), done_lis)))
  34. code_423 = len(list(filter(lambda x: x.result()[0] is not None and x.result()[0].status_code in (423, 429), done_lis)))
  35. code_502 = len(list(filter(lambda x: x.result()[0] is not None and x.result()[0].status_code == 502, done_lis)))
  36. code_503 = len(list(filter(lambda x: x.result()[0] is not None and x.result()[0].status_code == 503, done_lis)))
  37. code_504 = len(list(filter(lambda x: x.result()[0] is not None and x.result()[0].status_code == 504, done_lis)))
  38. timeout = len(list(filter(lambda x: x.result()[0] is None, done_lis)))
  39. for x in done_lis:
  40. id = x.result()[1]
  41. result = x.result()[0]
  42. secs_elapsed = time_diff.seconds
  43. minutes = secs_elapsed / 60
  44. sys.stdout.write(
  45. '%d, %d, %d, %d, %d, %d, %d, %d, %d, %d\r' % (
  46. minutes, req_total, resp_total, pending_total, code_200, code_423, code_502, code_503, code_504, timeout)
  47. )
  48. sys.stdout.flush()
  49.  
  50. while True:
  51. time_diff = (datetime.datetime.utcnow() - start_dt)
  52. apply_load(future_lis, time_diff)
  53. done_lis, undone_lis = futures.wait(future_lis, return_when=futures.FIRST_COMPLETED)
  54. report(done_lis, undone_lis)
  55. time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement