Tengo dos archivos, ambos se ejecutan individualmente sin ningún error. solía FastAPI
para crear algunos puntos finales y estoy tratando de usar locust
(a través de una herramienta invokust
de FutureSharks) para realizar pruebas de carga.
en mi archivo run_server.py
Tengo el siguiente código
from main import app
import uvicorn
if __name__ == "__main__":
uvicorn.run(app, host="127.0.0.1", port=8000)
en mi archivo load_test.py
Tengo el siguiente código
import invokust
settings = invokust.create_settings(
locustfile="locustfile.py",
host="http://127.0.0.1:8000",
num_users=1,
spawn_rate=1,
run_time="1m"
)
loadtest = invokust.LocustLoadTest(settings)
loadtest.run()
loadtest.stats()
"{'requests': {'GET_/': {'request_type': 'GET', 'num_requests': 923, 'min_response_time': 113.54585000000128, 'median_response_time': 120.0, 'avg_response_time': 145.68631223510297, 'max_response_time': 331.89674199999786, 'response_times': {270.0: 2, 120.0: 479, 150.0: 17, 200.0: 83, 210.0: 80, 160.0: 20, 190.0: 55, 220.0: 9, 130.0: 30, 170.0: 22, 230.0: 5, 110.0: 69, 140.0: 19, 180.0: 27, 240.0: 2, 320.0: 3, 330.0: 1}, 'response_time_percentiles': {55: 120.0, 65: 150.0, 75: 190.0, 85: 200.0, 95: 210.0}, 'total_rps': 5.136500841568583, 'total_rpm': 308.190050494115}, 'GET_/about': {'request_type': 'GET', 'num_requests': 308, 'min_response_time': 113.23035299999873, 'median_response_time': 120.0, 'avg_response_time': 146.04534828246747, 'max_response_time': 290.40608500000076, 'response_times': {120.0: 147, 200.0: 36, 190.0: 25, 110.0: 27, 160.0: 12, 150.0: 6, 180.0: 13, 210.0: 12, 170.0: 13, 220.0: 2, 130.0: 8, 140.0: 6, 290.0: 1}, 'response_time_percentiles': {55: 120.0, 65: 160.0, 75: 180.0, 85: 200.0, 95: 200.0}, 'total_rps': 1.7140219492991589, 'total_rpm': 102.84131695794953}}, 'failures': {}, 'num_requests': 1231, 'num_requests_fail': 0, 'start_time': 1608207776.312684, 'end_time': 1608207956.070369}"
Quiero ejecutarlos en paralelo, así que cuando mi run_server.py
comienza el uvicorn
servidor, mi load_test.py
comienza a hacer la prueba de carga.
Cómo puedo hacer esto ?