Dukungan TypeScript untuk k6
xk6-ts menjadikan TypeScript sebagai warga kelas satu di 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 } ;
Itu saja. Tes yang ditulis dalam TypeScript dapat dijalankan langsung dengan k6. Tidak perlu Node.js, babel, webpack, bundler, build step, dll.
Apakah menurut Anda fitur JavaScript modern membuat TypeScript tidak ada gunanya? xk6-ts juga dapat digunakan untuk mendukung fitur JavaScript modern di k6.
k6 run script.js
import { newUser } from "./user" ;
export default ( ) => {
const user = newUser ( "John" ) ;
console . log ( user ) ;
} ;
xk6-ts dapat dinonaktifkan dengan mengatur variabel lingkungan XK6_TS
ke false
.
Untuk memastikan bahwa pesan kesalahan runtime melaporkan posisi kode sumber yang benar, pembuatan peta sumber diaktifkan secara default. Jika tidak, karena transpilasi dan bundling, posisi kode sumber tidak ada artinya. Pembuatan peta sumber dapat dinonaktifkan dengan mengatur nilai variabel lingkungan XK6_TS_SOURCEMAP
ke false
.
Dukungan bahasa TypeScript
k6 run script.ts
dukungan modul TypeScript/JavaScript jarak jauh (https).
import { User } from 'https://example.com/user.ts'
console . log ( new User ( ) )
mengimpor file JSON sebagai objek JavaScript
import object from './example.json'
console . log ( object )
mengimpor file teks sebagai string JavaScript
import string from './example.txt'
console . log ( string )
mencampur dan mencocokkan JavaScript dan TypeScript
Anda dapat mengunduh binari k6 bawaan dari halaman Rilis. Periksa halaman Paket untuk image Docker k6 bawaan.
Alat build xk6 dapat digunakan untuk membuat k6 yang akan menyertakan ekstensi xk6-faker:
$ xk6 build --with github.com/szkiba/xk6-ts@latest
Untuk opsi build selengkapnya dan cara menggunakan xk6, lihat dokumentasi xk6.
Di bawah tenda, xk6-ts menggunakan perpustakaan esbuild untuk transpiling dan bundling. Tepatnya, xk6-ts menggunakan perpustakaan k6pack, yang didasarkan pada esbuild.
Sebelum uji coba, transpilasi dan bundling dilakukan dengan cepat.
xk6-ts saat ini diintegrasikan ke dalam k6 dengan memodifikasi eksekusi perintah k6 run
. Ini adalah solusi sementara, integrasi akhir akan dilakukan dengan cara yang berbeda. Integrasi sementara ini mengasumsikan bahwa argumen terakhir dari baris perintah k6 run
adalah nama file skrip. Artinya, bertentangan dengan cara kerja baris perintah k6 run
asli, xk6-ts tidak menerima tanda setelah nama file skrip. Omong-omong, asumsi ini biasa terjadi, banyak perintah lain hanya menerima tanda sebelum argumen posisi. (perintah k6 run
asli juga menerima tanda setelah argumen posisi).
Menyetel variabel lingkungan XK6_TS_BENCHMARK
ke true
akan mencatat waktu yang dihabiskan untuk bundling TypeScript/JavaScript. Kali ini juga termasuk mengunduh modul jarak jauh apa pun.