Primeros pasos con Allure Tinybench
Registre los resultados de los benchmarks de Tinybench como métricas de rendimiento en su Allure Report.
Configuración
1. Prepare su proyecto
Asegúrese de tener Node.js instalado.
Asegúrese de tener Tinybench instalado. Allure Tinybench admite Tinybench 6.
Asegúrese de tener Allure Report 3 instalado. Si no es así, siga las instrucciones de instalación.
Alternativamente, instale Allure Report 3 como un paquete npm local:
bashnpm install --save-dev allureAllure Tinybench no se ejecuta por sí solo: se invoca dentro de una prueba que se ejecuta con una integración de Allure para JavaScript, como Allure Vitest. Instálelo junto con la integración.
Por ejemplo, para usarlo con Vitest:
bashnpm install --save-dev allure-tinybench allure-js-commons tinybench allure-vitest vitestbashyarn add --dev allure-tinybench allure-js-commons tinybench allure-vitest vitestbashpnpm add -D allure-tinybench allure-js-commons tinybench allure-vitest vitestLuego configure la integración como se describe en su documentación, por ejemplo, Primeros pasos con Allure Vitest.
En una prueba, ejecute el benchmark con
runWithAllure()en lugar debench.run():jsimport { runWithAllure } from "allure-tinybench"; import { Bench } from "tinybench"; import { test } from "vitest"; test("parse benchmark", async () => { const bench = new Bench({ time: 100 }); bench.add("json.parse.simple", () => JSON.parse('{"status":"passed"}')); bench.add("json.parse.nested", () => JSON.parse('{"a":{"b":{"c":[1,2,3]}}}')); await runWithAllure(bench); });Por defecto, Tinybench ejecuta cada tarea durante aproximadamente un segundo, lo cual puede superar el tiempo límite de su ejecutor de pruebas, por ejemplo, 5 segundos en Vitest. Configure un
timemás corto para el benchmark, como en el ejemplo, o aumente el tiempo límite de la prueba.
2. Ejecute las pruebas
Ejecute sus pruebas de la misma manera que lo haría normalmente. Por ejemplo, con Vitest:
npx vitest runyarn vitest runpnpm vitest runPara cada tarea de benchmark, se guarda una métrica de rendimiento en allure-results o en el directorio que su integración esté configurada para usar. El nombre de la tarea se convierte en la clave de la métrica, y la duración media de la tarea, en milisegundos, se convierte en el valor. Consulte la referencia de Allure Tinybench para más detalles.
3. Genere un reporte
Finalmente, convierta los resultados de las pruebas en un reporte HTML con el comando allure generate. Este guarda el reporte en el directorio allure-report. Para ver el reporte, use el comando allure open.
Los resultados del benchmark se muestran en la sección Metrics del reporte, consulte Ver métricas en el reporte.
Configurar las métricas
Para dar a las métricas títulos legibles y unidades, y para agruparlas, agregue la sección performance al archivo de configuración de Allure:
import { defineConfig } from "allure";
export default defineConfig({
performance: {
groups: {
json: { title: "JSON parsing" },
},
metrics: {
"json.parse.simple": {
title: "Parse a simple object",
unit: "ms",
better: "lower",
group: "json",
},
"json.parse.nested": {
title: "Parse a nested object",
unit: "ms",
better: "lower",
group: "json",
},
},
},
});{
"performance": {
"groups": {
"json": { "title": "JSON parsing" }
},
"metrics": {
"json.parse.simple": {
"title": "Parse a simple object",
"unit": "ms",
"better": "lower",
"group": "json"
},
"json.parse.nested": {
"title": "Parse a nested object",
"unit": "ms",
"better": "lower",
"group": "json"
}
}
}
}performance:
groups:
json:
title: JSON parsing
metrics:
json.parse.simple:
title: Parse a simple object
unit: ms
better: lower
group: json
json.parse.nested:
title: Parse a nested object
unit: ms
better: lower
group: jsonTambién puede rastrear las métricas a lo largo de las ejecuciones y verificarlas con quality gates, consulte Performance Metrics.