【Python】ランダムに少しずつリクエストを増やしていく
既存データ群を引っ張ってきて、それをランダムに参照しつつ、リクエスト数を徐々に増やし、リクエストごとにレスポンスタイムを計測します。
この時は1回目はDBを再起動してメモリにデータが載っていない状態で行い、2回目続けて実行してレスポンスタイムや各種メトリクスを見比べることをしていました。
メモリにデータが乗りすぎても乗らなさすぎても参考値になるか微妙だったので、どうやって検証するのが良いものか悩んでいた時に同僚に教えてもらいました。ありがたや🙏
import csv import json import random import requests from time import time AUTH_TOKEN = '' URL = '' FILE = '' # sample.csv headers = { 'content-type': 'application/json', 'Authorization': f'Bearer {AUTH_TOKEN}' } with open(FILE) as fp: reader = csv.reader(fp) IDS = [row[0] for row in reader] MAX_IDS = 5000 for n in range(0, MAX_IDS+500, 500): if n == 0: continue random_ids = random.sample(IDS, n) d = {} # payload data = json.dumps(d) s = time() r = requests.post(URL, headers=headers, data=data) # n件リクエストした時のAPIの応答速度を記録 print(n, time() - s, r.status_code)