Power Apps تنسيق YAML لمحرك الاختبار (مهمل)

ملحوظة

تم إهمال محرك الاختبار وسيتم إزالته في إصدار مستقبلي. استخدم Power Platform Playwright samples لقدرات أتمتة الاختبار في Power Platform وخدمات Dynamics 365.

يتم تعريف الاختبارات في YAML باتباع نفس الإرشادات التي يتبعها Power Fx. تعرف على المزيد حول التدقيق النحوي لصيغة Power Fx YAML.

اعرض مجلد PowerApps-TestEngine/samples للحصول على أمثلة مفصلة.

تعريفات مخطط YAML

الخاصية الوصف
testSuite يحدد مجموعة اختبار واحدة، وحالات الاختبار في مجموعة الاختبار والتكوين الخاص ب مجموعة الاختبار
إعدادات الاختبار تحديد إعدادات مجموعة الاختبار التي تتم إعادة استخدامها عبر حالات اختبار متعددة
متغيرات البيئة تحديد المتغيرات التي يمكن أن تتغير أثناء نقل التطبيق عبر بيئات مختلفة

testSuite

يستخدم لتعريف اختبار واحد.

الخاصية النوع الوصف
persona سلسلة نصية مطلوب. المستخدم الذي قام بتسجيل الدخول لإجراء الاختبار. يجب أن تتطابق مع شخصية مدرجة في قسم المستخدمين .
testCases قوالب الاختبار مطلوب. يحدد حالات الاختبار في مجموعة الاختبار. يتم تشغيل حالات الاختبار الموجودة في مجموعات الاختبار بشكل تسلسلي. تستمر حالة التطبيق عبر جميع حالات الاختبار في مجموعة.
testSuiteName سلسلة نصية مطلوب. اسم مجموعة الاختبار.
appLogicalName سلسلة نصية اختياري. الاسم المنطقي للتطبيق الذي سيتم تشغيله. يمكن الحصول عليه من الحل. بالنسبة لتطبيقات اللوحة، تحتاج إلى إضافته إلى حل للحصول عليه. راجع كيفية تحديد التطبيق الخاص بك في خطة الاختبار
appId Guid اختياري. معرف التطبيق الذي سيتم تشغيله. مطلوب ويستخدم فقط عندما appLogicalName لا يكون موجودا. يجب استخدام معرف التطبيق فقط لتطبيقات اللوحة غير الموجودة في الحل. راجع كيفية تحديد التطبيق الخاص بك في خطة الاختبار
networkRequestMocks NetworkRequestMocks اختياري. تعريف نماذج طلب الشبكة المطلوبة للاختبار.
onTestCaseComplete سلسلة نصية اختياري. يحدد الخطوات التي يجب تشغيلها لكل حالة اختبار في مجموعة بعد انتهاء تنفيذ الحالة.
onTestCaseStart سلسلة نصية اختياري. يحدد الخطوات التي يجب تشغيلها لكل حالة اختبار في مجموعة قبل بدء تنفيذ الحالة.
onTestSuiteComplete سلسلة نصية اختياري. يحدد الخطوات التي يجب تشغيلها بعد انتهاء تنفيذ المجموعة.
testSuiteDescription سلسلة نصية اختياري. توضح المعلومات الإضافية ما تقوم به مجموعة الاختبار.

كيفية تحديد التطبيق الخاص بك في خطة الاختبار

تحتاج إلى تعيين إما appLogicalName أو appId لتحديد التطبيق الخاص بك. يعتمد الذي تستخدمه على ما إذا كان تطبيقك محددا ضمن أحد الحلول.

عند تحديد تطبيقاتك ضمن الحلول، تظل اختباراتك قابلة للنقل عبر البيئات. قم بتعيين الخاصية appLogicalName للإشارة إلى أن التطبيق يستند إلى الحل.

لتحديد موقع الاسم المنطقي للتطبيق:

  1. افتح الحل الذي يحتوي على تطبيقك في Power Apps
  2. استخدم الاسم (وليس الاسم المعروض) في القائمة. تتضمن قيمة الاسم بادئة التخصيص لناشر الحل.

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

عندما لا يتم تعريف تطبيقك ضمن حل، تحتاج إلى استخدام الخاصية appId .

لتحديد موقع معرف التطبيق:

  1. تحديد موقع التطبيق في قائمة Power Apps
  2. افتح التفاصيل ولاحظ معرف التطبيق GUID

NetworkRequestMocks

الخاصية النوع الوصف
requestURL سلسلة نصية مطلوب. عنوان URL للطلب الذي يحصل على استجابة وهمية. يتم قبول أنماط Glob
responseDataFile سلسلة نصية مطلوب. ملف نصي مع محتوى الاستجابة الوهمية. تتم قراءة كل النص في هذا الملف كاستجابة
headers مصفوفة اختياري. قائمة حقول العنوان في الطلب بتنسيق [fieldName: fieldValue]
method سلسلة نصية اختياري. طريقة الطلب (GET وPOST وما إلى ذلك)
requestBodyFile سلسلة نصية اختياري. ملف نصي مع نص الطلب. تتم قراءة كل النص الموجود في هذا الملف كنص الطلب الأساسي

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

بالنسبة لتطبيقات Sharepoint/Dataverse/Connector، requestURLmethod ويمكن أن تكون هي نفسها لجميع الطلبات. x-ms-request-method x-ms-request-url وفي العناوين قد تحتاج إلى تكوين في هذه الحالة لتحديد طلبات مختلفة.

قوالب الاختبار

الخاصية النوع الوصف
testCaseName سلسلة نصية مطلوب. اسم حالة الاختبار المستخدمة في الإبلاغ عن النجاح والفشل
testSteps خطوات الاختبار مطلوب. مجموعة من وظائف Power Fx تصف الخطوات اللازمة لتنفيذ حالة الاختبار. راجع مثال TestSteps
testCaseDescription لا. اختياري. توضح المعلومات الإضافية ما تفعله حالة الاختبار

خطوات الاختبار

  • TestSteps يمكن استخدام أي وظائف Power Fx لمحرك الاختبار موجودة أو وظائف اختبار محددة يحددها إطار العمل هذا.
  • يجب أن تبدأ القيمة برمز توجيه (|) للسماح بتعبيرات YAML متعددة الأسطر متبوعة بعلامة يساوي (=) للإشارة إلى أنه تعبير Power Fx
  • يجب فصل الدالات بفواصل منقوطة (;).
  • يمكن استخدام التعليقات ويجب أن تبدأ بأحرف مائلة عكسية مزدوجة (//).

مثال TestSteps

testCases:
   - testCaseName: Fill in a city name and do the search
   testSteps: |
      = Screenshot("connectorapp_loaded.png");
         SetProperty(TextInput1.Text, "Atlanta");
         Select(Button1);
         Assert(Label4.Text = "You are seeing the mock response", "Validate the output is from the mock");
         Screenshot("connectorapp_end.png");

إعدادات الاختبار

يستخدم لتحديد إعدادات الاختبارات في خطة الاختبار.

الخاصية النوع الوصف
browserConfigurations تكوين المستعرض[] مطلوب. قائمة تكوينات المستعرض التي سيتم اختبارها. يجب تحديد مستعرض واحد على الأقل.
extensionModules الوحدات الملحقة اختياري. يحتوي على بيانات حول الملحقات لتمكينها.
filePath سلسلة نصية اختياري. مسار الملف إلى ملف yaml منفصل مع جميع إعدادات الاختبار. إذا تم توفيره، فإنه سيتجاوز جميع إعدادات الاختبار في خطة الاختبار.
headless boolean اختياري. الافتراضي صحيح. إذا تم تعيينه إلى خطأ، يظهر المستعرض أثناء تنفيذ الاختبار.
locale سلسلة نصية اختياري. بناء جملة اللغة/الثقافة التي تتم فيها كتابة حالات الاختبار أو خطوات الاختبار. إذا لم يتم تحديده، CultureInfo.CurrentCulture يتم استخدامه للإعدادات المحلية بشكل افتراضي لتحليل خطوات الاختبار. راجع اعتبارات المنطقة واللغة
recordVideo boolean اختياري. التخلف الافتراضي غير صحيح. إذا تم تعيينه إلى true، يتم التقاط تسجيل فيديو للاختبار.
timeout العدد الصحيح اختياري. قيمة المهلة بالمللي ثانية. الافتراضي هو 30000 مللي ثانية (30 ثانية). إذا استغرقت أي عملية وقتا أطول من حد المهلة، فإنها تنهي الاختبار في حالة فشل.
powerFxTestTypes name value زوج اختياري. قائمة باسم النوع وتعريفات نوع Power Fx. راجع مثال powerFxTestTypes
testFunctions description code زوج اختياري. قائمة بالوصف وتعريفات وظائف Power Fx. راجع مثال testFunctions

الوحدات الملحقة

يحتوي على بيانات حول الملحقات لتمكينها.

الخاصية النوع الوصف
enable قيمة منطقية ما إذا كانت وحدات الملحق ممكنة أم لا.
allowPowerFxNamespaces القائمة قائمة بمساحات أسماء PowerFx المراد تمكينها.
parameters أزواج قيم المفاتيح خصائص ذات قيم للتحكم في وحدات الملحق. في هذا الوقت، المعلمة المنطقية enableDataverseFunctions فقط صالحة لهذا.

يوضح هذا المثال كيفية تمكين مساحة اسم PowerFx Preview :

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview

تعرف على المزيد حول وظائف المعاينة

اعتبارات المنطقة واللغة

يدعم Test Engine العديد من الإعدادات اللغوية والإقليمية مثل الفاصلات العشرية وفواصل القوائم. تتحكم الخاصية testSettings.locale في هذه السلوكيات. لمزيد من المعلومات، راجع Global Support في Microsoft Power Fx.

انظر إلى تكوينات العينة هذه على مستودع PowerApps-TestEngine GitHub:

مثال على powerFxTestTypes

powerFxTestTypes:
 - name: ControlName
   value: |
      {ControlName: Text} 
 - name: Options
   value: |
      [{Name: Text, Value: Number}]   

يوضح هذا المثال كيفية تعريف أنواع Power Fx المخصصة لاستخدامها في حالات الاختبار الخاصة بك. ControlName يتم تعريف النوع كسجل مع حقل واحدText، بينما Options يتم تعريف النوع كجدول سجلات، يحتوي كل منها على Name حقل من النوع Text وحقل Value من النوع Number. يمكن استخدام الأنواع المخصصة لإنشاء سيناريوهات اختبار أكثر تعقيدا ومحددة، ما يعزز مرونة تعريفات الاختبار وقوتها.

مثال على testFunctions

testFunctions:
 - description: Wait until control is visible using Document Object Model (DOM) selector
   code: |
    WaitUntilVisible(control: Text): Void = 
      Preview.PlaywrightAction(Concatenate("//div[@data-id='", control, "']"), "wait");
 - description: Get the options for a control using Power Fx control from Model Driven App (MDA)
   code: |
    GetOptions(control: ControlName): Options =
      Preview.GetOptions(control);

توضح أمثلة دالة الاختبار هذه كيفية تعريف وظائف Power Fx المخصصة للاستخدام في حالات الاختبار الخاصة بك. WaitUntilVisible تستخدم الدالة محدد DOM للانتظار حتى يكون عنصر تحكم محدد مرئيا، باستخدام إجراءات Playwright. تسترد الدالة GetOptions الخيارات لعنصر تحكم محدد من تطبيق يستند إلى نموذج (MDA)، باستخدام عنصر تحكم Power Fx. تعزز هذه الوظائف المخصصة مرونة وقوت تعريفات الاختبار الخاصة بك، ما يسمح بسيناريوهات اختبار أكثر تعقيدا ومحددة.

تكوين المستعرض

يتطلب كل testSettings واحدا BrowserConfigurationعلى الأقل.

الخاصية النوع الوصف
browser سلسلة نصية مطلوب. المتصفح الذي سيتم تشغيله عند الاختبار. يجب أن تتطابق مع المستعرضات التي يدعمها Playwright.
device سلسلة نصية اختياري. الجهاز الذي يجب محاكاته عند تشغيل المتصفح. يجب أن تتطابق مع الأجهزة التي يدعمها Playwright
screenHeight العدد الصحيح اختياري. ارتفاع الشاشة لاستخدامها عند تشغيل المستعرض. إذا تم تحديده، screenWidth يجب أيضا تحديده.
screenWidth العدد الصحيح اختياري. عرض الشاشة المراد استخدامها عند تشغيل المستعرض. إذا تم تحديده، screenHeight يجب أيضا تحديده.

environmentVariables

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

المستخدمون

لضمان تخزين بيانات الاعتماد بطريقة آمنة، يشير تعريف الاختبار إلى المستخدمين الذين يستخدمون personaName. تخزين بيانات الاعتماد في ملفات خطة الاختبار غير مدعوم.

مثال:

environmentVariables:
    - users:
        - personaName: "User1"
          emailKey: "user1Email"
        - personaName: "User2"
          emailKey: "user2Email"

personaName يتم استخدام كجزء من تعريف الاختبار للإشارة إلى المستخدم الذي يجب تشغيل الاختبار عليه.

آليات تخزين بيانات الاعتماد المدعومة

لتخزين بيانات الاعتماد كمتغيرات بيئة، يمكنك تعيينها على النحو التالي:

# In PowerShell - replace variableName and variableValue with the correct values
$env:variableName = "variableValue"

في YAML، يجب تعريف خاصيتين للإشارة إلى أن بيانات اعتماد هذا المستخدم مخزنة في متغيرات البيئة:

  • emailKey: متغير البيئة المستخدم لتخزين البريد الإلكتروني للمستخدم.

مثال YAML:

    - personaName: "User1"
      emailKey: "user1Email"

مثال PowerShell لتعيين بيانات اعتماد المستخدم استنادا إلى YAML:

$env:user1Email = "someone@example.com"

راجع أيضًا

نظرة عامة على Power Apps Test Engine (مهمل)
محرك الاختبار لوظائف Power Fx في Power Apps (غير مدعوم)