عائلتا أدوات اختبار أداء UI
مخبرية، اصطناعية
تحميل الصفحة في ظروف مضبوطة ومنحها درجة.
قابلة للتكرار والمقارنة. تقيس بيئة نظيفة ببيانات نظيفة.
ميدانية، مستخدمون حقيقيون
جمع التوقيتات من جلسات فعلية.
صادقة مع الواقع. تُخبرك بعد أن يكون الأمر قد وقع لأحدهم فعلاً.
ما يقع بينهما
تعمل الأدوات المخبرية على بيئة اختبار، أي على مجموعة بيانات صغيرة. أما الأدوات الميدانية فترى أحجام البيانات الحقيقية ولا تُبلّغ إلا بعد أن يكون مستخدم حقيقي قد عانى. وهكذا فإن شاشة سريعة مع عشرة صفوف وغير قابلة للاستخدام مع ألفَي صف تجتاز المختبر ثم تظهر في الميدان، وهو أسوأ ترتيب ممكن.
سدّ هذه الفجوة لا يتطلب فئة جديدة من الأدوات، بل حسابًا مُعبّأً بالبيانات بحجم عميل كبير، وتشغيل المسارات نفسها عليه قبل الإصدار.
الاختيار داخل كل عائلة
الأدوات المخبرية: فضّل ما يقيس زمن استجابة التفاعل، لا التحميل الأولي وحده. فالتحميل كلفة تُدفع مرة واحدة في كل جلسة، أما التفاعل فيحدث باستمرار.
الأدوات الميدانية: تحقّق مما إذا كان بإمكانك التقسيم حسب حجم الحساب. فالمتوسط المحسوب على جميع العملاء يُخفي بالضبط أولئك الذين يعانون.
كلتاهما: قارن بسجلك التاريخي أنت لا بدرجة مطلقة. فالعتبات المستعارة نادرًا ما تنتقل بين المنتجات.
تقسيم البيانات الميدانية حتى تعني شيئًا
مراقبة المستخدمين الحقيقيين هي الأصدق بين العائلتين، ومن السهل تجريدها من كل فائدة بالنظر إلى التجميع الخاطئ.
المتوسط المحسوب على جميع المستخدمين يخلط عميلاً لديه خمسون سجلاً بعميل لديه خمسون ألفًا، والثاني هو الإشارة كلها. والأمر نفسه ينطبق على خلط الأجهزة، وخلط المناطق الجغرافية، وخلط مستخدميك الداخليين بعملائك. وقد يتحسّن الرقم الإجمالي بينما تزداد أكبر حساباتك سوءًا باطراد، وهذا هو نمط الفشل الذي يكلّفك التجديدات.
قسّم حسب البُعد الذي يتباين منتجك عليه فعلاً، وهو في معظم برمجيات الأعمال حجم الحساب لا الجهاز أو الشبكة. وإن كانت الأداة عاجزة عن التقسيم بهذه الطريقة، فالرقم الذي تُبلّغ عنه لا يقيس ما يهمّك.
الشرط المسبق الذي لا يذكره أحد
الشاشة التي تُعرض فورًا لأن الطلب فشل بصمت ستنال درجة ممتازة في أداة مخبرية. الصحّة الوظيفية هي الأرضية التي يقوم عليها كل رقم أداء، والتحقق منها أرخص من أي من الأدوات أعلاه.
الطرفية
npm install -g @testsprite/testsprite-cli
testsprite setup
الإعداد نفسه متاح في لوحة تحكم TestSprite إن كنت تفضّل عدم تثبيت أي شيء محليًا. أما بقية ما يوفّره CLI ففي مستودع CLI.
أين تعمل كل منها
الأدوات المخبرية داخل خط المعالجة، مع كل طلب سحب، بالمقارنة مع خط الأساس لديك. والمراقبة الميدانية عاملة على الدوام. والتحقق الوظيفي على حساب بحجم واقعي، مع كل تغيير أيضًا، لأن تلك هي الفجوة التي تتركها الاثنتان الأخريان مفتوحة.
المُشغِّل أهم من الآلية. فتوجيهه إلى حدث النشر لديك يعني فحص كل تغيير دون أن يقرر أحد ذلك؛ إذ يقوم GitHub App بذلك من لوحة التحكم، وخطوة في GitHub Actions تقوم به من داخل سير عملك.
موضع TestSprite بين المختبر والميدان
في الفجوة التي تتركها الاثنتان مفتوحة: تشغيل مسارات حقيقية على بيئة ببيانات واقعية، قبل الإصدار. تُولَّد التغطية من منتجك وتعمل مع كل تغيير، فالشاشة التي تعمل مع عشرة صفوف وتنهار مع ألفَي صف يُكشف عنها بالسلوك لا بقيمة مئينية.
وهو يوفّر أيضًا الشرط المسبق الذي لا تفحصه أيٌّ من العائلتين. فالصفحة التي تُعرض فورًا لأن عملية الجلب فشلت هي سريعة وخاطئة، ولن تُخبرك بذلك درجة مخبرية.
تواصل الأدوات المخبرية قياس توقيت التحميل والتفاعل، وتواصل المراقبة الميدانية الإبلاغ عمّا اختبره المستخدمون. والفائدة هنا أن العطل الذي لا يظهر إلا عند حجم بيانات أكبر عملائك يُكتشف قبل أن يكتشفه ذلك العميل.
هل ينتمي TestSprite إلى هذه الفئة؟
لا. فهو يتحقق من أن المسارات تتصرف تصرفًا صحيحًا، وهو الشرط المسبق لأن يعني أي رقم أداء شيئًا.
هل نحتاج إلى الأدوات المخبرية والميدانية معًا؟
نعم. يمنحك المختبر إشارة قابلة للتكرار قبل الإصدار، ويُخبرك الميدان بما حدث فعلاً. ولا يكفي أيٌّ منهما وحده.
وماذا عن المراقبة الاصطناعية؟
هي أداة مخبرية مُوجّهة إلى بيئة الإنتاج وفق جدول زمني. مفيدة لقياس التوافر، لكنها تظل تعمل على أي بيانات يحتويها ذلك الحساب.
ما الحجم الذي ينبغي أن يكون عليه حساب الاختبار المُعبّأ بالبيانات؟
بحجم أكبر عملائك الحقيقيين. وأي حجم أصغر يعني أنك تختبر حالة غير موجودة في بيئة الإنتاج.
هل ينبغي أن تمنع درجات الأداء عمليات الدمج؟
التراجع الكبير مقارنةً بخط الأساس لديك، نعم. أما عتبة درجة مطلقة فلا في العادة، لأنها تتابع المعيار المرجعي لا منتجك.
المختبر نظيف أكثر مما ينبغي، والميدان متأخر أكثر مما ينبغي.
أدوات اختبار أداء UI إما مخبرية وإما ميدانية، وكلتاهما تُغفل التدهور الذي يصاحب أحجام البيانات الحقيقية. عبّئ حسابًا بحجم عميل كبير، وشغّل المسارات عليه قبل الإصدار، وتحقق من الصحّة الوظيفية أولاً.