streaming-data-to-analytics/load_test/locustfile.py (24 lines of code) (raw):

# This code will publish messages to the Pub/sub topic to simulate events from other systems from locust import HttpUser, task import uuid import time import random from faker import Faker import os import json actions = ["created", "cancelled", "updated", "delivered"] gcp_token = os.getenv("GCP_TOKEN") class IngestAPIUser(HttpUser): @task() def call_ingest_api(self): fake = Faker() order = { "order_id": str(uuid.uuid1()), "customer_email": fake.free_email(), "phone_number": fake.phone_number(), "user_agent": fake.chrome(), "action": random.choice(actions), "action_time": int(time.time()) } data = json.dumps(order).encode("utf-8") self.client.headers = {'Authorization': "Bearer " + gcp_token} self.client.post(f"/?entity=order-event", data=data)