تصدير نتائج الاختبار من Azure Load Testing للاستخدام في أدوات الجهات الخارجية

في هذه المقالة، ستتعلم كيفية تصدير نتائج اختبار اختبار تحميل Azure. يمكنك تنزيل النتائج باستخدام مدخل Microsoft Azure، أو كأداة في سير عمل CI/CD، أو في JMeter باستخدام وحدة استماع خلفية، أو عن طريق نسخ النتائج من حساب تخزين Azure. يمكنك استخدام هذه النتائج للإبلاغ في أدوات الجهات الخارجية أو لتشخيص حالات فشل الاختبار. يقوم Azure Load Testing بإنشاء نتائج الاختبار بتنسيق ملف قيم مفصولة بفواصل (CSV)، ويوفر تفاصيل كل طلب تطبيق لاختبار التحميل.

يمكنك أيضا استخدام نتائج الاختبار لتشخيص الأخطاء أثناء اختبار التحميل. responseCode تمنحك الحقول و responseMessage مزيدا من المعلومات حول الطلبات الفاشلة. لمزيد من المعلومات حول التحقق من الأخطاء، راجع تشخيص اختبارات التحميل الفاشلة.

يمكنك إنشاء لوحة معلومات Apache JMeter من ملف سجل CSV باتباع الخطوات المذكورة هنا.

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

  • حساب Azure مع اشتراك نشط. في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
  • مورد اختبار تحميل Azure الذي يحتوي على تشغيل اختبار مكتمل. إذا كنت بحاجة إلى إنشاء مورد اختبار تحميل Azure، فشاهد إنشاء اختبار تحميل وتشغيله.

تنسيق ملف نتائج الاختبار

ينشئ Azure Load Testing ملف CSV لنتائج الاختبار لكل مثيل محرك اختبار. تعرف على كيفية توسيع نطاق اختبار التحميل.

يستخدم Azure Load Testing تنسيق سجل Apache JMeter CSV. لمزيد من المعلومات حول الحقول المختلفة، راجع مسرد JMeter في وثائق Apache JMeter.

يمكنك العثور على تفاصيل كل طلب تطبيق لتشغيل اختبار التحميل في ملف نتائج الاختبار. تعرض القصاصة البرمجية التالية نتيجة اختبار نموذجية:

timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
1676040230680,104,Homepage,200,OK,172.18.33.7-Thread Group 1-5,text,true,,1607,133,5,5,https://www.example.com/,104,0,100
1676040230681,101,Homepage,200,OK,172.18.33.7-Thread Group 1-3,text,true,,1591,133,5,5,https://www.example.com/,101,0,93
1676040230680,101,Homepage,200,OK,172.18.33.7-Thread Group 1-1,text,true,,1591,133,5,5,https://www.example.com/,98,0,94

الوصول إلى نتائج اختبار التحميل وتنزيلها

بعد انتهاء تشغيل اختبار التحميل، يمكنك الوصول إلى نتائج اختبار التحميل وتنزيلها من خلال مدخل Microsoft Azure، أو كأداة في سير عمل CI/CD.

هام

بالنسبة لاختبارات التحميل مع أكثر من 45 مثيل محرك أو مدة تشغيل اختبار أكبر من 3 ساعات، لا يتوفر ملف النتائج للتنزيل. يمكنك تكوين JMeter Backend Listener لتصدير النتائج إلى مخزن بيانات من اختيارك أو نسخ النتائج من حاوية حساب تخزين.

لتنزيل نتائج الاختبار لتشغيل اختبار في مدخل 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.

      إشعار

      يجب أن يكون تشغيل اختبار التحميل حالة تم أو متوقف أو فاشل لملف النتائج ليكون متوفرا للتنزيل.

    • في جزء Test run details ، حدد Download، ثم حدد Results.

      Screenshot that shows how to download the test results from the 'Test run details' pane.

  4. يمكنك استخدام أي أداة مضغوطة لاستخراج المجلد والوصول إلى نتائج الاختبار.

    Screenshot that shows the test results zip file in the downloads list.

    يحتوي المجلد على ملف CSV منفصل لكل محرك اختبار ويحتوي على تفاصيل الطلبات التي نفذها محرك الاختبار أثناء اختبار التحميل.

تصدير نتائج الاختبار باستخدام مستمعي الواجهة الخلفية JMeter

يمكنك استخدام وحدة إصغاء خلفية JMeter لتصدير نتائج الاختبار إلى قواعد بيانات مثل InfluxDB أو MySQL أو أدوات المراقبة مثل Azure Application Insights.

يمكنك استخدام وحدات الاستماع الافتراضية لواجهة JMeter الخلفية أو وحدات الاستماع الخلفية من jmeter-plugins.org أو وحدة استماع خلفية مخصصة في شكل ملف أرشيف Java (JAR).

يوضح مقتطف التعليمات البرمجية التالي مثالا على كيفية استخدام وحدة الإصغاء الخلفية ل Azure Application Insights، في ملف JMeter (JMX):

<BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
  <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
    <collectionProp name="Arguments.arguments">
      <elementProp name="testName" elementType="Argument">
        <stringProp name="Argument.name">testName</stringProp>
        <stringProp name="Argument.value">jmeter</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="connectionString" elementType="Argument">
        <stringProp name="Argument.name">connectionString</stringProp>
        <stringProp name="Argument.value">Enter your AppInsights connection string</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="liveMetrics" elementType="Argument">
        <stringProp name="Argument.name">liveMetrics</stringProp>
        <stringProp name="Argument.value">true</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="samplersList" elementType="Argument">
        <stringProp name="Argument.name">samplersList</stringProp>
        <stringProp name="Argument.value"></stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="useRegexForSamplerList" elementType="Argument">
        <stringProp name="Argument.name">useRegexForSamplerList</stringProp>
        <stringProp name="Argument.value">false</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="logResponseData" elementType="Argument">
        <stringProp name="Argument.name">logResponseData</stringProp>
        <stringProp name="Argument.value">OnFailure</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="logSampleData" elementType="Argument">
        <stringProp name="Argument.name">logSampleData</stringProp>
        <stringProp name="Argument.value">OnFailure</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
    </collectionProp>
  </elementProp>
  <stringProp name="classname">io.github.adrianmo.jmeter.backendlistener.azure.AzureBackendClient</stringProp>
</BackendListener>

يمكنك تنزيل المثال الكامل لاستخدام وحدة الإصغاء الخلفية ل Azure Application Insights.

نسخ البيانات الاصطناعية للاختبار من حاوية حساب تخزين

هام

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

لنسخ نتائج الاختبار وملفات السجل لتشغيل اختبار من حساب تخزين، في مدخل 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 the list of test runs for a test in an Azure Load Testing resource.

    تلميح

    للحد من عدد الاختبارات التي يجب عرضها في القائمة، يمكنك استخدام مربع البحث وعامل تصفية النطاق الزمني.

  4. في جزء Test run details ، حدد Copy artifacts.

    Screenshot that shows how to copy the test artifacts from the 'Test run details' pane.

    إشعار

    يجب أن يكون تشغيل اختبار التحميل في حالة Done أو Stopped أو Failed لملف النتائج ليكون متوفرا للتنزيل.

  5. انسخ عنوان URL SAS لحاوية حساب التخزين.

    يمكنك استخدام عنوان URL SAS في Azure Storage Explorer أو AzCopy لنسخ ملفات CSV النتائج وملفات السجل لتشغيل الاختبار إلى حساب التخزين الخاص بك.

    عنوان URL SAS صالح لمدة 60 دقيقة من وقت إنشائه. إذا انتهت صلاحية عنوان URL، فحدد Copy artifacts لإنشاء عنوان URL SAS جديد.