تكوين سير عمل CI/CD يدويا لتشغيل اختبارات التحميل

يمكنك أتمتة اختبار تحميل في Azure Load Testing عن طريق إنشاء مسار CI/CD. في هذه المقالة، ستتعلم كيفية تكوين إجراءات GitHub أو Azure Pipelines أو أدوات CI الأخرى يدويا لاستدعاء اختبار موجود في اختبار تحميل Azure. أتمتة اختبار التحميل للتحقق باستمرار من أداء التطبيق الخاص بك واستقراره تحت الحمل.

لإضافة اختبار تحميل موجود إلى مسار CI/CD:

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

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

تكوين مصادقة الخدمة

لتشغيل اختبار تحميل في سير عمل CI/CD، تحتاج إلى منح إذن لسير عمل CI/CD للوصول إلى مورد اختبار التحميل. إنشاء كيان خدمة لسير عمل CI/CD وتعيين دور Load Test Contributor Azure RBAC.

إنشاء اتصال خدمة في Azure Pipelines

في Azure Pipelines، يمكنك إنشاء اتصال خدمة في مشروع Azure DevOps للوصول إلى الموارد في اشتراك Azure الخاص بك. عند إنشاء اتصال الخدمة، يقوم Azure DevOps بإنشاء كائن أساسي لخدمة Microsoft Entra.

  1. سجل الدخول إلى مؤسسة Azure DevOps (https://dev.azure.com/<your-organization>)، وحدد مشروعك.

    <your-organization> استبدل العنصر النائب للنص بمعرف المشروع.

  2. حدد Project settings>Service connections>+ New service connection.

  3. في جزء New service connection ، حدد Azure Resource Manager، ثم حدد Next.

  4. حدد طريقة مصادقة كيان الخدمة (التلقائي)، ثم حدد التالي.

  5. أدخل تفاصيل اتصال الخدمة، ثم حدد حفظ لإنشاء اتصال الخدمة.

    الحقل القيمة
    مستوى النطاق «Subscription» (الاشتراك)
    الاشتراك حدد اشتراك Azure الذي يستضيف مورد اختبار التحميل الخاص بك.
    مجموعة الموارد حدد مجموعة الموارد التي تحتوي على مورد اختبار التحميل.
    اسم اتصال الخدمة أدخل اسما فريدا لاتصال الخدمة.
    منح إذن الوصول إلى جميع المسارات تمَّ التحديد.
  6. من قائمة اتصالات الخدمة، حدد الاتصال الذي أنشأته سابقا، ثم حدد إدارة كيان الخدمة.

    Screenshot that shows selections for managing a service principal.

    يفتح مدخل Azure في علامة تبويب مستعرض منفصلة ويعرض تفاصيل كيان الخدمة.

  7. في مدخل Microsoft Azure، انسخ قيمة اسم العرض.

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

منح حق الوصول إلى اختبار تحميل Azure

يستخدم Azure Load Testing Azure RBAC لمنح أذونات لتنفيذ أنشطة معينة على مورد اختبار التحميل. لتشغيل اختبار تحميل من البنية الأساسية لبرنامج ربط العمليات التجارية CI/CD، يمكنك منح دور Load Test Contributor إلى كيان الخدمة.

  1. في مدخل Microsoft Azure، انتقل إلى مورد اختبار تحميل Azure.

  2. حدد Access control (IAM)>Add>Add role assignment.

  3. في علامة التبويب Role ، حدد Load Test Contributor في قائمة أدوار وظيفة الوظيفة.

    Screenshot that shows the list of roles in the Add role assignment page in the Azure portal, highlighting the Load Test Contributor role.

  4. في علامة التبويب الأعضاء ، حدد Select members، ثم استخدم اسم العرض الذي نسخته سابقا للبحث في كيان الخدمة.

  5. حدد كيان الخدمة، ثم حدد تحديد.

  6. في علامة التبويب Review + assign، حدد Review + assign لإضافة تعيين الدور.

يمكنك الآن استخدام اتصال الخدمة في تعريف سير عمل Azure Pipelines للوصول إلى مورد اختبار تحميل Azure.

إضافة ملفات اختبار التحميل في المستودع الخاص بك

لتشغيل اختبار تحميل باستخدام Azure Load Testing في سير عمل CI/CD، تحتاج إلى إضافة جميع ملفات إدخال اختبار التحميل في مستودع التحكم بالمصادر.

إذا لم يكن لديك اختبار تحميل موجود، أضف الملفات التالية إلى مستودع التعليمات البرمجية المصدر:

  • تحميل ملف تكوين اختبار YAML. تعرف على كيفية إنشاء ملف YAML لتكوين اختبار التحميل.
  • اختبار ملف الخطة. بالنسبة للاختبارات المستندة إلى JMeter، أضف برنامج نصي لاختبار JMeter (JMX ملف). بالنسبة للاختبارات المستندة إلى عنوان URL، أضف ملف JSON للطلبات.
  • أي ملفات خصائص مستخدم JMeter.
  • أي ملفات بيانات إدخال تستخدمها خطة الاختبار الخاصة بك. على سبيل المثال، ملفات بيانات CSV.

إذا كان لديك اختبار تحميل موجود، يمكنك تنزيل إعدادات التكوين وجميع ملفات الإدخال مباشرة من مدخل Microsoft Azure. نفذ الخطوات التالية لتنزيل ملفات الإدخال لاختبار تحميل موجود في مدخل Microsoft Azure:

  1. في مدخل Microsoft Azure، انتقل إلى مورد اختبار تحميل Azure.

  2. في الجزء الأيمن، حدد Tests لعرض قائمة اختبارات التحميل، ثم حدد اختبارك.

    Screenshot that shows the list of tests for an Azure Load Testing resource.

  3. تحديد علامة الحذف (...) بجوار تشغيل الاختبار الذي تعمل عليه، ثم حدد تنزيل ملف الإدخال.

    يقوم المستعرض بتنزيل مجلد مضغوط يحتوي على ملفات إدخال اختبار التحميل.

    Screenshot that shows how to download the results file for a load test run.

  4. استخدم أي أداة مضغوطة لاستخراج ملفات الإدخال.

    يحتوي المجلد على الملفات التالية:

    • config.yaml: ملف تكوين YAML لاختبار التحميل. يمكنك الرجوع إلى هذا الملف في تعريف سير عمل CI/CD.
    • .jmx: البرنامج النصي لاختبار JMeter
    • أي ملفات إدخال إضافية، مثل ملفات CSV أو ملفات خصائص المستخدم المطلوبة لتشغيل اختبار التحميل.
  5. تثبيت جميع ملفات الإدخال المستخرجة في مستودع التحكم بالمصادر.

    استخدم مستودع التعليمات البرمجية المصدر الذي تقوم فيه بتكوين البنية الأساسية لبرنامج ربط العمليات التجارية CI/CD.

تحديث تعريف سير عمل CI/CD

يدعم Azure Load Testing كلا من GitHub Actions وAzure Pipelines لتشغيل اختبارات التحميل.

تثبيت ملحق اختبار تحميل Azure ل Azure DevOps

لإنشاء اختبار تحميل وتشغيله، يستخدم تعريف سير عمل Azure Pipelines ملحق مهمة Azure Load Testing من Azure DevOps Marketplace.

  1. افتح ملحق مهمة Azure Load Testing في Azure DevOps Marketplace، وحدد Get it free.

  2. حدد مؤسسة Azure DevOps، ثم حدد تثبيت لتثبيت الملحق.

    إذا لم يكن لديك امتيازات المسؤول لمؤسسة Azure DevOps المحددة، فحدد طلب لطلب مسؤول لتثبيت الملحق.

تحديث سير عمل Azure Pipelines

قم بتحديث سير عمل Azure Pipelines لتشغيل اختبار تحميل لمورد اختبار تحميل Azure.

  1. سجل الدخول إلى مؤسسة Azure DevOps (https://dev.azure.com/<your-organization>)، وحدد مشروعك.

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

    بدلا من ذلك، حدد Create Pipeline لإنشاء مسار جديد في Azure Pipelines.

  3. AzureLoadTest استخدم المهمة لتشغيل اختبار التحميل.

    حدد ملف تكوين اختبار التحميل الذي قمت بتصديره مسبقا في الخاصية loadTestConfigFile .

    استبدل العناصر النائبة <load-testing-resource> للنص و <load-testing-resource-group> باسم مورد اختبار تحميل Azure ومجموعة الموارد.

        - task: AzureLoadTest@1
          inputs:
            azureSubscription: $(serviceConnection)
            loadTestConfigFile: 'config.yaml'
            loadTestResource: <load-testing-resource>
            resourceGroup: <load-testing-resource-group>
    

    اختياريا، يمكنك تمرير المعلمات أو الأسرار إلى اختبار التحميل باستخدام الخاصية env أو secrets .

  4. publish استخدم المهمة لنشر نتائج الاختبار كقطع أثرية في تشغيل سير عمل Azure Pipelines.

        - publish: $(System.DefaultWorkingDirectory)/loadTest
          artifact: loadTestResults
    

عرض نتائج اختبار التحميل

عند تشغيل اختبار تحميل من البنية الأساسية لبرنامج ربط العمليات التجارية CI/CD، يمكنك عرض نتائج الملخص مباشرة في سجل إخراج CI/CD. إذا قمت بنشر نتائج الاختبار كأداة مسار، يمكنك أيضا تنزيل ملف CSV لمزيد من التقارير.

Screenshot that shows the workflow logging information.

تنظيف الموارد

إذا كنت لا تخطط لاستخدام أي من الموارد التي قمت بإنشائها، فاحذفها حتى لا تتحمل أي رسوم إضافية.

  1. إزالة تغييرات Azure Pipelines:

    1. سجل الدخول إلى مؤسسة Azure DevOps (https://dev.azure.com/<your-organization>)، وحدد مشروعك.

      <your-organization> استبدل العنصر النائب للنص بمعرف المشروع.

    2. إذا قمت بإنشاء مسار جديد":

      1. حدد Pipelines، ثم حدد البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك.

      2. حدد علامة الحذف، ثم حدد حذف.

        Screenshot that shows how to delete an Azure Pipelines definition.

      3. أدخل اسم المسار، ثم حدد حذف لحذف البنية الأساسية لبرنامج ربط العمليات التجارية.

    3. إذا قمت بتعديل تعريف سير عمل موجود، فتراجع عن التعديلات لتشغيل اختبار التحميل، واحفظ سير العمل.

  2. إزالة اتصال الخدمة:

    1. حدد Project settings>Service connections، ثم حدد اتصال الخدمة.
    2. حدد تحرير>حذف لإزالة اتصال الخدمة.

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

تقدم إلى المقالة التالية لمعرفة كيفية تحديد تراجعات الأداء عن طريق تحديد معايير فشل الاختبار ومقارنة عمليات تشغيل الاختبار.