Inicio Rápido
¿Qué es Bencher?
Bencher es un conjunto de herramientas de benchmarking continuo. ¿Alguna vez has tenido un impacto de regresión de rendimiento en tus usuarios? Bencher podría haber evitado que eso sucediera. Bencher te permite detectar y prevenir las regresiones de rendimiento antes de que lleguen a producción.
- Ejecutar: Ejecute sus benchmarks localmente o en CI usando sus herramientas de benchmarking favoritas. La CLI
bencher
simplemente envuelve su arnés de benchmarks existente y almacena sus resultados. - Seguir: Sigue los resultados de tus benchmarks con el tiempo. Monitoriza, realiza consultas y representa gráficamente los resultados utilizando la consola web de Bencher basándose en la rama de origen, el banco de pruebas y la medida.
- Capturar: Captura las regresiones de rendimiento en CI. Bencher utiliza analíticas de vanguardia y personalizables para detectar regresiones de rendimiento antes de que lleguen a producción.
Por las mismas razones que las pruebas unitarias se ejecutan en CI para prevenir regresiones funcionales, los benchmarks deberían ejecutarse en CI con Bencher para prevenir regresiones de rendimiento. ¡Los errores de rendimiento son errores!
Instala bencher
CLI
Linux, Mac, & Unix
Para Linux, Mac y otros sistemas similares a Unix, ejecuta lo siguiente en tu terminal:
Windows
Para los sistemas Windows, ejecuta lo siguiente en una terminal PowerShell:
🐰 Si obtienes un error que dice
running scripts is disabled on this system
:
Abre Powershell
conEjecutar como Administrador
- Ejecuta:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
- Introduce:
Y
- Vuelve a ejecutar este script
Para opciones de instalación adicionales, consulta cómo instalar bencher
CLI.
Ahora, probemos que tenemos instalado el bencher
CLI.
Ejecuta: bencher --version
Deberías ver:
Crea una Cuenta en Bencher Cloud
Bencher es de código abierto y autohospedable. Si estás interesado en autohospedarte, revisa el tutorial de Bencher Docker. Para este tutorial, vamos a usar Bencher Cloud.
Regístrate en Bencher Cloud
Una vez que hayas creado una cuenta, tendrás que confirmar tu dirección de correo electrónico. Revisa tu email para el enlace de confirmación. Después de eso, deberías estar conectado a Bencher Cloud.
Crear un token de API
Para utilizar la API de Bencher, necesitarás crear un token de API.
Navega a la Consola de Bencher.
Sitúa el cursor sobre tu nombre en la esquina superior derecha.
Debería aparecer un menú desplegable. Selecciona Tokens
.
Una vez en la página de tokens de API, haz clic en el botón ➕ Add
.
Añade un token de API
Una vez que hayas creado tu nuevo token de API, tendrás que copiarlo al portapapeles. En la terminal en la que planeas trabajar, exporta el token de API como una variable de entorno.
En Linux, Mac y otros sistemas similares a Unix, ejecuta: export BENCHER_API_TOKEN=TU_TOKEN
En Windows ejecuta: $env:BENCHER_API_TOKEN = "TU_TOKEN"
Si luego ejecutas echo $BENCHER_API_TOKEN
o Write-Output $env:BENCHER_API_TOKEN
respectivamente.
Deberías ver:
🐰 Nota: Si te mueves a una terminal diferente, tendrás que exportar el token de API nuevamente.
Crea un Proyecto
Ahora que tenemos una cuenta de usuario y un token de API, podemos crear un Proyecto. Primero, necesitamos saber a qué organización pertenecerá nuestro nuevo proyecto.
Ejecuta: bencher org list
Deberías ver algo como:
Tu salida debería ser ligeramente diferente a la anterior:
- El
uuid
es pseudorandom. - El
name
yslug
estarán basados en tu nombre de usuario. - Las marcas de tiempo
created
ymodified
serán de cuando te acabas de registrar.
Ahora podemos crear un nuevo Proyecto dentro de tu Organización.
Sustituye el slug
de tu Organización por el argumento organization
(es decir, YOUR_ORG_SLUG
) en el comando de abajo.
Ejecuta: bencher project create YOUR_ORG_SLUG --name "Save Walter White" --url http://www.savewalterwhite.com
Deberías ver algo como:
De nuevo, tu resultado debe ser ligeramente diferente al anterior.
Lo importante es que este comando funcione.
Toma nota del campo slug
del Proyecto (es decir, save-walter-white-1234abcd
).
Ejecuta un Informe
¡Finalmente estamos listos para recoger algunas métricas de benchmark! Por simplicidad, vamos a usar datos simulados en este tutorial.
Ejecuta: bencher mock
Deberías ver algo como:
Tu salida debe ser ligeramente diferente a la anterior, ya que los datos son pseudorandom. Lo importante es que este comando funcione.
Ahora ejecutemos un informe utilizando datos simulados de métricas benchmark.
Sustituye el slug
de tu Proyecto por el argumento --project
(es decir, YOUR_PROJECT_SLUG
) en el comando de abajo.
Ejecuta: bencher run --project YOUR_PROJECT_SLUG "bencher mock"
Deberías ver algo como:
Ahora puedes ver los resultados de cada una de las pruebas benchmark en el navegador.
Haz clic o copia y pega los enlaces desde View results
.
Solo debería haber un único punto de datos para cada benchmark, ¡así que añadamos más datos!
Primero, establezcamos nuestro slug
de Proyecto como una variable de entorno, para que no tengamos que proporcionarlo con el --project
en cada ejecución.
Ejecuta: export BENCHER_PROJECT=save-walter-white-1234abcd
Si luego ejecutas: echo $BENCHER_PROJECT
Deberías ver:
Vamos a ejecutar el mismo comando de nuevo sin --project
para generar más datos.
Ejecuta: bencher run "bencher mock"
Ahora, vamos a generar más datos, pero esta vez canalizaremos nuestros resultados en bencher run
.
Ejecuta: bencher mock | bencher run
A veces es posible que desees guardar tus resultados en un archivo y que bencher run
los recoja.
Ejecuta: bencher run --file results.json "bencher mock > results.json"
De igual manera, puedes tener un proceso separado que ejecute tus benchmarks y guarde tus resultados en un archivo. Entonces bencher run
simplemente los recogerá.
Ejecuta: bencher mock > results.json && bencher run --file results.json
Finalmente, generemos muchos datos usando el argumento --iter
de bencher run
.
Ejecuta: bencher run --iter 16 "bencher mock"
🐰 Consejo: Consulta los documentos CLI Subcommand de
bencher run
para obtener una descripción completa de todo lo quebencher run
puede hacer!
Generar una Alerta
Ahora que tenemos algunos datos históricos para nuestras pruebas benchmark, ¡generemos una Alerta! Las alertas se generan cuando se determina que el resultado de una prueba benchmark es una regresión de rendimiento. ¡Así que simulemos una regresión de rendimiento!
Ejecuta: bencher run "bencher mock --pow 8"
Debería haber una nueva sección al final de la salida llamada View alerts
:
Ahora puedes ver las Alertas para cada prueba benchmark en el navegador.
Haz clic o copia y pega los enlaces desde View alerts
.
🐰 Consejo: Consulta los documentos de Threshold & Alerts para obtener una descripción completa de cómo se detectan las regresiones de rendimiento!
🐰 ¡Felicidades! ¡Atrapaste tu primer regresión de rendimiento! 🎉