รองรับ TypeScript สำหรับ k6
xk6-ts ทำให้ TypeScript เป็นพลเมืองชั้นหนึ่งใน 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 } ;
แค่นั้นแหละ. การทดสอบที่เขียนด้วย TypeScript สามารถรันได้โดยตรงกับ k6 ไม่จำเป็นต้องใช้ Node.js, babel, webpack, Bundler, ขั้นตอนการสร้าง ฯลฯ
คุณคิดว่าฟีเจอร์ JavaScript สมัยใหม่ทำให้ TypeScript ไม่มีจุดหมายหรือไม่ xk6-ts ยังสามารถใช้เพื่อสนับสนุนคุณสมบัติ JavaScript สมัยใหม่ใน k6 ได้
k6 run script.js
import { newUser } from "./user" ;
export default ( ) => {
const user = newUser ( "John" ) ;
console . log ( user ) ;
} ;
xk6-ts สามารถปิดการใช้งานได้โดยการตั้งค่าตัวแปรสภาพแวดล้อม XK6_TS
เป็น false
เพื่อให้แน่ใจว่าข้อความแสดงข้อผิดพลาดรันไทม์รายงานตำแหน่งซอร์สโค้ดที่ถูกต้อง การสร้างซอร์สแมปจะถูกเปิดใช้งานตามค่าเริ่มต้น มิฉะนั้น เนื่องจากการโยกย้ายและการรวมกลุ่ม ตำแหน่งของซอร์สโค้ดจึงไม่มีความหมาย การสร้าง Sourcemap สามารถปิดใช้งานได้โดยตั้งค่าของตัวแปรสภาพแวดล้อม XK6_TS_SOURCEMAP
เป็น false
รองรับภาษา TypeScript
k6 run script.ts
รองรับโมดูล TypeScript / JavaScript ระยะไกล (https)
import { User } from 'https://example.com/user.ts'
console . log ( new User ( ) )
การนำเข้าไฟล์ JSON เป็นวัตถุ JavaScript
import object from './example.json'
console . log ( object )
การนำเข้าไฟล์ข้อความเป็นสตริง JavaScript
import string from './example.txt'
console . log ( string )
ผสมผสานและจับคู่ JavaScript และ TypeScript
คุณสามารถดาวน์โหลดไบนารี k6 ที่สร้างไว้ล่วงหน้าได้จากหน้าเผยแพร่ ตรวจสอบหน้าแพ็คเกจเพื่อดูอิมเมจ k6 Docker ที่สร้างไว้ล่วงหน้า
เครื่องมือสร้าง xk6 สามารถใช้เพื่อสร้าง k6 ซึ่งจะรวมส่วนขยาย xk6-faker:
$ xk6 build --with github.com/szkiba/xk6-ts@latest
สำหรับตัวเลือกบิวด์เพิ่มเติมและวิธีใช้ xk6 โปรดดูเอกสารประกอบ xk6
ภายใต้ประทุน xk6-ts ใช้ไลบรารี esbuild สำหรับการถ่ายโอนและการรวมกลุ่ม เพื่อให้แม่นยำยิ่งขึ้น xk6-ts ใช้ไลบรารี k6pack ซึ่งอิงจาก esbuild
ก่อนการทดสอบการทำงาน การถ่ายเทและการรวมกลุ่มจะดำเนินการทันที
ขณะนี้ xk6-ts ถูกรวมเข้ากับ k6 โดยการแก้ไขการดำเนินการของคำสั่ง k6 run
นี่เป็นวิธีแก้ปัญหาชั่วคราว การบูรณาการขั้นสุดท้ายจะดำเนินการด้วยวิธีอื่น การรวมชั่วคราวนี้ถือว่าอาร์กิวเมนต์สุดท้ายของบรรทัดคำสั่ง k6 run
คือชื่อของไฟล์สคริปต์ นั่นตรงกันข้ามกับวิธีการทำงานของ k6 run
ดั้งเดิม xk6-ts ไม่ยอมรับแฟล็กหลังชื่อไฟล์สคริปต์ อย่างไรก็ตาม สมมติฐานนี้ไม่ใช่เรื่องแปลก คำสั่งอื่นๆ จำนวนมากยอมรับเฉพาะแฟล็กก่อนอาร์กิวเมนต์ตำแหน่งเท่านั้น (คำสั่ง k6 run
ดั้งเดิมยังยอมรับแฟล็กหลังอาร์กิวเมนต์ตำแหน่งด้วย)
การตั้งค่าตัวแปรสภาพแวดล้อม XK6_TS_BENCHMARK
เป็น true
จะบันทึกเวลาที่ใช้ในการรวมกลุ่ม TypeScript/JavaScript คราวนี้ยังรวมถึงการดาวน์โหลดโมดูลระยะไกลด้วย