Soporte de TypeScript para k6
xk6-ts convierte a TypeScript en un ciudadano de primera clase en k6.
k6 run script.ts
import { User , newUser } from "./user" ;
export default ( ) => {
const user : User = newUser ( "John" ) ;
console . log ( user ) ;
} ;
interface User {
name : string ;
id : number ;
}
class UserAccount implements User {
name : string ;
id : number ;
constructor ( name : string ) {
this . name = name ;
this . id = Math . floor ( Math . random ( ) * Number . MAX_SAFE_INTEGER ) ;
}
}
function newUser ( name : string ) : User {
return new UserAccount ( name ) ;
}
export { User , newUser } ;
Eso es todo. Una prueba escrita en TypeScript se puede ejecutar directamente con k6. No se necesitan Node.js, babel, webpack, paqueter, paso de compilación, etc.
¿Crees que las características modernas de JavaScript hacen que TypeScript sea inútil? xk6-ts también se puede utilizar para admitir funciones modernas de JavaScript en k6.
k6 run script.js
import { newUser } from "./user" ;
export default ( ) => {
const user = newUser ( "John" ) ;
console . log ( user ) ;
} ;
xk6-ts se puede desactivar configurando la variable de entorno XK6_TS
en false
.
Para garantizar que los mensajes de error en tiempo de ejecución informen la posición correcta del código fuente, la generación de mapas fuente está habilitada de forma predeterminada. De lo contrario, debido a la transpilación y la agrupación, la posición del código fuente no tiene sentido. La generación de mapas de origen se puede deshabilitar estableciendo el valor de la variable de entorno XK6_TS_SOURCEMAP
en false
.
Soporte de lenguaje TypeScript
k6 run script.ts
Compatibilidad con módulos remotos (https) TypeScript/JavaScript
import { User } from 'https://example.com/user.ts'
console . log ( new User ( ) )
importar archivos JSON como objeto JavaScript
import object from './example.json'
console . log ( object )
importar archivos de texto como cadena JavaScript
import string from './example.txt'
console . log ( string )
mezclar y combinar JavaScript y TypeScript
Puede descargar binarios k6 prediseñados desde la página de Lanzamientos. Consulte la página Paquetes para ver imágenes de Docker k6 prediseñadas.
La herramienta de compilación xk6 se puede utilizar para construir un k6 que incluirá la extensión xk6-faker:
$ xk6 build --with github.com/szkiba/xk6-ts@latest
Para obtener más opciones de compilación y cómo usar xk6, consulte la documentación de xk6.
Debajo del capó, xk6-ts usa la biblioteca esbuild para transpilar y agrupar. Para ser precisos, xk6-ts usa la biblioteca k6pack, que se basa en esbuild.
Antes de la prueba, la transpilación y la agrupación se realizan sobre la marcha.
xk6-ts está actualmente integrado en k6 modificando la ejecución del comando k6 run
. Esta es una solución temporal, la integración final se realizará de otra forma. Esta integración temporal supone que el último argumento de la línea de comando k6 run
es el nombre del archivo de secuencia de comandos. Es decir, contrariamente a la forma en que funciona la línea de comando k6 run
original, xk6-ts no acepta indicadores después del nombre del archivo del script. Por cierto, esta suposición no es infrecuente; muchos otros comandos solo aceptan banderas antes de los argumentos posicionales. (el comando k6 run
original también acepta banderas después del argumento posicional).
Establecer la variable de entorno XK6_TS_BENCHMARK
en true
registrará el tiempo dedicado a la agrupación de TypeScript/JavaScript. Este tiempo también incluye la descarga de cualquier módulo remoto.