blob: 4e4019446652f21f95d8e5b2199274b3f983317e [file] [log] [blame]
Dirk Vogtb8d16ae2017-10-09 15:17:49 +02001import json, requests
2from multiprocessing import Pool
3
4clients = []
5
6
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +02007BASE_URL = "http://127.0.0.1:8000/hiccup/"
8
Dirk Vogtb8d16ae2017-10-09 15:17:49 +02009
10def create_client():
11 ret_client = {}
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020012 register_url = "api/v1/devices/register/"
13 params = {"board_date": "2017-01-01", "chipset": "HICCUPBENCH"}
14 resp = requests.post(BASE_URL + register_url, params)
Dirk Vogtb8d16ae2017-10-09 15:17:49 +020015 data = json.loads(resp.text)
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020016 ret_client["token"] = data["token"]
17 ret_client["uuid"] = data["uuid"]
Dirk Vogtb8d16ae2017-10-09 15:17:49 +020018 return ret_client
19
20
21def send_heartbeat(client):
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020022 heartbeat_url = "api/v1/heartbeats/"
Dirk Vogtb8d16ae2017-10-09 15:17:49 +020023 params = {
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020024 "uuid": client["uuid"],
25 "build_fingerprint": "HICCUPBENCH",
26 "uptime": "string",
27 "date": "1984-06-02T19:05:00.000Z",
28 "app_version": 2000000,
Dirk Vogtb8d16ae2017-10-09 15:17:49 +020029 }
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020030 resp = requests.post(
31 BASE_URL + heartbeat_url,
32 params,
33 headers={"Authorization": "Token " + client["token"]},
34 )
Dirk Vogtb8d16ae2017-10-09 15:17:49 +020035 return resp
36
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020037
Dirk Vogtb8d16ae2017-10-09 15:17:49 +020038import time
39
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020040
Dirk Vogtb8d16ae2017-10-09 15:17:49 +020041def bench(client):
42 start_time = time.time()
43 for i in range(50):
44 send_heartbeat(client)
45 end_time = time.time()
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020046 print(end_time - start_time)
47
Dirk Vogtb8d16ae2017-10-09 15:17:49 +020048
49clients = []
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020050for i in range(20):
51 clients = clients + [create_client()]
Dirk Vogtb8d16ae2017-10-09 15:17:49 +020052
53with Pool(20) as p:
54 p.map(bench, clients)