github-actions[bot]
Sync turing folder from GitHub
8cd8047
import random
from locust import HttpUser, between, task
class TuringApiUser(HttpUser):
# Wait time between requests
wait_time = between(1, 5)
# List of supported languages
languages = ["python", "java", "pharo"]
# Code examples
code_snippets = {
"python": ["def init(self): pass", "print('Hello World')", "import os"],
"java": ["public static void main(String[] args)", "System.out.println(e);", "private int x = 0;"],
"pharo": ["Transcript show: 'Hello'.", "^ self size", "Object subclass: #Name"]
}
@task(1)
def health_check(self):
"""
Checks if the API is alive.
"""
self.client.get("/")
@task(3)
def predict_code_classification(self):
"""
Sends a prediction request with language as a QUERY PARAMETER.
"""
# Randomly selects one of the three languages
selected_lang = random.choice(self.languages)
texts = self.code_snippets.get(selected_lang, ["generic code"])
json_payload = {
"texts": texts
}
query_params = {
"language": selected_lang
}
headers = {'Content-Type': 'application/json'}
# Perform the request
self.client.post(
"/predict",
params=query_params,
json=json_payload,
headers=headers,
name="/predict"
)