שתף דרך


אינטגרציה של מנוע בדיקה ושל מחזאי (תצוגה מקדימה)

הערה

תכונות Preview אינן מיועדות לשימוש בסביבת ייצור, והפונקציונליות שלהן עשויה להיות מוגבלת. תכונות אלו זמינות לפני הפרסום הרשמי כך שלקוחות יוכלו לקבל גישה מוקדמת ולספק משוב.

מבט כולל

Power Apps מנוע הבדיקה משתמש ב- Playwright כטכנולוגיית אוטומציה מרכזית לדפדפן. שילוב זה מספק ל-Test Engine יכולות בדיקה חזקות, אמינות וחוצות דפדפנים, תוך הוספת מספר שכבות של הפשטה כדי לפשט את יצירת הבדיקות עבור יישומים. Power Platform

כיצד Test Engine משפר את Playwriter

בעוד ש-Playwriter מציע יכולות אוטומציה מצוינות בדפדפן, Test Engine מרחיב יכולות אלו במיוחד עבור Power Platform:

שיפור מנוע הבדיקה Description
הפשטות ברמת האפליקציה מנוע הבדיקה עובד עם אובייקטים ברמת האפליקציה ולא עם אלמנטים של DOM, מה שהופך את הבדיקות לעמידות יותר בפני שינויים בממשק המשתמש.
Power Fx הִשׁתַלְבוּת מנוע הבדיקה מוסיף תמיכה, המאפשרת גישה של קוד נמוך לעריכת בדיקות Power Fx
אימות מובנה מנגנוני אימות מוכנים מראש מטפלים בתרחישי Microsoft Entra גישה מותנית
Dataverse הִשׁתַלְבוּת אינטגרציה ישירה עם Dataverse מאפשרת בדיקות מקיפות מקצה לקצה
ספקים מתמחים ספקים ממוטבים עבור אפליקציות קנבס ו אפליקציות מונחות-מודלים

יישום טכני

הסעיפים הבאים מתארים כיצד Test Engine בונה על בסיס אוטומציה של דפדפנים של Playwright ומשלב אותו עם הפשטות ספציפיות, מה שמאפשר אוטומציה חזקה וניתנת לתחזוקה של בדיקות. Power Platform

יסודות אוטומציה של דפדפנים

מנוע הבדיקה משתמש ביכולות הליבה של Playwright לאוטומציה עקבית של דפדפנים:

  • תמיכה בין דפדפנים עבור Chrome, Firefox, ו Microsoft Edge
  • מנגנוני המתנה אמינים הממתינים אוטומטית עד שהאלמנטים יהיו מוכנים
  • יירוט בקשות רשת לסימולציה של תגובות API
  • כלי מעקב וניפוי שגיאות לאבחון כשלים בבדיקות

האינטגרציה הארכיטקטונית של מנוע הבדיקה

  • שכבת הספק: שכבת הספק במנוע הבדיקה מתממשקת ישירות עם ממשקי ה-API של Playwright כדי לשלוט בהתנהגות הדפדפן.
  • מודל אובייקט: במקום לעבוד עם אלמנטים גולמיים של DOM, מנוע הבדיקה ממפה למודלי אובייקטים ספציפיים ליישום.
  • Power Fx שכבה: שלבי הבדיקה שנכתבו ב Power Fx מתפרשים ומבוצעים דרך שכבת הספק

מאפיינים טכניים מרכזיים

הסעיפים הבאים מדגישים תכונות טכניות חשובות ש-Test Engine מוסיף בנוסף ל-Playwright, כולל בוררים ספציפיים לאפליקציה, ניהול הקשר של דפדפן וגישה ישירה לפונקציות Playwright עבור תרחישים מתקדמים.

בוררים ספציפיים לאפליקציה

מנוע הבדיקה משתמש בבוררים ספציפיים לאפליקציה במקום בבוררים 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 handles browser context automatically
pac test run `
   --provider canvas `
   --test-plan-file testplan.te.yaml `
   --tenant $tenantId `
   --environment-id $environmentId

פונקציות מחזאי ישיר

בעוד שמנוע הבדיקה מפשט אינטראקציות רבות עם Playwright, ישנם תרחישים שבהם גישה ישירה ליכולות Playwright יכולה להיות בעלת ערך. מנוע הבדיקה מספק מספר פונקציות תצוגה מקדימה המאפשרות אינטראקציה ישירה עם Playwright מתוך שלבי הבדיקה שלך. Power Fx

שימוש בפונקציות Playwriter במנוע הבדיקה

מנוע הבדיקה כולל את פונקציות התצוגה המקדימה הבאות המאפשרות לך להחיל את יכולות בחירת האלמנטים של Playwright:

פונקציה Description דוגמה
תצוגה מקדימה.מחזאי פעולה ביצוע פעולה על אלמנטים באמצעות בוררי CSS או DOM Preview.PlaywrightAction("//button", "click")
ראה פעולות פעולה נפוצות של מחזאי
תצוגה מקדימה.ערך פעולה של מחזאי ביצוע פעולה הדורשת פרמטר ערך Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello")
ראה פעולות ערך פעולה נפוצות של מחזאים
תצוגה מקדימה.תסריט מחזאי הפעלת סקריפט C# מותאם אישית שממשק עם Playwright Preview.PlaywrightScript("sample.csx")
ראה מתקדם: תסריטים מותאמים אישית של מחזאים
תצוגה מקדימה.השהיה השהיית ביצוע הבדיקה והצגת מפקח המחזאים Preview.Pause()

הערה

כדי להשתמש בפונקציות תצוגה מקדימה אלו, עליך להוסיף את פונקציות התצוגה המקדימה לרשימת המותרים במקטע הגדרות הבדיקה שלך.

פעולות פעולה נפוצות של מחזאי

ניתן לבצע את הפעולות הבאות באמצעות Preview.PlaywrightAction:

פעולה Description דוגמה
click בחירת אלמנט באמצעות אירוע לחיצה Preview.PlaywrightAction("//button[@id='submit']", "click")
exists בדיקה אם קיים אלמנט Preview.PlaywrightAction("//div[@class='error-message']", "exists")
wait המתן עד שאלמנט יהיה זמין Preview.PlaywrightAction("//table[@data-loading='false']", "wait")

פעולות ערך פעולה נפוצות של מחזאי

ניתן לבצע את הפעולות הבאות באמצעות Preview.PlaywrightActionValue:

פעולה Description דוגמה
fill מילוי שדה טופס בטקסט Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name")
select בחר אפשרות מרשימת בחירה Preview.PlaywrightActionValue("//select", "select", "Option2")
setAttribute הגדרת תכונה על אלמנט Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'")

מתי להשתמש בפונקציות מחזאי ישירות

בעוד שאבסטרקציות ברמת האפליקציה עדיפות, פונקציות ישירות של Playwright שימושיות בתרחישים אלה:

  • אינטראקציות מורכבות של ממשק משתמש אינן מכוסות על ידי פונקציות סטנדרטיות של מנוע בדיקה
  • רכיבים של צד שלישי בתוך Power Platform יישומים הדורשים טיפול מיוחד
  • ניפוי באגים בתרחישי בדיקה מורכבים שבו נדרשת שליטה רבה יותר
  • אימות מתקדם של מצבי או מאפייני אלמנטים

דוגמה: גישה משולבת

דוגמה זו מדגימה שילוב של אבסטרקציות ברמת האפליקציה עם פעולות ישירות של Playwriter:

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");

מתקדם: תסריטים מותאמים אישית למחזאי

עבור תרחישים מיוחדים ביותר, ניתן ליצור תסריטים מותאמים אישית של מחזאי:

  1. צור קובץ עם לוגיקת מחזאי מותאמת אישית שלך .csx
  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
    }
}

אינטגרציה עם תהליך הפיתוח

הסעיפים הבאים מתארים כיצד ניתן להשתמש ב-Test Engine וב-Playwright הן בסביבות פיתוח מקומי והן בסביבות CI/CD, תוך תמיכה במגוון זרימות עבודה, החל מניקוי שגיאות אינטראקטיבי ועד לביצוע אוטומטי של צינור.

פיתוח מקומי

לפיתוח מקומי, Test Engine מספק סביבה מלאה:

  • ביצוע דפדפן מקומי עם נראות ממשק משתמש
  • ביצוע בדיקה שלב אחר שלב
  • יומני רישום ואבחון מפורטים

שילוב CI/CD

בסביבות CI/CD, Test Engine יכול להריץ את Playwriter במצב Headless:

# 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 גולמי
  • נצל את מנגנוני האימות המובנים
  • שמרו פונקציות ישירות של Playwright עבור תרחישים שבהם הפשטות ברמת האפליקציה אינן מספיקות
  • סקירת בדיקות שנוצרו כדי לייעל את הקריאות והתחזוקה