إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
إشعار
الهدف من ميزات المعاينة ليس الاستخدام في الإنتاج وقد يكون لها دالات مقيدة. تتوفر هذه الميزات قبل إصدار رسمي وبذلك يستطيع العملاء الحصول على وصول مبكر وتقديم التعليقات.
نظرة عامة
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:
- إنشاء
.csxملف باستخدام منطق Playwwriter المخصص - المرجع المطلوب تجميعات الكتاب المسرحيين
- تنفيذ هيكل الفصل المطلوب
- استدعاء البرنامج النصي من خطوات الاختبار
// 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 المباشر للسيناريوهات التي تكون فيها التجريدات على مستوى التطبيق غير كافية
- مراجعة الاختبارات التي تم إنشاؤها لتحسين قابلية القراءة والصيانة