مشاركة عبر


التشغيل السريع: إنشاء اختبار تحميل وتشغيله باستخدام Visual Studio Code وGitHub Copilot

تعرف على كيفية استخدام ملحق اختبار تحميل Azure ل Visual Studio Code لإنشاء اختبارات تحميل Locust بسهولة باستخدام Copilot، والتكرار محليا، والتحجيم بسهولة في Azure. سواء كنت جديدا على Locust أو خبير اختبار الأداء، فإن ملحق اختبار تحميل Azure يبسط إنشاء الاختبار والتكرار والتحجيم، مباشرة من بيئة VS Code. Azure Load Testing هي خدمة مدارة تتيح لك تشغيل اختبار تحميل على نطاق السحابة. Locust هي أداة اختبار تحميل مفتوحة المصدر تمكنك من كتابة جميع اختباراتك في التعليمات البرمجية ل Python.

يرشدك هذا التشغيل السريع خلال إنشاء اختبارات تحميل واقعية وتحسينها وتشغيلها. بنهاية المطاف، لديك برنامج نصي لاختبار التحميل يعمل بكامل طاقته تم إنشاؤه من مجموعة Postman أو مجموعة Insomnia أو ملف .http، محسن مع تحسينات تعمل بالطاقة Copilot، وجاهز للتحجيم في Azure Load Testing.

Prerequisites

  • ملحق اختبار تحميل Azure لرمز VS. قم بتنزيله وتثبيته هنا.
  • مساعد الطيار GitHub. إعداد Copilot في VS Code لإنشاء البرامج النصية للاختبار وتحسينها. إذا لم يكن لديك اشتراك، يمكنك تنشيط نسخة تجريبية مجانية.
  • Python و Locust. مطلوب لتشغيل البرامج النصية لاختبار Locust والتحقق من صحتها محليا من VS Code. تثبيت Locust هنا.
  • حساب Azure مع اشتراك نشط. مطلوب لتشغيل اختبارات التحميل على نطاق واسع في Azure Load Testing. أنشئ حساباً مجاناً.

Tip

يوفر GitHub Copilot Chat من VS Code نماذج الذكاء الاصطناعي متعددة. يمكنك تبديل النماذج باستخدام منتقي النموذج في حقل إدخال الدردشة. إذا لم تكن متأكدا من أيهما يجب استخدامه، نوصي باستخدام GPT-4o.

فتح المعاينة

للبدء، افتح لوحة الأوامر في VS Code وقم بتشغيل: اختبار التحميل: افتح المعاينة. توفر هذه المعاينة نقاط الإدخال الرئيسية للملحق.

يمكنك أيضا الوصول إلى الميزات مباشرة من لوحة الأوامر باستخدام بادئة اختبار التحميل . تتضمن بعض الأوامر شائعة الاستخدام ما يلي:

  • اختبار التحميل: إنشاء اختبار Locust

  • اختبار التحميل: تشغيل اختبار التحميل (محلي)

  • اختبار التحميل: تشغيل اختبار التحميل (اختبار تحميل Azure)

    لقطة شاشة تعرض نقاط الإدخال الرئيسية لملحق Azure Load Testing VS Code.

إنشاء برنامج نصي Locust باستخدام Copilot

يمكنك إنشاء برنامج نصي Locust من أي مجموعة Postman موجودة أو مجموعة Insomnia أو ملف .http. إذا كان الملف يحتوي على طلبات متعددة، يحاول Copilot تسلسلها إلى سيناريو متماسك.

  1. انقر فوق الزر إنشاء اختبار تحميل في المعاينة، أو قم بتشغيل اختبار التحميل: إنشاء اختبار Locust من لوحة الأوامر.

  2. يمكنك اختيار المصدر لإنشاء برنامج نصي لاختبار Locust تلقائيا:

    • يتيح تحديد مجموعة Postman أو مجموعة Insomnia أو ملف .http ل Copilot استخراج عمليات واجهة برمجة تطبيقات متعددة وطلب البيانات وتفاصيل المصادقة - إنشاء اختبار تحميل أكثر اكتمالا وواقعية.
    • يتيح لك اختيار عنوان URL واحد إدخال عنوان URL لنقطة نهاية واحدة، مما يؤدي إلى إنشاء برنامج نصي بسيط يمكنك تخصيصه أو توسيعه.
  3. لهذه المعاينة، يمكنك تحديد Try Sample: Pet Shop API، والذي يستخدم petstore-sample.http الملف لإنشاء نموذج برنامج نصي لاختبار Locust.

  4. يحلل Copilot الملف المحدد وينشئ برنامج نصي لاختبار التحميل المستند إلى Locust، ويتسلسل تلقائيا طلبات واجهة برمجة التطبيقات لمحاكاة الاستخدام في العالم الحقيقي ومعالجة المصادقة بشكل آمن.

  5. بمجرد إنشاء البرنامج النصي، ستقترح نافذة Copilot Chat خطوات إعداد أخرى، مثل تحديد متغيرات البيئة. إذا اقترح Copilot متغيرات البيئة، قم بإنشاء .env ملف في مشروعك وأضف القيم الموصى بها.

تخصيص البرنامج النصي لاختبار التحميل

قبل إجراء الاختبار، يمكنك تحسينه باستخدام Copilot. على سبيل المثال، من خلال فحص البرنامج النصي، قد تلاحظ أن نفس حمولة الطلب يتم إرسالها مع كل طلب:

payload = {
    "id": self.pet_id,
    "name": "Fluffy",
    "category": {"id": 1, "name": "Dogs"},
    "photoUrls": ["https://example.com/photo.jpg"],
    "tags": [{"id": 1, "name": "cute"}],
    "status": "available"
}

لجعل الاختبار أكثر ديناميكية عن طريق عشوائية حمولة الطلب:

  1. افتح لوحة Copilot Chat .
  2. اكتب: Randomize request payloads واضغط على مفتاح الإدخال Enter.
  3. ينشئ Copilot تعديلا مقترحا لإدخال العشوائية.
  4. انقر فوق تطبيق في المحرر الذي يظهر أعلى مقتطف التعليمات البرمجية الذي تم إنشاؤه في نافذة Copilot Chat.
  5. بعد مراجعة التغييرات، انقر فوق الاحتفاظ لقبول البرنامج النصي وتحديثه.
  6. حفظ الملف

الآن، يحاكي كل طلب تفاعل مستخدم أكثر واقعية. تبدو التعليمات البرمجية مثل القصاصة البرمجية التالية:

payload = {
    "id": self.pet_id,
    "name": f"Pet{random.randint(1, 1000)}",
    "category": {"id": random.randint(1, 10), "name": random.choice(["Dogs", "Cats", "Birds"])},
    "photoUrls": [f"https://example.com/photo{random.randint(1, 100)}.jpg"],
    "tags": [{"id": random.randint(1, 10), "name": random.choice(["cute", "friendly", "playful"])}],
    "status": random.choice(["available", "pending", "sold"])
}

تشغيل اختبار التحميل

يمكنك تشغيل اختبار التحميل بطريقتين:

  • تشغيل محليا للتحقق السريع
  • تشغيل في اختبار تحميل Azure للتحميل متعدد المناطق على نطاق واسع

تشغيل محليا للتحقق السريع

للتحقق من صحة الاختبار بسرعة، قم بتشغيله محليا باستخدام Locust من Visual Studio Code:

  1. افتح لوحة الأوامر وقم بتشغيل: اختبار التحميل: تشغيل اختبار التحميل (محلي).

  2. يتم تشغيل واجهة مستخدم الويب Locust تلقائيا في مستعرض. قد يستغرق الأمر بضع ثوان حتى يكون خادم Locust جاهزا ويفتح المتصفح.

  3. في صفحة Start new load test ، راجع حقول الإدخال وانقر فوق Start. يبدأ Locust في إرسال الطلبات وتسجيل أي حالات فشل وتتبع إحصائيات الأداء.

    لقطة شاشة تعرض واجهة مستخدم الويب Locust لتشغيل اختبار تحميل محليا.

  4. استكشف واجهة مستخدم Locust لتحليل أوقات الاستجابة ومعدلات الخطأ ومعدل نقل الطلب.

    لقطة شاشة تعرض واجهة مستخدم الويب Locust لعرض نتائج الاختبار وتحليلها محليا.

Tip

إذا أبلغ Locust عن فشل Retrieve Pet الطلبات و Update Pet ، فقد يرجع ذلك إلى كيفية معالجة واجهة برمجة تطبيقات Pet Store للطلبات. حاول أن تطلب من Copilot "إضافة تأخيرات عشوائية بين الطلبات في run_scenario". إذا كنت تشك في وجود مشكلة في البرنامج النصي نفسه، فقم بتعيين DEBUG_MODE=True كمتغير بيئة وأعد تشغيل الاختبار للحصول على معلومات تصحيح أكثر تفصيلا.

إذا كنت تفضل تشغيل الاختبار من محطة VS Code الطرفية:

  1. افتح محطة طرفية في VS Code.

  2. شغّل الأمر التالي:

    locust -f path/to/locustfile.py -u 10 -r 2 --run-time 1m
    
    • -f path/to/locustfile.py: يحدد البرنامج النصي لاختبار Locust.
    • -u 10: يحاكي ما يصل إلى 10 مستخدمين ظاهريين.
    • -r 2: يكثف اثنين من المستخدمين الظاهريين في الثانية.
    • --run-time 1m: تشغيل الاختبار لمدة دقيقة واحدة.
  3. افتح مستعرض لعرض http://0.0.0.0:8089 واجهة مستخدم ويب Locust.

توسيع نطاق اختبار تحميل Azure

بالنسبة لسيناريوهات التحميل العالي حيث تحتاج إلى محاكاة عدة آلاف من المستخدمين الظاهريين المتزامنين عبر مناطق متعددة، يمكنك تشغيل الاختبار في اختبار تحميل Azure.

لتنفيذ اختبار واسع النطاق:

  1. افتح لوحة الأوامر وقم بتشغيل: اختبار التحميل: تشغيل اختبار التحميل (اختبار تحميل Azure).

  2. حدد Create a configuration file....

  3. اتبع الإعداد الإرشادي، الذي يتضمن:

    • تسجيل الدخول إلى Azure وتحديد اشتراكك.

    • إنشاء مورد Azure Load Testing جديد أو تحديد مورد موجود.

    • اختيار مناطق اختبار التحميل لتوزيع نسبة استخدام الشبكة عالميا.

  4. بمجرد اكتمال الإعداد، يتم إنشاء ملف تكوين YAML (على سبيل المثال، loadtest.config.yaml) وإضافته إلى المجلد الجذر لمساحة العمل.

    • يعرف هذا الملف البرنامج النصي Locust ومعلمات التحميل ومتغيرات البيئة والمناطق وأي ملفات أخرى (على سبيل المثال، مجموعات بيانات CSV).

    • الإعدادات الافتراضية هي 200 مستخدم ظاهري يعملون لمدة 120 ثانية في كل منطقة محددة.

    • قم بتثبيت هذا الملف في المستودع الخاص بك لإعادة استخدام عمليات تنفيذ اختبار التحميل المستقبلية وأتمتتها.

  5. يتحقق Copilot من صحة التكوين قبل التنفيذ. اتبع أي إرشادات متوفرة في نافذة الدردشة. وإلا، إذا تحقق كل شيء، يتم تحميل البرنامج النصي للاختبار والبيانات الاصطناعية ذات الصلة إلى Azure Load Testing ويتم إعداده للتنفيذ. قد تستغرق هذه العملية ما يصل إلى دقيقة، ويظهر التقدم في لوحة الإخراج .

    لقطة شاشة تعرض تقدم اختبار التحميل في وحدة تحكم إخراج VS Code.

  6. عند بدء الاختبار، يظهر إعلام (رسالة منبثقون) في الزاوية السفلية اليسرى من VS Code. انقر فوق الزر فتح في مدخل Azure لمراقبة تنفيذ الاختبار في الوقت الفعلي.

  7. عند بدء الاختبار، يظهر إعلام (رسالة منبثقون) في الزاوية السفلية اليسرى. انقر فوق الزر فتح في مدخل Azure لمراقبة تنفيذ الاختبار في الوقت الفعلي.

    لقطة شاشة تعرض نتائج اختبار التحميل في Azure Load Testing.

Tip

للوصول بسرعة إلى نتائج الاختبار من عمليات التشغيل السابقة، استخدم الأمر: اختبار التحميل: عرض عمليات تشغيل اختبار التحميل.

في هذا التشغيل السريع، تم تخزين المتغيرات الحساسة مثل API_KEY في .env ملف وتحميلها إلى الخدمة السحابية. ومع ذلك، كأفضل ممارسة، يجب إدارة الأسرار بشكل آمن في Azure Key Vault. يوفر الملحق إرشادات حول إعداد هذا.

حتى الآن في هذا التشغيل السريع، تم تخزين المتغيرات الحساسة مثل API_KEY في .env ملف وتحميلها إلى الخدمة السحابية. ومع ذلك، كأفضل ممارسة، يجب إدارة الأسرار بشكل آمن في Azure Key Vault. يوفر الملحق إرشادات حول إعداد هذا.

  1. افتح نافذة Copilot Chat ، واكتب @testing /setupLoadTestSecretsInAzure واضغط على Enter.

  2. يرشدك Copilot خلال الخطوات التالية:

  3. يرشدك Copilot من خلال:

    • إنشاء Azure Key Vault.
    • تعيين هوية مدارة إلى مورد Azure Load Testing.
    • إضافة أسرار إلى Azure Key Vault.
    • تكوين ملف YAML الخاص بك للإشارة إلى أسرار Key Vault بدلا من .env.

كلما قمت بتعديل برنامج Locust النصي أو تكوين YAML، يمكنك إعادة تشغيل الاختبار عن طريق تنفيذ اختبار تحميل التشغيل (اختبار تحميل Azure) .

Summary

في هذا التشغيل السريع، استخدمت ملحق Azure Load Testing ل Visual Studio Code لإنشاء اختبارات تحميل Locust بسهولة باستخدام Copilot، والتكرار محليا، والتحجيم بسهولة في Azure. يبسط ملحق اختبار تحميل Azure ل VS Code عملية إنشاء برنامج نصي اختبار واقعي لسيناريو الاختبار الخاص بك. يلخص Azure Load Testing تعقيد إعداد البنية الأساسية لمحاكاة تحميل المستخدم على نطاق واسع لتطبيقك.

يمكنك توسيع اختبار التحميل أيضا لمراقبة المقاييس من جانب الخادم للتطبيق تحت التحميل، وتحديد مقاييس فشل الاختبار للحصول على تنبيه عندما لا يفي التطبيق بمتطلباتك. للتأكد من أن التطبيق يستمر في الأداء بشكل جيد، يمكنك أيضا دمج اختبار التحميل كجزء من سير عمل التكامل المستمر والنشر المستمر (CI/CD).