k6 soporta la ejecución de scripts de prueba con diferentes modos de compatibilidad de ECMAScript utilizando la opción CLI run --compatibility-mode o la variable de entorno K6_COMPATIBILITY_MODE.
Actualmente hay dos modos disponibles:
Base
VM JavaScript puro de Golang que soporta ES5.1+. Utilice este modo si sus scripts ya están escritos utilizando sólo las características de ES5.1, o fueron previamente transformados por Babel, para reducir el tiempo de inicio, el uso de RAM y mejorar el rendimiento. Consulte el proyecto k6-es6 para ver un ejemplo de configuración de Webpack que realiza esta transformación fuera de k6.
Ejemplo básico
⚠️ Sobre require()
Tenga en cuenta que require() es una implementación personalizada de k6 para la carga de módulos, que no se comporta de la misma manera que la llamada require() en Node.js. Específicamente, sólo maneja la carga de módulos incorporados en k6, scripts en el sistema de archivos local, y scripts remotos a través de HTTP(S), pero no soporta el algoritmo de resolución de módulos de Node.js.
Ejemplo avanzado
Extended
Transforma los scripts a ES5.1 utilizando Babel con el preajuste ES2015. Este es el modo por defecto, proporcionando una mayor compatibilidad con JavaScript, a expensas del tiempo de inicio, el uso de RAM y el rendimiento.
Comparación de rendimiento
Hay una diferencia sustancial en el rendimiento entre ambos modos, como se muestra en el tiempo de GNU a continuación, especialmente cuando se ejecutan pruebas con un gran número de VUs: