اختبار نقاط النهاية الخاصة عن طريق نشر اختبار تحميل Azure في شبكة Azure الظاهرية

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

تمكن هذه الوظيفة سيناريوهات الاستخدام التالية:

  • إنشاء تحميل إلى نقطة نهاية يتم نشرها في شبكة Azure الظاهرية.
  • إنشاء تحميل إلى نقطة نهاية عامة مع قيود الوصول، مثل تقييد عناوين IP للعميل.
  • إنشاء تحميل إلى خدمة محلية، لا يمكن الوصول إليها بشكل عام، متصلة ب Azure عبر ExpressRoute.

تعرف على المزيد حول سيناريوهات نشر اختبار تحميل Azure في شبكتك الظاهرية.

يوفر الرسم التخطيطي التالي نظرة عامة تقنية:

Diagram that shows the Azure Load Testing virtual network injection technical overview.

عند بدء اختبار التحميل، تقوم خدمة Azure Load Testing بإدخال موارد Azure التالية في الشبكة الظاهرية التي تحتوي على نقطة نهاية التطبيق:

  • الأجهزة الظاهرية لمحرك الاختبار. تستدعي هذه الأجهزة الظاهرية نقطة نهاية التطبيق الخاص بك أثناء اختبار التحميل.
  • عنوان IP عام.
  • مجموعة أمان الشبكة (NSG).
  • موازن تحميل Azure.

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

إذا قمت بتقييد الوصول إلى شبكتك الظاهرية، فأنت بحاجة إلى تكوين شبكتك الظاهرية لتمكين الاتصال بين اختبار تحميل Azure هذه والأجهزة الظاهرية المحقونة.

المتطلبات الأساسية

  • يحتوي حساب Azure الخاص بك على دور مساهم الشبكة، أو أحد أصل هذا الدور، على الشبكة الظاهرية. راجع التحقق من وصول مستخدم إلى موارد Azure للتحقق من أذوناتك.
  • يجب أن تحتوي الشبكة الفرعية التي تستخدمها لاختبار تحميل Azure على عناوين IP غير معينة كافية لاستيعاب عدد محركات اختبار التحميل لاختبارك. تعرف على المزيد حول تكوين اختبارك للتحميل على نطاق واسع.
  • لا يجب تفويض الشبكة الفرعية إلى أي خدمة Azure أخرى. على سبيل المثال، لا ينبغي تفويضه إلى مثيلات حاوية Azure (ACI). تعرف على المزيد حول تفويض الشبكة الفرعية.
  • الإصدار 2.2.0 من Azure CLI أو أحدث (إذا كنت تستخدم CI/CD). قم بتشغيل az --version للعثور على الإصدار المثبت على الكمبيوتر. إذا كنت بحاجة إلى تثبيت أو ترقية Azure CLI، راجع كيفية تثبيت Azure CLI.

تكوين شبكة اتصال ظاهرية

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

إذا لم يكن لديك شبكة ظاهرية بعد، فاتبع هذه الخطوات لإنشاء شبكة Azure ظاهرية في مدخل Microsoft Azure.

هام

يجب أن تكون الشبكة الظاهرية في نفس الاشتراك ونفس المنطقة مثل مورد اختبار التحميل.

إنشاء شبكة فرعية

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

(اختياري) تكوين قواعد حركة المرور

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

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

لتكوين الوصول الصادر لاختبار تحميل Azure:

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. انتقل إلى مجموعة أمان الشبكة.

    إذا لم يكن لديك NSG بعد، فاتبع هذه الخطوات لإنشاء مجموعة أمان شبكة اتصال.

    قم بإنشاء NSG في نفس المنطقة مثل شبكتك الظاهرية، ثم قم بإقرانها بالشبكة الفرعية الخاصة بك.

  3. حدد قواعد الأمان الصادرة في التنقل الأيمن.

    Screenshot that shows the network security group overview page in the Azure portal, highlighting Outbound security rules.

  4. حدد + إضافة، لإضافة قاعدة أمان صادرة جديدة. أدخل المعلومات التالية لإنشاء قاعدة جديدة.

    الحقل القيمة
    Source Any
    نطاقات منافذ المصادر *
    الوجهه Any
    نطاقات منفذ الوجهة *
    الاسم azure-load-testing-outbound
    الوصف يستخدم للعمليات المختلفة المتضمنة في تنسيق اختبارات التحميل.
  5. حدد إضافة لإضافة قاعدة الأمان الصادرة إلى مجموعة أمان الشبكة.

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

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

على سبيل المثال، بالنسبة لنقطة نهاية بعنوان IP 10.179.0.7، في شبكة ظاهرية ذات نطاق شبكة فرعية 10.179.0.0/18، يمكن أن يحتوي ملف JMX على هذه المعلومات:

<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Internal service homepage" enabled="true">
  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="Service homepage" enabled="true">
    <collectionProp name="Arguments.arguments"/>
  </elementProp>
  <stringProp name="HTTPSampler.domain">10.179.0.7</stringProp>
  <stringProp name="HTTPSampler.port">8081</stringProp>
  <stringProp name="HTTPSampler.protocol"></stringProp>
  <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  <stringProp name="HTTPSampler.path"></stringProp>
  <stringProp name="HTTPSampler.method">GET</stringProp>
</HTTPSamplerProxy>

تكوين اختبار التحميل الخاص بك

لتضمين نقاط النهاية المستضافة بشكل خاص في اختبار التحميل، تحتاج إلى تكوين إعدادات الشبكة الظاهرية لاختبار التحميل. يمكنك تكوين إعدادات الشبكة الظاهرية في مدخل Microsoft Azure، أو تحديدها في ملف تكوين اختبار YAML لتدفقات CI/CD.

هام

عند نشر Azure Load Testing في شبكة ظاهرية، ستتحمل رسوما إضافية. يقوم Azure Load Testing بنشر موازنتحميل Azure وعنوان IP عام في اشتراكك وقد تكون هناك تكلفة لنسبة استخدام الشبكة التي تم إنشاؤها. لمزيد من المعلومات، راجع معلومات تسعير الشبكة الظاهرية.

تكوين الشبكة الظاهرية في مدخل Microsoft Azure

يمكنك تحديد إعدادات تكوين الشبكة الظاهرية في معالج إنشاء/تحديث اختبار التحميل.

  1. تسجيل الدخول إلى مدخل Azure باستخدام بيانات الاعتماد للاشتراك في Azure.

  2. انتقل إلى مورد Azure Load Testing، وحدد Tests من الجزء الأيمن.

  3. افتح معالج إنشاء/تحديث اختبار التحميل بأي من طريقتين:

    • حدد + Create > Upload a JMeter script، إذا كنت تريد إنشاء اختبار جديد.

      Screenshot that shows the Tests page, highlighting the button for creating a new test.

    • حدد اختبارا موجودا من القائمة، ثم حدد تحرير.

      Screenshot that shows the Tests page, highlighting the button for editing a test.

  4. في علامة التبويب تحميل ، حدد وضع نسبة استخدام الشبكة الخاصة ، ثم حدد الشبكة الظاهرية والشبكة الفرعية.

    إذا كان لديك شبكات فرعية متعددة في شبكتك الظاهرية، فتأكد من تحديد الشبكة الفرعية التي ستستضيف الأجهزة الظاهرية لمحرك الاختبار المحقون.

    Screenshot that shows the Load tab for creating or updating a load test.

    هام

    تأكد من أن لديك أذونات كافية لإدارة الشبكات الظاهرية. تحتاج إلى دور مساهم الشبكة.

  5. (اختياري) تحقق من تعطيل نشر IP العام إذا كنت لا تريد نشر عنوان IP عام وموازن تحميل ومجموعة أمان الشبكة في شبكتك الفرعية.

    عند تحديد هذا الخيار، تأكد من وجود آلية بديلة مثل Azure NAT Gateway أو Azure Firewall أو جهاز ظاهري للشبكة (NVA) لتمكين توجيه حركة المرور الصادرة من الشبكة الفرعية.

  6. مراجعة معلومات اختبار التحميل أو تعبئتها. اتبع هذه الخطوات لإنشاء اختبار أو إدارته.

  7. حدد Review + create ثم Create (أو Apply، عند تحديث اختبار موجود).

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

تكوين الشبكة الظاهرية لتدفقات CI/CD

لتكوين اختبار التحميل باستخدام إعدادات الشبكة الظاهرية، قم بتحديث ملف تكوين اختبار YAML.

  1. افتح محطة طرفية، واستخدم Azure CLI لتسجيل الدخول إلى اشتراك Azure الخاص بك:

    az login
    az account set --subscription <your-Azure-Subscription-ID>
    
  2. استرداد معرف الشبكة الفرعية ونسخ القيمة الناتجة:

    az network vnet subnet show -g <your-resource-group> --vnet-name <your-vnet-name> --name <your-subnet-name> --query id
    
  3. افتح ملف تكوين اختبار YAML في المحرر المفضل لديك.

  4. أضف الخاصية subnetId إلى ملف التكوين وقم بتوفير معرف الشبكة الفرعية الذي نسخته سابقا:

    version: v0.1
    testName: SampleTest
    testPlan: SampleTest.jmx
    description: 'Load test the website home page'
    engineInstances: 1
    subnetId: <your-subnet-id>
    publicIPDisabled: False
    

    اختياريا، يمكنك تعيين الخاصية publicIPDisabled إلى True. لمزيد من المعلومات حول تكوين YAML، راجع مرجع YAML لتكوين الاختبار.

    هام

    تأكد من أن لديك أذونات كافية لإدارة الشبكات الظاهرية. تحتاج إلى دور مساهم الشبكة.

  5. احفظ ملف تكوين YAML، وقم بتثبيت التغييرات في مستودع التعليمات البرمجية المصدر.

  6. بعد تشغيل سير عمل CI/CD، يبدأ اختبار التحميل الخاص بك، ويمكنه الآن الوصول إلى نقطة نهاية التطبيق المستضافة بشكل خاص في شبكتك الظاهرية.

استكشاف الأخطاء وإصلاحها

فشل إنشاء اختبار التحميل أو تحديثه باستخدام Subscription not registered with Microsoft.Batch (ALTVNET001)

عند تكوين اختبار تحميل في شبكة ظاهرية، يجب تسجيل الاشتراك مع Microsoft.Batch.

  1. حاول إنشاء اختبار التحميل أو تحديثه مرة أخرى بعد بضع دقائق.

  2. إذا استمر الخطأ، فاتبع هذه الخطوات لتسجيل اشتراكك مع Microsoft.Batch موفر الموارد يدويا.

فشل إنشاء اختبار التحميل أو تحديثه باستخدام Subnet is not in the Succeeded state (ALTVNET002)

الشبكة الفرعية التي تستخدمها لاختبار التحميل ليست في Succeeded الحالة وهي غير جاهزة لنشر اختبار التحميل الخاص بك فيها.

  1. تحقق من حالة الشبكة الفرعية.

    قم بتشغيل أمر Azure CLI التالي للتحقق من الحالة. يجب أن تكون النتيجة Succeeded.

    az network vnet subnet show -g MyResourceGroup -n MySubnet --vnet-name MyVNet
    
  2. حل أي مشكلات في الشبكة الفرعية. إذا قمت بإنشاء الشبكة الفرعية للتو، فتحقق من الحالة مرة أخرى بعد بضع دقائق.

  3. بدلا من ذلك، حدد شبكة فرعية أخرى لاختبار التحميل.

فشل إنشاء اختبار التحميل أو تحديثه باستخدام Subnet is delegated to other service (ALTVNET003)

لا يمكن تفويض الشبكة الفرعية التي تستخدمها لنشر اختبار التحميل إلى خدمة Azure أخرى. إما إزالة التفويض الموجود، أو تحديد شبكة فرعية أخرى غير مفوضة إلى خدمة.

تعرف على المزيد حول إضافة تفويض شبكة فرعية أو إزالته.

فشل تحديث اختبار التحميل أو بدءه باستخدام User doesn't have subnet/join/action permission on the virtual network (ALTVNET004)

لتحديث أو بدء اختبار تحميل، يجب أن يكون لديك أذونات كافية لنشر اختبار تحميل Azure إلى الشبكة الظاهرية. تحتاج إلى دور "مساهم الشبكة"، أو أحد أصل هذا الدور، على الشبكة الظاهرية.

  1. راجع التحقق من وصول مستخدم إلى موارد Azure للتحقق من أذوناتك.

  2. اتبع هذه الخطوات لتعيين دور مساهم الشبكة إلى حسابك.

فشل إنشاء اختبار التحميل أو تحديثه باستخدام IPv6 enabled subnet not supported (ALTVNET005)

لا يدعم اختبار تحميل Azure الشبكات الفرعية الممكنة بواسطة IPv6. حدد شبكة فرعية أخرى لم يتم تمكين IPv6 لها.

فشل إنشاء اختبار التحميل أو تحديثه باستخدام NSG attached to subnet is not in Succeeded state (ALTVNET006)

مجموعة أمان الشبكة (NSG) المرفقة بالشبكة الفرعية Succeeded ليست في الحالة .

  1. تحقق من حالة NSG.

    قم بتشغيل أمر Azure CLI التالي للتحقق من الحالة. يجب أن تكون النتيجة Succeeded.

    az network nsg show -g MyResourceGroup -n MyNsg
    
  2. حل أي مشكلات في NSG. إذا قمت للتو بإنشاء NSG أو الشبكة الفرعية، فتحقق من الحالة مرة أخرى بعد بضع دقائق.

  3. بدلا من ذلك، حدد NSG آخر.

فشل إنشاء اختبار التحميل أو تحديثه باستخدام Route Table attached to subnet is not in Succeeded state (ALTVNET007)

جدول التوجيه المرفق بالشبكة الفرعية غير موجود في Succeeded الحالة.

  1. تحقق من حالة جدول التوجيه.

    قم بتشغيل أمر Azure CLI التالي للتحقق من الحالة. يجب أن تكون النتيجة Succeeded.

    az network route-table show -g MyResourceGroup -n MyRouteTable
    
  2. حل أي مشكلات في جدول التوجيه. إذا قمت للتو بإنشاء جدول التوجيه أو الشبكة الفرعية، فتحقق من الحالة مرة أخرى بعد بضع دقائق.

  3. بدلا من ذلك، حدد جدول توجيه آخر.

فشل إنشاء اختبار التحميل أو تحديثه باستخدام Inbound not allowed from AzureLoadTestingInstanceManagement service tag (ALTVNET008)

الوصول الوارد من AzureLoadTestingInstanceManagement علامة الخدمة إلى الشبكة الظاهرية غير مسموح به.

اتبع هذه الخطوات لتمكين الوصول إلى نسبة استخدام الشبكة لعلامة AzureLoadTestingInstanceManagement الخدمة.

فشل إنشاء اختبار التحميل أو تحديثه باستخدام Inbound not allowed from BatchNodeManagement service tag (ALTVNET009)

الوصول الوارد من BatchNodeManagement علامة الخدمة إلى الشبكة الظاهرية غير مسموح به.

اتبع هذه الخطوات لتمكين الوصول الوارد لعلامة BatchNodeManagement الخدمة.

فشل إنشاء اختبار التحميل أو تحديثه باستخدام Route Table has next hop set for address prefix 0.0.0.0/0

يحتوي جدول توجيه الشبكة الفرعية على نوع مجموعة الوثب التالي المعين إلى الجهاز الظاهري للمسار 0.0.0.0/0. قد يتسبب هذا التكوين في توجيه غير متماثل لحزم الشبكة أثناء توفير الأجهزة الظاهرية في الشبكة الفرعية.

نفذ أحد الإجراءين لحل هذا الخطأ:

  • استخدم شبكة فرعية مختلفة، والتي لا تحتوي على مسارات مخصصة.
  • تعديل جدول توجيه الشبكة الفرعية وتعيين نوع القفزة التالية للمسار 0.0.0.0/0 إلى الإنترنت.

تعرف على المزيد حول توجيه نسبة استخدام الشبكة الظاهرية.

فشل إنشاء اختبار التحميل أو تحديثه باستخدام Subnet is in a different subscription than resource (ALTVNET011)

الشبكة الظاهرية ليست في نفس الاشتراك والمنطقة مثل مورد اختبار تحميل Azure. إما نقل أو إعادة إنشاء شبكة Azure الظاهرية أو مورد اختبار تحميل Azure إلى نفس الاشتراك والمنطقة.

فشل التوفير مع An azure policy is restricting engine deployment to your subscription (ALTVNET012)

يقوم نهج Azure بتقييد توزيع محرك اختبار التحميل على اشتراكك. تحقق من قيود النهج وحاول مرة أخرى. إذا كانت لديك قيود نهج على نشر عنوان IP العام أو موازن تحميل Azure أو مجموعة أمان الشبكة، يمكنك تعطيل نشر هذه الموارد. راجع تكوين اختبار التحميل الخاص بك.

فشل التوفير مع Engines could not be deployed due to an error in subnet configuration (ALTVNET013)

تعذر نشر مثيلات محرك اختبار التحميل بسبب خطأ في تكوين الشبكة الفرعية. تحقق من تكوين الشبكة الفرعية. إذا استمرت المشكلة، فقم برفع تذكرة مع دعم مع معرف تشغيل الاختبار.

  1. تحقق من حالة الشبكة الفرعية.

    قم بتشغيل أمر Azure CLI التالي للتحقق من الحالة. يجب أن تكون النتيجة Succeeded.

    az network vnet subnet show -g MyResourceGroup -n MySubnet --vnet-name MyVNet
    
  2. حل أي مشكلات في الشبكة الفرعية. إذا قمت بإنشاء الشبكة الفرعية للتو، فتحقق من الحالة مرة أخرى بعد بضع دقائق.

  3. إذا استمرت المشكلة، فافتح طلب دعم العملاء عبر الإنترنت.

    قم بتوفير معرف تشغيل اختبار التحميل ضمن طلب الدعم.

فشل بدء اختبار التحميل مع Subnet has {0} free IPs, {1} more free IP(s) required to run {2} engine instance load test (ALTVNET014)

يجب أن تحتوي الشبكة الفرعية التي تستخدمها لاختبار تحميل Azure على عناوين IP غير معينة كافية لاستيعاب عدد محركات اختبار التحميل لاختبارك.

اتبع هذه الخطوات لتحديث إعدادات الشبكة الفرعية وزيادة نطاق عنوان IP.

فشل بدء اختبار التحميل مع Management Lock is enabled on Resource Group of VNET (ALTVNET015)

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

فشل بدء اختبار التحميل مع Insufficient public IP address quota in VNET subscription (ALTVNET016)

عند بدء اختبار التحميل، يقوم اختبار تحميل Azure بإدخال موارد Azure التالية في الشبكة الظاهرية التي تحتوي على نقطة نهاية التطبيق:

  • الأجهزة الظاهرية لمحرك الاختبار. تستدعي هذه الأجهزة الظاهرية نقطة نهاية التطبيق الخاص بك أثناء اختبار التحميل.
  • عنوان IP عام.
  • مجموعة أمان الشبكة (NSG).
  • موازن تحميل Azure.

تأكد من أن لديك حصة نسبية لعنوان IP عام واحد على الأقل متوفر في اشتراكك لاستخدامه في اختبار التحميل.

فشل بدء اختبار التحميل مع Subnet with name "AzureFirewallSubnet" cannot be used for load testing (ALTVNET017)

الشبكة الفرعية AzureFirewallSubnet محجوزة ولا يمكنك استخدامها لاختبار تحميل Azure. حدد شبكة فرعية أخرى لاختبار التحميل.

الخطوات التالية