احترف اختبار الأداء مع k6 — اعرف كم يتحمّل تطبيقك قبل ما ينهار
تعلّم الـ Performance Testing من الأساس: الـ Load و Stress و Spike و Endurance، والـ Virtual Users والـ Think Time، ثم k6 عملياً على تطبيق حقيقي — Register و Login و Todos، الـ VUs والـ Iterations، التقارير، وتجهيز بيانات users مستقلة لكل VU.
4 درس مجاني افتحها الآن — بلا حساب وبلا بطاقة.
ابدأ أول درس مجانيتطبيقك يعمل… لكن هل يتحمّل؟
كل الـ Test Cases عندك خضراء. الـ Login يعمل، الـ Checkout يعمل، والـ API ترجع 200.
ثم يبدأ العرض الكبير، ويدخل ألف مستخدم بنفس الدقيقة. فجأة الصفحة تأخذ 12 ثانية، والطلبات تفشل، والـ server يسقط. ولا Test واحد عندك كان رح يكشف هذا، لأنه كلها كانت تسأل «هل يعمل؟»، وما حدا سأل «هل يتحمّل؟».
هذا هو الـ Performance Testing. وهذا الكورس يأخذك من الفكرة نفسها لحد Load Test حقيقي تكتبه بـ k6 على تطبيق حقيقي.
ماذا ستتعلم؟
المرحلة الأولى — تفهم ما هو الـ Performance Testing
قبل أي أداة، ستعرف الفرق بين الـ Functional Testing والـ Performance Testing، والأنواع التي لازم تفرّق بينها: Load و Stress و Spike. كل نوع بسؤاله، وبمثال واقعي، وبمتى تستخدمه.
المرحلة الثانية — المفاهيم التي يقوم عليها أي Test
تبدأ بالـ Endurance Testing: المشاكل التي لا تظهر إلا بعد ساعات من التشغيل. ثم أنواع الـ Users: Registered و Concurrent و Simultaneous و Virtual، لأنه «التطبيق يتحمّل ألف مستخدم» جملة بلا معنى إذا ما عرفت أي مستخدمين. ثم الـ Ramp up والـ Steady والـ Ramp down، والـ Think Time الذي يجعل الـ Test يشبه مستخدم حقيقي وليس آلة.
المرحلة الثالثة — k6 من أول سطر
تنزّل k6، وتكتب أول Test حول الـ export default function، وترسل طلبات HTTP وتقرأ الـ Response. ثم تعمل clone لتطبيق todo QAcart v2 وتشغّله على جهازك، وهو التطبيق الذي ستختبره لآخر الكورس.
المرحلة الرابعة — أول Flow حقيقي
تراقب الـ Network لتعرف ماذا يرسل التطبيق، ثم تحوّله إلى k6: Register، ثم Login مع الـ Token والـ Cookies، ثم جلب الـ Todos. وبعدها يصبح الـ script حملاً حقيقياً: VUs و Duration و Iterations، و __VU و __ITER حتى ما تتكرر البيانات، و sleep للـ Think Time.
المرحلة الخامسة — التقارير وبيانات الاختبار
تتابع الـ Test وهو يعمل على الـ Web Dashboard وتصدّر تقرير HTML. ثم تحل المشكلة التي تكسر أغلب الـ Load Tests: كل VU لازم يكون مستخدم مستقل. تجهّز الـ users مسبقاً، وتربط كل VU بحسابه، سواء من الـ Database أو من ملف JSON أعطاك إياه فريق آخر.
المرحلة السادسة — صمّم أنواع الاختبار بالكود
تنقل الإعدادات من الـ Terminal إلى export const options، وتكتب الـ Ramp up والـ Steady والـ Ramp down كـ stages. ثم تطبّق الأنواع الأربعة على الـ Todo Flow نفسه: Load و Stress و Spike و Endurance، كل واحد بنمط حمله، وتقرأ الـ Report لكل واحد.
المرحلة السابعة — الـ setup والـ teardown
تجهّز قبل الـ Test وتنظّف بعده. تنقل الـ Login من كل iteration إلى الـ setup، فيعمل كل الـ users Login مرة واحدة، وكل VU يأخذ الـ Token الخاص فيه. وبعد ما ينتهي الـ Test، تعمل Logout لهم كلهم في الـ teardown.
المرحلة الثامنة — اقرأ النتائج، ثم اجعل الـ Test يحكم بنفسه
تتعلم الـ SLA والـ SLO، ثم تقرأ تقرير k6 رقماً رقماً: الـ http_req_duration و p90 و p95، والطلبات الفاشلة، والـ Iterations، والـ VUs، والبيانات المرسلة والمستقبلة. وبعدها تكتب الـ SLO كـ Thresholds، فيصبح الـ Test هو الذي يقول نجح أو فشل، بدل ما تقرّر أنت بعينك.
لمن هذا الكورس؟
✅ مهندس QA يكتب Functional Tests وبدّه يضيف الأداء لمهاراته
✅ مهندس أتمتة يعرف Playwright أو Selenium، وبدّه أداة أداء بنفس لغة الـ JavaScript
✅ مختبِر سُئل في مقابلة عن الـ Load Testing أو الـ Think Time وما عرف يجاوب
✅ مطوّر بدّه يعرف كم يتحمّل الـ API تبعه قبل ما يعرف من المستخدمين
❌ مش لإلك إذا ما بتعرف أساسيات JavaScript أبداً — الكورس ما يشرح اللغة من الصفر
ليش هذا الكورس مختلف؟
المفاهيم قبل الأداة. أغلب الشروحات تبدأ بـ k6 run. هنا تبدأ بالسؤال: ماذا تختبر أصلاً؟ لأنه Test بأداة ممتازة وفكرة خاطئة يعطيك أرقاماً جميلة وبلا قيمة.
تطبيق حقيقي، مش endpoint تجريبي. بعد درس واحد على JSONPlaceholder، كل شيء يعمل على تطبيق todo QAcart v2 على جهازك: تسجيل، دخول، مهام، وخطط اشتراك.
المشاكل الحقيقية، بأسبابها. ستشوف الـ Test يفشل لأنه الإيميل مكرر، وستفهم ليش Date.now ما يكفي مع الـ VUs المتوازية، وليش __VU وليس __ITER عندما تعمل login. هذه هي الأخطاء التي تقع فيها بأول Load Test بالشغل.
جاهز للمقابلة. الـ Think Time، والفرق بين Load و Stress، وأنواع الـ Users: هذه الأسئلة التي تُسأل فعلاً، وكل واحدة لها درس.
ماذا ستستطيع أن تعمل بعد الكورس؟
- تشرح الفرق بين Load و Stress و Spike و Endurance، وتختار النوع المناسب لكل موقف
- تكتب Load و Stress و Spike و Endurance Tests بالـ
stages، كل واحد بنمط الحمل الصحيح - تكتب k6 scripts لـ Flow كامل: Register و Login وطلبات بعد الدخول
- تتحكم بالحمل عبر الـ VUs والـ Duration والـ Iterations
- تجهّز الـ Tokens مرة واحدة في الـ
setupوتنظّف بعد الـ Test في الـteardown - تجهّز بيانات مستقلة لكل Virtual User، من الـ Database أو من ملف JSON
- تقرأ نتائج k6 بمقياس الـ SLA والـ SLO، وتشارك تقرير HTML مع فريقك
- تكتب Thresholds تجعل الـ Test ينجح أو يفشل لوحده
أرقام الكورس
- 39 درس فيديو + درس مكتوب
- 8 أقسام
- 4 ساعات و24 دقيقة من الشرح لحد الآن
- 4 دروس مجانية — قسم المقدمة كامل
- تطبيق حقيقي تشغّله على جهازك وتختبره
أسئلة شائعة
هل أحتاج خبرة في الـ Performance Testing؟
لأ. الكورس يبدأ من «ما هو الـ Performance Testing؟»، والمقدمة كلها مفاهيم قبل أي كود.
هل أحتاج أعرف JavaScript؟
الأساسيات تكفي: متغيرات، functions، و objects. scripts الـ k6 قصيرة، وكل سطر فيها مشروح.
هل الكورس بالعربي؟
نعم، الشرح كامل بالعربي والمصطلحات التقنية بالإنجليزي زي ما هي مستخدمة في السوق.
هل أحتاج server أو حساب مدفوع؟
لأ. k6 مجاني ومفتوح المصدر، والتطبيق الذي نختبره يعمل على جهازك.
هل التسجيل خلص؟
لسا. الكورس قيد التسجيل، والأقسام الجديدة تنزل تباعاً. إذا اشتريت هسا، كل ما ينزل يصلك مجاناً.
هل الوصول مدى الحياة؟
نعم، وتحديثات الكورس تصلك مجاناً.
ابدأ من هون
جرّب قسم المقدمة كامل مجاناً — أربعة دروس تشرح ما هو الـ Performance Testing و Load و Stress و Spike. إذا عجبك الأسلوب، الباقي يبدأ من المفاهيم التي يقوم عليها أي Test، ثم k6 خطوة خطوة.
