Documentation Index
Fetch the complete documentation index at: https://docs.loadforge.com/llms.txt
Use this file to discover all available pages before exploring further.
OpenAI (ChatGPT), Claude, and Gemini are integrated with LoadForge and locustfiles.
This lets you quickly get help with complex load tests and generate locustfiles.
Example Prompt
The following is an example prompt to generate a complex load test case.
I am using LoadForge and need to create a locustfile that will authenticate against
auth0 to get a bearer token, then use that token to communicate with my API.
Make example requests for me that will help me test my API. Let’s start with:
- GET /api/coins
- POST /api/updateCoinPrice
Also, when you get api/coins save the json list of coins, and then request
- GET /api/coin/{coinId}
This prompt returns the following script from ChatGPT, easily and quickly:
from locust import HttpUser, task, between
import json
import random
import requests
AUTH0_DOMAIN = "your-auth0-domain.auth0.com"
AUTH0_CLIENT_ID = "your-client-id"
AUTH0_CLIENT_SECRET = "your-client-secret"
AUTH0_AUDIENCE = "your-api-identifier"
USERNAME = "your-auth0-username"
PASSWORD = "your-auth0-password"
class CoinUser(HttpUser):
wait_time = between(1, 3)
access_token = None
coins = []
def on_start(self):
# Auth0 authentication
payload = {
"grant_type": "password",
"username": USERNAME,
"password": PASSWORD,
"audience": AUTH0_AUDIENCE,
"client_id": AUTH0_CLIENT_ID,
"client_secret": AUTH0_CLIENT_SECRET,
}
res = requests.post(f"https://{AUTH0_DOMAIN}/oauth/token", json=payload)
res.raise_for_status()
self.access_token = res.json()["access_token"]
self.client.headers.update({"Authorization": f"Bearer {self.access_token}"})
# Get coins
with self.client.get("/api/coins", name="GET /api/coins", catch_response=True) as response:
if response.status_code == 200:
self.coins = response.json()
response.success()
else:
response.failure("Failed to load coins")
@task(2)
def get_coin_detail(self):
if not self.coins:
return
coin = random.choice(self.coins)
coin_id = coin.get("id")
if coin_id:
self.client.get(f"/api/coin/{coin_id}", name="GET /api/coin/{coinId}")
@task(1)
def update_coin_price(self):
# Example payload; adjust fields to match your API
payload = {
"coinId": random.randint(1, 10),
"newPrice": round(random.uniform(1, 1000), 2)
}
self.client.post("/api/updateCoinPrice", json=payload, name="POST /api/updateCoinPrice")