This commit is contained in:
Siarhei Fedartsou 2024-05-27 22:17:32 +02:00
parent aec240d46e
commit a5ede15b1b

View File

@ -1,4 +1,4 @@
from locust import HttpUser, TaskSet, task, between, events from locust import HttpUser, TaskSet, task, between
import csv import csv
import random import random
from collections import defaultdict from collections import defaultdict
@ -40,13 +40,16 @@ class OSRMTasks(TaskSet):
@task @task
def get_match(self): def get_match(self):
num_coords = random.randint(3, 50) num_coords = random.randint(20, 50)
track_id = random.choice(self.track_ids) track_id = random.choice(self.track_ids)
track_coords = self.tracks[track_id][:num_coords] track_coords = self.tracks[track_id][:num_coords]
coords_str = ";".join([f"{coord[1]:.6f},{coord[0]:.6f}" for coord in track_coords]) coords_str = ";".join([f"{coord[1]:.6f},{coord[0]:.6f}" for coord in track_coords])
with self.client.get(f"/match/v1/driving/{coords_str}?steps=true", name="match", catch_response=True) as response: with self.client.get(f"/match/v1/driving/{coords_str}?steps=true", name="match", catch_response=True) as response:
if response.status_code == 400: if response.status_code == 400:
j = response.json()
# it is expected that some of requests will fail with such error: map matching fails sometimes
if j['code'] == 'NoSegment' or j['code'] == 'NoMatch':
response.success() response.success()