Ejecutar pruebas de volumen con Visual Studio y Azure VM
Pre-requisitos
- Tener una suscripción de Azure
- si no tienes una, puedes obtener un free trial
- Para está guía, Visual Studio 2015 Enterprise, si no tienes Enterprise, obtenerlo aquí.
- Para correr mas de 250 usuarios en la prueba de volumen es necesario una licencia de Visual Studio
En este post veremos como ejecutar pruebas de volumen en una maquina virtual en Azure.
Crear maquina virtual
Primero debemos de hacer signup en el portal de Azure , luego damos clic en "New" y damos clic en "Compute". Debemos de ver los siguientes "blades"A continuación elegimos la imagen de "Windows Server 2012 R2 Datacenter" y elegimos "Resource Manager" como nuestro modelo de despliegue, despues damos clic en "Create"
Una vez que diste crear, Azure va a pedir la siguiente información para crear el recurso:
- Name: Nombre de la maquina virtual.
- VM Disk Type: Utilizamos un disco "SSD" cuando necesitamos buen performance en lecturas I/O ideal para escenarios en producción. Los discos "HDD" son mas baratos y son buenos cuando nuestra VM no requiere lecturas a discos frecuentemente.
- User Name: Nombre de usuario para la maquina virtual.
- Password: Contraseña de acceso para nuestra maquina virtual.
- Subscription: Suscripción donde estará nuestra maquina virtual.
- Resource group: Selecciona o crea un nuevo "Resource group".
- Location: Región donde se se hará el despliegue de nuestra VM.
- Nota: Es recomendable elegir la región mas cerca a donde deseamos hacer nuestras pruebas de volumen.
A continuación vamos a elegir el tamaño de nuestra maquina virtual, por efectos de prueba, vamos a elegir el tamaño de "D1 Standard".
Para elegir el tamaño ideal para nuestra maquina virtual, les comparto una tabla donde muestra el requerimiento de hardware para correr nuestras pruebas de volumen:
Visual Studio (IDE) System Requirements
- Windows 7 SP1 or above, or
- Windows Server 2008 R2 SP1 or above.
- A minimum of 1.6GHz, 1.0 GB of RAM (1.5 if working on a VM).
- 10 GB of available HD space (20 GB for VS 2013).
- Ver detalle aquí:
- Visual Studio Enterprise 2015 with Update 1
- Visual Studio Ultimate 2013 with Update 5
Controller and Agents Hardware Requirements
Configuration | Component | CPU | HD | Memory |
< 500 virtual users | Test agent | 2.6 GHz | 10 GB | 2 GB |
< 1000 virtual users | Test agent | Dual processor 2.6 GHz | 10 GB | 2 GB |
N x 1000 virtual users | Test agent | Scale out to N agents each with Dual 2.6 Ghz | 10 GB | 2 GB |
< 30 computers in the test environment. This includes agents and servers under test. | Test Controller | 2.6 GHz | Read load test repository section | |
N x 30 computers in the test environment. This includes agents and servers under test. | Test Controller | N 2.6 GHz processors | Read load test repository section |
Luego damos de nuevo clic en "OK" para crear la maquina virtual
Nota: Podemos descargar nuestro template de esta maquina virtual gracias a ARM, esto nos puede servir si queremos desplegar una copia exacta de esta VM.
Ahora solo esperamos a que Azure despliegue nuestra maquina virtual
Finalizado el despliegue, buscamos nuestro recurso desde el buscador del portal de Azure y damos clic en el recurso.
Luego damos clic en "Connect" para descargar nuestro ".RPD" par conectarnos remotamente.
Ahora abrimos el archivo ".RPD" e ingresamos nuestras credenciales.
Instalar Visual Studio
Ahora procedemos a instalar Visual Studio Enterprise 2015.
Enlace de descarga: Visual Studio Enterprise 2015
Instalamos la opción por "Default" de Visual Studio.
Finalizada la instalación, podemos iniciar Visual Studio y luego crear un proyecto de tipo "Web Performance and Load Test"
En Visual Studio damos clic en "Create new proyect" y elegimos:
Templates > Visual C# > Test > Web Performance and Load Test Project
Luego damos "OK"
Crear Web Test
Ya que creamos el proyecto, veremos los siguientes archivos:
Hacemos clic en nuestro .webtest para grabar nuestras primeras pruebas
Nota: Debemos de tener instalado el "add-on" de recording en Internet Explorer, cuando instalas Visual Studio, el mismo te agrega el add-on.
Vamos a dar clic en "add recording", automáticamente Visual Studio va abrir el navegador.
Todo lo que hagamos en el navegador va a ser grabado y luego Visual Studio va a crear los "test" los cuales cuentan con todo lo datos de "request", "response" junto con sus respectivos cabeceros.
Estas grabaciones también graban los parámetros de las peticiones, ya sean "GET", "POST", "PUT", etc.
Ya que iniciamos la grabación, insertamos la dirección de la aplicación que deseamos hacer pruebas, y empezamos a navegar en ella, esto con el objetivo de grabar el comportamiento que debería de tener la aplicación. En nuestro caso, vamos a navegar las tres páginas de muestra de una aplicación .NET Core que desplegué en Azure Container Services.
Nota: Si deseas crear un aplicación y desplegarla en Azure Container Services, sigue la siguiente guía:
Despliegue de contenedores Docker a Azure Container Services usando Visual Studio y .NET Core
Una vez que terminemos de grabar nuestras pruebas, vamos a dar clic en "Stop" para terminar la grabación. Visual Studio en automatico va a cerrar IE y empezará a recopilar las información grabada.
Ya que finalicé, podemos limpiar nuestras pruebas. En este caso Visual Studio grabó algunas request de "Bing", para nuestras pruebas no necesitamos esas peticiones.
Ahora podemos ejecutar nuestras pruebas dando clic en "Run Test"
Crear pruebas de volumen
Vamos agregar un archivo de LoadTest y hacemos clic en "Add"
Templates > Visual C# > Test > Load Test
Siguientes pasosVamos agregar un archivo de LoadTest y hacemos clic en "Add"
Templates > Visual C# > Test > Load Test
Una vez que agregemos el archivo, nos mostrará un wizard con las configuraciones de las pruebas de volumen. Por ahora vamos a seleccionar la opción de "On-Premise Load Test" ya que correremos las pruebas localmente en nuestra VM. Por efectos de prueba, no vamos configurar nada y dejaremos todos los valores por "default"
Damos clic en "Finish" y veremos lo siguiente en Visual Studio:
Ya que agregemos nuestro web test que grabamos anteriormente, elegimos un patrón de carga. Los patrones de carga (Load pattern) sirve para decirle a Visual Studio (específicamente al Test Controller) como es que va a ejecutar las pruebas en función de usuarios.
Por ahora dejamos el patrón de carga por default, con un configuración sencilla. Luego en otras publicaciones, veremos como utilizar otros patrones de carga mas a detalle.
Damos clic derecho en "Constant Load Pattern" para configurar los usuarios concurrente que realizarán la simulación de las pruebas.
Una vez configurado los usuarios, procedemos a ejecutar la prueba de volumen. (en un escenario real, realizamos configuraciones mas complejas y obviamente con miles y miles de usuarios)
Damos clic en "Run Load Test" y veremos como nuestro load test esta corriendo satisfactoriamente
Ya que el test a finalizado, podemos ver un resumen de los resultados de la prueba:
Esta publicación esta enfocada a dar los primeros pasos para crear y ejecutar pruebas de rendimiento y volumen. A su vez aprendimos como crear pruebas automatizadas de nuestra aplicación. En futuras publicaciones veremos como probar una aplicación compleja donde configuraremos nuestras pruebas en escenarios de la vida real.
- Ejecutar pruebas de volumen con Visual Studio y Team Services
Comments
Post a Comment