دعم 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، أو المجمع، أو خطوة البناء، وما إلى ذلك.
هل تعتقد أن ميزات 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
.
للتأكد من أن رسائل خطأ وقت التشغيل تُبلغ عن موضع التعليمات البرمجية المصدر الصحيح، يتم تمكين إنشاء خريطة المصدر افتراضيًا. خلاف ذلك، بسبب النقل والتجميع، فإن موضع الكود المصدري لا معنى له. يمكن تعطيل إنشاء خريطة المصدر عن طريق تعيين قيمة متغير البيئة 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 )
استيراد الملفات النصية كسلسلة جافا سكريبت
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. تتضمن هذه المرة أيضًا تنزيل أي وحدات عن بعد.