Compartir a través de


Inicio rápido: Creación y ejecución de una prueba de carga con Visual Studio Code y GitHub Copilot

Aprenda a usar la extensión Azure Load Testing para Visual Studio Code para crear fácilmente pruebas de carga de Locust utilizando Copilot, iterar localmente y escalar sin esfuerzo en Azure. Tanto si no está familiarizado con Locust como con un experto en pruebas de rendimiento, la extensión Azure Load Testing simplifica la creación, la iteración y el escalado de pruebas, directamente desde el entorno de VS Code. Azure Load Testing es un servicio administrado que le permite ejecutar una prueba de carga a escala en la nube. Locust es una herramienta de prueba de carga de código abierto que le permite escribir todas las pruebas en el código de Python.

Este inicio rápido le guía a través de la generación, refinación y ejecución de pruebas de carga realistas. Al final, tiene un script de prueba de carga totalmente funcional generado a partir de una colección de Postman, colección de Insomnia o archivo .http, mejorado con tecnología de Copilot y listo para escalar en Azure Load Testing.

Prerrequisitos

  • Extensión azure Load Testing para VS Code. Descargue e instálelo aquí.
  • GitHub Copilot. Configure Copilot en VS Code para generar y refinar scripts de prueba. Si no tiene una suscripción, puede activar una evaluación gratuita.
  • Python y Locust. Necesario para ejecutar y validar los scripts de prueba de Locust localmente desde VS Code. Instale Locust aquí.
  • Una cuenta de Azure con una suscripción activa. Necesario para ejecutar pruebas de carga a escala en Azure Load Testing. Cree una cuenta gratuita.

Sugerencia

El chat de GitHub Copilot de VS Code ofrece varios modelos de INTELIGENCIA ARTIFICIAL. Puede cambiar de modelo mediante el selector de modelos en el campo de entrada del chat. Si no está seguro de cuál usar, se recomienda GPT-4o.

Abrir el tutorial

Para empezar, abra la paleta de comandos en VS Code y ejecute: Pruebas de carga: Abrir tutorial. En este tutorial se proporcionan los puntos de entrada clave de la extensión.

También puede acceder a las características directamente desde la paleta de comandos mediante el prefijo Load Testing . Algunos comandos usados habitualmente incluyen:

  • Pruebas de carga: Creación de una prueba de Locust

  • Pruebas de carga: ejecución de pruebas de carga (local)

  • Pruebas de carga: ejecución de pruebas de carga (Azure Load Testing)

    Captura de pantalla que muestra los puntos de entrada clave de la extensión de VS Code de Azure Load Testing.

Generación de un script Locust con Copilot

Puede generar un script Locust a partir de cualquier colección de Postman existente, colección de insomnio o archivo .http. Si el archivo contiene varias solicitudes, Copilot intenta secuenciarlos en un escenario cohesivo.

  1. Haga clic en el botón Create a Load Test (Crear una prueba de carga) en el tutorial o ejecute Load Testing: Create Locust test (Crear prueba Locust) desde la paleta de comandos.

  2. Puede elegir el origen para generar automáticamente un script de prueba de Locust:

    • Al seleccionar una colección de Postman, una colección de Insomnia o un archivo .http, Copilot extrae varias operaciones de API, datos de solicitud y detalles de autenticación, creando una prueba de carga más completa y realista.
    • Elegir dirección URL única le permite escribir una dirección URL de punto de conexión único, generando un script sencillo que puede personalizar o expandir.
  3. Para este tutorial, puede seleccionar Probar ejemplo: Pet Shop API, que usa el petstore-sample.http archivo para generar un script de prueba de Locust de ejemplo.

  4. Copilot analiza el archivo seleccionado y genera un script de prueba de carga basado en locust, secuenciando automáticamente las solicitudes de API para simular el uso real y controlar la autenticación de forma segura.

  5. Una vez generado el script, la ventana Chat de Copilot sugerirá otros pasos de configuración, como definir variables de entorno. Si Copilot sugiere variables de entorno, cree un .env archivo en el proyecto y agregue los valores recomendados.

Personalización del script de prueba de carga

Antes de ejecutar la prueba, puede refinarlo con Copilot. Por ejemplo, al examinar el script, es posible observar que el mismo contenido de solicitud se envía con cada petición.

payload = {
    "id": self.pet_id,
    "name": "Fluffy",
    "category": {"id": 1, "name": "Dogs"},
    "photoUrls": ["https://example.com/photo.jpg"],
    "tags": [{"id": 1, "name": "cute"}],
    "status": "available"
}

Para que la prueba sea más dinámica mediante la selección aleatoria de la carga de la solicitud:

  1. Abra el panel Chat de Copilot .
  2. Escriba: Randomize request payloads y presione Entrar.
  3. Copilot genera una modificación sugerida para introducir la selección aleatoria.
  4. Haga clic en Aplicar en el Editor que aparece encima del fragmento de código generado en la ventana Chat de Copilot.
  5. Después de revisar los cambios, haga clic en Mantener para aceptar y actualizar el script.
  6. Guardar el archivo

Ahora, cada solicitud simula una interacción de usuario más realista. El código tiene un aspecto similar al siguiente fragmento de código:

payload = {
    "id": self.pet_id,
    "name": f"Pet{random.randint(1, 1000)}",
    "category": {"id": random.randint(1, 10), "name": random.choice(["Dogs", "Cats", "Birds"])},
    "photoUrls": [f"https://example.com/photo{random.randint(1, 100)}.jpg"],
    "tags": [{"id": random.randint(1, 10), "name": random.choice(["cute", "friendly", "playful"])}],
    "status": random.choice(["available", "pending", "sold"])
}

Ejecutar la prueba de carga

Puede ejecutar la prueba de carga de dos maneras:

  • Ejecución local para la validación rápida
  • Ejecutar pruebas de carga a gran escala y en varias regiones en Azure Load Testing

Ejecución local para la validación rápida

Para validar rápidamente la prueba, ejecútelo localmente mediante Locust desde Visual Studio Code:

  1. Abra la paleta de comandos y ejecute: Load Testing: Run load test (local).

  2. La interfaz de usuario web locust se inicia automáticamente en un explorador. El servidor locust puede tardar unos segundos en estar listo y para que el explorador se abra.

  3. En la página Iniciar nueva prueba de carga , revise los campos de entrada y haga clic en Iniciar. Locust comienza a enviar solicitudes, registrar los errores y realizar un seguimiento de las estadísticas de rendimiento.

    Captura de pantalla que muestra la interfaz de usuario web de Locust para ejecutar una prueba de carga localmente.

  4. Explore la interfaz de usuario de Locust para analizar los tiempos de respuesta, las tasas de error y el rendimiento de las solicitudes.

    Captura de pantalla que muestra la interfaz de usuario web de Locust para ver y analizar los resultados de las pruebas localmente.

Sugerencia

Si Locust notifica errores para las solicitudes de Retrieve Pet y Update Pet, puede deberse a cómo procesa la API de la tienda de mascotas las solicitudes. Intente pedir a Copilot que "Agregue retrasos aleatorios entre solicitudes en run_scenario". Si sospecha un problema con el propio script, establezca DEBUG_MODE=True como una variable de entorno y vuelva a ejecutar la prueba para obtener información de depuración más detallada.

Si prefiere ejecutar la prueba desde un terminal de VS Code:

  1. Abra un terminal en VS Code.

  2. Ejecute el siguiente comando:

    locust -f path/to/locustfile.py -u 10 -r 2 --run-time 1m
    
    • -f path/to/locustfile.py: especifica el script de prueba de Locust.
    • -u 10: simula hasta 10 usuarios virtuales.
    • -r 2: Aumenta dos usuarios virtuales por segundo.
    • --run-time 1m: ejecuta la prueba durante 1 minuto.
  3. Abra un navegador en http://0.0.0.0:8089 para ver la interfaz web de usuario de Locust.

Escalado vertical en Azure Load Testing

Para escenarios de alta carga en los que necesita simular muchos miles de usuarios virtuales simultáneos en varias regiones, puede ejecutar la prueba en Azure Load Testing.

Para ejecutar una prueba a gran escala:

  1. Abra la paleta de comandos y ejecute: Load Testing: Run load test (Azure Load Testing).

  2. Seleccione Crear un archivo de configuración....

  3. Siga la configuración guiada, que incluye:

    • Inicie sesión en Azure y seleccione la suscripción.

    • Creación de un nuevo recurso de Azure Load Testing o selección de uno existente.

    • Elección de regiones de prueba de carga para distribuir el tráfico globalmente.

  4. Una vez completada la instalación, se genera un archivo de configuración de YAML (por ejemplo, loadtest.config.yaml) y se agrega a la carpeta raíz del área de trabajo.

    • Este archivo define el script Locust, los parámetros de carga, las variables de entorno, las regiones y cualquier otro archivo (por ejemplo, conjuntos de datos CSV).

    • Los parámetros predeterminados son 200 usuarios virtuales que se ejecutan durante 120 segundos en cada una de las regiones seleccionadas.

    • Confirme este archivo en el repositorio para reutilizar y automatizar futuras ejecuciones de pruebas de carga.

  5. Copilot valida la configuración antes de la ejecución. Siga las instrucciones proporcionadas en la ventana de chat. Si todo está correcto, el script de prueba y sus artefactos relacionados se cargan en Azure Load Testing y se preparan para su ejecución. Este proceso puede tardar hasta un minuto y el progreso se muestra en el panel Salida .

    Captura de pantalla que muestra el progreso de la prueba de carga en la consola de salida de VS Code.

  6. Cuando se inicia la prueba, aparece una notificación (mensaje flotante) en la esquina inferior derecha de VS Code. Haga clic en el botón Abrir en Azure Portal para supervisar la ejecución de pruebas en tiempo real.

  7. Cuando se inicia la prueba, aparece una notificación (mensaje del sistema) en la esquina inferior derecha. Haga clic en el botón Abrir en Azure Portal para supervisar la ejecución de pruebas en tiempo real.

    Captura de pantalla que muestra los resultados de la prueba de carga en Azure Load Testing.

Sugerencia

Para acceder rápidamente a los resultados de las pruebas de ejecuciones anteriores, use el comando: Load Testing: View load test runs( Pruebas de carga: Ver ejecuciones de pruebas de carga).

En este inicio rápido, las variables confidenciales como API_KEY se almacenaron en un .env archivo y se cargaron en el servicio en la nube. Sin embargo, como procedimiento recomendado, los secretos deben administrarse de forma segura en Azure Key Vault. La extensión proporciona instrucciones sobre cómo configurar esto.

Hasta ahora en este inicio rápido, las variables confidenciales como API_KEY se almacenaron en un .env archivo y se cargaron en el servicio en la nube. Sin embargo, como procedimiento recomendado, los secretos deben administrarse de forma segura en Azure Key Vault. La extensión proporciona instrucciones sobre cómo configurar esto.

  1. Abra la ventana Chat de Copilot , escriba @testing /setupLoadTestSecretsInAzure y presione Entrar.

  2. Copilot le guía por los pasos siguientes:

  3. Copilot le guía por:

    • Creación de un Azure Key Vault.
    • Asignación de una identidad administrada al recurso de Azure Load Testing.
    • Adición de secretos a Azure Key Vault.
    • Configurar su archivo YAML para hacer referencia a secretos de Key Vault en lugar de .env.

Siempre que modifique el script de Locust o la configuración de YAML, puede volver a ejecutar la prueba mediante la ejecución de La ejecución de pruebas de carga (Pruebas de carga de Azure).

Resumen

En este inicio rápido, ha usado la extensión Azure Load Testing para Visual Studio Code para crear fácilmente pruebas de carga de Locust mediante Copilot, iterar localmente y escalar sin esfuerzo en Azure. La extensión Azure Load Testing para VS Code simplifica el proceso de creación de un script de prueba realista para el escenario de prueba. Azure Load Testing abstrae la complejidad de configurar la infraestructura para simular la carga de usuarios a gran escala para la aplicación.

Puede expandir aún más la prueba de carga para supervisar también las métricas del lado servidor de la aplicación bajo carga y especificar las métricas de error de prueba para recibir alertas cuando la aplicación no cumple sus requisitos. Para asegurarse de que la aplicación sigue funcionando bien, también puede integrar pruebas de carga como parte del flujo de trabajo de integración continua e implementación continua (CI/CD).