Dirk Vogt | b8d16ae | 2017-10-09 15:17:49 +0200 | [diff] [blame] | 1 | import json, requests |
| 2 | from multiprocessing import Pool |
| 3 | |
| 4 | clients = [] |
| 5 | |
| 6 | |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 7 | BASE_URL = "http://127.0.0.1:8000/hiccup/" |
| 8 | |
Dirk Vogt | b8d16ae | 2017-10-09 15:17:49 +0200 | [diff] [blame] | 9 | |
| 10 | def create_client(): |
| 11 | ret_client = {} |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 12 | 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 Vogt | b8d16ae | 2017-10-09 15:17:49 +0200 | [diff] [blame] | 15 | data = json.loads(resp.text) |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 16 | ret_client["token"] = data["token"] |
| 17 | ret_client["uuid"] = data["uuid"] |
Dirk Vogt | b8d16ae | 2017-10-09 15:17:49 +0200 | [diff] [blame] | 18 | return ret_client |
| 19 | |
| 20 | |
| 21 | def send_heartbeat(client): |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 22 | heartbeat_url = "api/v1/heartbeats/" |
Dirk Vogt | b8d16ae | 2017-10-09 15:17:49 +0200 | [diff] [blame] | 23 | params = { |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 24 | "uuid": client["uuid"], |
| 25 | "build_fingerprint": "HICCUPBENCH", |
| 26 | "uptime": "string", |
| 27 | "date": "1984-06-02T19:05:00.000Z", |
| 28 | "app_version": 2000000, |
Dirk Vogt | b8d16ae | 2017-10-09 15:17:49 +0200 | [diff] [blame] | 29 | } |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 30 | resp = requests.post( |
| 31 | BASE_URL + heartbeat_url, |
| 32 | params, |
| 33 | headers={"Authorization": "Token " + client["token"]}, |
| 34 | ) |
Dirk Vogt | b8d16ae | 2017-10-09 15:17:49 +0200 | [diff] [blame] | 35 | return resp |
| 36 | |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 37 | |
Dirk Vogt | b8d16ae | 2017-10-09 15:17:49 +0200 | [diff] [blame] | 38 | import time |
| 39 | |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 40 | |
Dirk Vogt | b8d16ae | 2017-10-09 15:17:49 +0200 | [diff] [blame] | 41 | def bench(client): |
| 42 | start_time = time.time() |
| 43 | for i in range(50): |
| 44 | send_heartbeat(client) |
| 45 | end_time = time.time() |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 46 | print(end_time - start_time) |
| 47 | |
Dirk Vogt | b8d16ae | 2017-10-09 15:17:49 +0200 | [diff] [blame] | 48 | |
| 49 | clients = [] |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 50 | for i in range(20): |
| 51 | clients = clients + [create_client()] |
Dirk Vogt | b8d16ae | 2017-10-09 15:17:49 +0200 | [diff] [blame] | 52 | |
| 53 | with Pool(20) as p: |
| 54 | p.map(bench, clients) |