Suporte TypeScript para k6
xk6-ts torna o TypeScript um cidadão de primeira classe em 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 } ;
É isso. Um teste escrito em TypeScript pode ser executado diretamente com k6. Não há necessidade de Node.js, babel, webpack, bundler, etapa de construção, etc.
Você acha que os recursos modernos do JavaScript tornam o TypeScript inútil? xk6-ts também pode ser usado para oferecer suporte a recursos JavaScript modernos no k6.
k6 run script.js
import { newUser } from "./user" ;
export default ( ) => {
const user = newUser ( "John" ) ;
console . log ( user ) ;
} ;
xk6-ts pode ser desabilitado definindo a variável de ambiente XK6_TS
como false
.
Para garantir que as mensagens de erro de tempo de execução relatem a posição correta do código-fonte, a geração do mapa de origem é habilitada por padrão. Caso contrário, devido à transpilação e agrupamento, a posição do código-fonte não terá sentido. A geração do mapa de origem pode ser desativada configurando o valor da variável de ambiente XK6_TS_SOURCEMAP
como false
.
Suporte à linguagem TypeScript
k6 run script.ts
suporte remoto ao módulo TypeScript/JavaScript (https)
import { User } from 'https://example.com/user.ts'
console . log ( new User ( ) )
importando arquivos JSON como objeto JavaScript
import object from './example.json'
console . log ( object )
importando arquivos de texto como string JavaScript
import string from './example.txt'
console . log ( string )
misture e combine JavaScript e TypeScript
Você pode baixar binários k6 pré-construídos na página Releases. Verifique a página Pacotes para imagens Docker k6 pré-construídas.
A ferramenta de construção xk6 pode ser usada para construir um k6 que incluirá a extensão xk6-faker:
$ xk6 build --with github.com/szkiba/xk6-ts@latest
Para mais opções de construção e como usar o xk6, verifique a documentação do xk6.
Nos bastidores, o xk6-ts usa a biblioteca esbuild para transpilar e agrupar. Para ser mais preciso, o xk6-ts usa a biblioteca k6pack, que é baseada no esbuild.
Antes da execução do teste, a transpilação e o agrupamento são feitos dinamicamente.
xk6-ts está atualmente integrado ao k6 modificando a execução do comando k6 run
. Esta é uma solução temporária, a integração final será feita de forma diferente. Esta integração temporária assume que o último argumento da linha de comando k6 run
é o nome do arquivo de script. Ou seja, ao contrário da forma como funciona a linha de comando k6 run
original, xk6-ts não aceita sinalizadores após o nome do arquivo de script. A propósito, esta suposição não é incomum, muitos outros comandos só aceitam sinalizadores antes de argumentos posicionais. (o comando k6 run
original também aceita sinalizadores após o argumento posicional).
Definir a variável de ambiente XK6_TS_BENCHMARK
como true
registrará o tempo gasto no empacotamento TypeScript/JavaScript. Desta vez também inclui o download de quaisquer módulos remotos.