مشاركة عبر


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

إشعار

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

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

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

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

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

testSuite

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

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

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

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

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

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

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

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

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

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

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

NetworkRequestMocks

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

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

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

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

الخاصية نوع ‏‏الوصف
testCaseName string مطلوب. اسم حالة الاختبار المستخدمة في الإبلاغ عن النجاح والفشل
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 string اختياري. مسار الملف إلى ملف yaml منفصل مع جميع إعدادات الاختبار. إذا تم توفيره، فإنه سيتجاوز جميع إعدادات الاختبار في خطة الاختبار.
headless boolean اختياري. الافتراضي صحيح. إذا تم تعيينه إلى خطأ، يظهر المستعرض أثناء تنفيذ الاختبار.
locale string اختياري. بناء جملة اللغة/الثقافة التي تتم فيها كتابة حالات الاختبار أو خطوات الاختبار. إذا لم يتم تحديده، 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 في هذه السلوكيات. لمزيد من المعلومات، راجع الدعم العمومي في Microsoft Power Fx.

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

مثال على 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 string مطلوب. المتصفح الذي سيتم تشغيله عند الاختبار. يجب أن تتطابق مع المستعرضات التي يدعمها Playwright.
device string اختياري. الجهاز الذي يجب محاكاته عند تشغيل المتصفح. يجب أن تتطابق مع الأجهزة التي يدعمها Playwright
screenHeight العدد الصحيح اختياري. ارتفاع الشاشة لاستخدامها عند تشغيل المستعرض. إذا تم تحديده، screenWidth يجب أيضا تحديده.
screenWidth العدد الصحيح اختياري. عرض الشاشة المراد استخدامها عند تشغيل المستعرض. إذا تم تحديده، screenHeight يجب أيضا تحديده.

متغيرات البيئة

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

المُستخدمون

لضمان تخزين بيانات الاعتماد بطريقة آمنة، يشير تعريف الاختبار إلى المستخدمين الذين يستخدمون 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 (معاينة)
وظائف Power Apps Test Engine Power Fx (معاينة)