مشاركة عبر


تكامل محرك الاختبار والكاتب المسرحي (معاينة)

إشعار

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

نظرة عامة‬

Power Apps يستخدم Test Engine Playwright كتقنية أتمتة المتصفح الأساسية. يوفر هذا التكامل ل Test Engine إمكانات اختبار قوية وموثوقة وعبر المتصفحات مع إضافة عدة طبقات من التجريد لتبسيط إنشاء الاختبار للتطبيقات Power Platform .

كيف يعزز محرك الاختبار الكاتب المسرحي

بينما يقدم Playwright إمكانات أتمتة متضمنة ممتازة للمتصفح ، فإن Test Engine يوسع هذه الإمكانات خصيصا من أجل Power Platform:

اختبار تحسين المحرك الوصف
التجريدات على مستوى التطبيق يعمل محرك الاختبار مع الكائنات على مستوى التطبيق بدلا من عناصر DOM ، مما يجعل الاختبارات أكثر مرونة لتغييرات واجهة المستخدم
Power Fx تكامل يضيف Power Fx محرك الاختبار الدعم، مما يتيح اتباع نهج منخفض التعليمات البرمجية لاختبار التأليف
المصادقة المضمنة آليات المصادقة التي تم إنشاؤها مسبقا لمعالجة Microsoft Entra سيناريوهات الوصول المشروط والوصول المشروط
Dataverse تكامل يسمح التكامل المباشر بإجراء Dataverse اختبار شامل شامل
مقدمو الخدمات المتخصصون موفرو محسنة لتطبيقات اللوحة والتطبيقات المستندة إلى النموذج

التنفيذ التقني

تصف الأقسام التالية كيف يبني Test Engine على أساس أتمتة متصفح Playwright ويدمجها مع Power Platform تجريدات محددة ، مما يتيح أتمتة اختبار قوية وقابلة للصيانة.

أساس أتمتة المستعرض

يستخدم Test Engine الإمكانات الأساسية ل Playwright لأتمتة المتصفحات المتسقة:

  • دعم عبر المتصفحات لمتصفح Chrome Firefox و Microsoft Edge
  • آليات انتظار موثوقة تنتظر تلقائيا حتى تصبح العناصر جاهزة
  • اعتراض طلب الشبكة لمحاكاة استجابات واجهة برمجة التطبيقات
  • أدوات التتبع وتصحيح الأخطاء لتشخيص فشل الاختبار

التكامل المعماري لمحرك الاختبار

  • طبقة الموفر: تتعامل طبقة الموفر في محرك الاختبار مباشرة مع واجهات برمجة تطبيقات Playwright للتحكم في سلوك المستعرض
  • نموذج الكائن: بدلا من العمل مع عناصر DOM الأولية ، يقوم محرك الاختبار بتعيينات إلى نماذج الكائنات الخاصة بالتطبيق
  • Power Fx الطبقة: يتم تفسير خطوات الاختبار المكتوبة Power Fx وتنفيذها من خلال طبقة الموفر

الميزات التقنية الرئيسية

تسلط الأقسام التالية الضوء على الميزات التقنية المهمة التي يضيفها Test Engine أعلى Playwright، بما في ذلك المحددات الخاصة بالتطبيق وإدارة سياق المستعرض والوصول المباشر إلى وظائف Playwright للسيناريوهات المتقدمة.

المحددات الخاصة بالتطبيق

يستخدم Test Engine محددات خاصة بالتطبيق بدلا من CSS أو XPath المحددات:

# Test Engine (using app-level selectors)
- testSteps: |
    Select(Button1)

# Equivalent in raw Playwright (using DOM selectors)
    Select(Button1)
# page.locator('div[data-control-name="Button1"]').click();

إدارة سياق المتصفح

يدير Test Engine سياقات المستعرض لدعم سيناريوهات المصادقة المختلفة:

# Test Engine handles browser context automatically
pac test run `
   --provider canvas `
   --test-plan-file testplan.te.yaml `
   --tenant $tenantId `
   --environment-id $environmentId

وظائف الكاتب المسرحي المباشر

بينما يلخص محرك الاختبار العديد من تفاعلات Playwwriter ، هناك سيناريوهات يمكن أن يكون فيها الوصول المباشر إلى إمكانات Playwright ذا قيمة. يوفر محرك الاختبار العديد من وظائف المعاينة التي تتيح التفاعل المباشر مع Playwright من داخل خطوات الاختبار الخاصة بك Power Fx .

استخدام وظائف Playwist في Test Engine

يتضمن Test Engine وظائف المعاينة التالية التي تسمح لك بتطبيق إمكانات تحديد عنصر Playwright:

الدالة الوصف مثال
معاينة.PlaywrightAction تنفيذ إجراء على العناصر باستخدام CSS محددات DOM أو Preview.PlaywrightAction("//button", "click")
انظر عمليات عمل الكاتب المسرحي الشائعة
Preview.PlaywrightActionValue تنفيذ إجراء يتطلب معلمة قيمة Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello")
راجع عمليات قيمة عمل الكاتب المسرحي الشائعة
معاينة.PlaywrightScript تنفيذ برنامج نصي مخصص ل C # يتفاعل مع Playwright Preview.PlaywrightScript("sample.csx")
انظر خيارات متقدمة: نصوص الكتاب المسرحي المخصصة
معاينة.إيقاف مؤقت إيقاف تنفيذ الاختبار مؤقتا وعرض مفتش الكاتب الدراحي Preview.Pause()

إشعار

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

عمليات عمل الكائنات المسرحية الشائعة

يمكن إجراء العمليات التالية باستخدام Preview.PlaywrightAction:

الإجراء الوصف مثال
click تحديد عنصر باستخدام حدث النقر Preview.PlaywrightAction("//button[@id='submit']", "click")
exists التحقق مما إذا كان هناك عنصر Preview.PlaywrightAction("//div[@class='error-message']", "exists")
wait انتظر حتى يتوفر عنصر Preview.PlaywrightAction("//table[@data-loading='false']", "wait")

عمليات قيمة إجراء Playwist الشائعة

يمكن تنفيذ العمليات التالية باستخدام Preview.PlaywrightActionValue:

الإجراء الوصف مثال
fill املأ حقل نموذج بنص Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name")
select حدد خيارا من قائمة التحديد Preview.PlaywrightActionValue("//select", "select", "Option2")
setAttribute تعيين سمة على عنصر Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'")

متى تستخدم وظائف Playwauthor المباشرة

بينما يفضل التجريد على مستوى التطبيق، تكون وظائف Playwright المباشرة مفيدة في هذه السيناريوهات:

  • تفاعلات واجهة المستخدم المعقدة التي لا تغطيها وظائف محرك الاختبار القياسية
  • مكونات الجهات الخارجية داخل Power Platform التطبيقات التي تحتاج إلى معالجة خاصة
  • تصحيح أخطاء سيناريوهات الاختبار المعقدة حيث تحتاج إلى مزيد من التحكم
  • التحقق المتقدم من صحة حالات العنصر أو الخصائص

مثال: النهج المشترك

يوضح هذا المثال الجمع بين التجريدات على مستوى التطبيق وإجراءات الكاتب الوظيفي المباشرة:

testSteps: |
  # Use app-level abstraction for Power Apps control
  Select(SubmitButton);
  
  # Use direct Playwright action for a third-party component
  Preview.PlaywrightAction("//div[@class='custom-calendar']//button[@data-day='15']", "click");
  
  # Wait for a specific condition using Playwright
  Preview.PlaywrightAction("//div[@data-status='complete']", "wait");
  
  # Resume using app-level abstractions
  Assert(Label1.Text = "Submission Complete");

متقدم: نصوص مكتوبة مخصصة للكاتب المسرحي

بالنسبة للسيناريوهات عالية التخصص، يمكنك إنشاء نصوص برمجية مخصصة لكاتب Playwright:

  1. إنشاء .csx ملف باستخدام منطق Playwwriter المخصص
  2. المرجع المطلوب تجميعات الكتاب المسرحيين
  3. تنفيذ هيكل الفصل المطلوب
  4. استدعاء البرنامج النصي من خطوات الاختبار
// sample.csx
#r "Microsoft.Playwright.dll"
#r "Microsoft.Extensions.Logging.dll"
using Microsoft.Playwright;
using Microsoft.Extensions.Logging;

public class PlaywrightScript {
    public static void Run(IBrowserContext context, ILogger logger) {
        Execute(context, logger).Wait();
    }

    public static async Task Execute(IBrowserContext context, ILogger logger) {
        var page = context.Pages.First();
        // Custom Playwright logic here
    }
}

إشعار

يتم تنفيذ Preview.PlaywrightScript فقط لإصدارات تصحيح الأخطاء لمحرك الاختبار الذي تم إنشاؤه من المصدر ، وليس في الأداة التي تم إصدارها pac test run .

التكامل مع عملية التطوير

توضح الأقسام التالية كيف يمكن استخدام Test Engine و Playwright في كل من بيئات التطوير المحلي و CI / CD ، مما يدعم مجموعة من مهام سير العمل من تصحيح الأخطاء التفاعلي إلى التنفيذ التلقائي لخط الأنابيب.

التنمية المحلية

للتطوير المحلي ، يوفر Test Engine بيئة كاملة:

  • تنفيذ المستعرض المحلي مع رؤية واجهة المستخدم
  • تنفيذ الاختبار خطوة بخطوة
  • السجلات والتشخيصات التفصيلية

تكامل CI/CD

في بيئات CI/CD، يمكن ل Test Engine تشغيل Playwist في وضع مقطوعة الرأس:

# Example Azure DevOps pipeline step
- task: PowerShell@2
  displayName: 'Run Test Engine Tests'
  inputs:
    script: |
      pac test run `
        --provider canvas `
        --test-plan-file "$(Build.SourcesDirectory)/tests/testplan.te.yaml" `
        --tenant "$(TenantId)" `
        --environment-id "$(EnvironmentId)"

أفضل الممارسات

عند العمل مع تكامل Playwright في Test Engine:

  • التركيز على الكائنات على مستوى التطبيق بدلا من عناصر DOM
  • استخدام Power Fx الوظائف للمنطق المعقد بدلا من JavaScript الخام
  • استفد من آليات المصادقة المضمنة
  • حجز وظائف Playwwriter المباشر للسيناريوهات التي تكون فيها التجريدات على مستوى التطبيق غير كافية
  • مراجعة الاختبارات التي تم إنشاؤها لتحسين قابلية القراءة والصيانة