Κοινοποίηση μέσω


Δοκιμαστική μηχανή και ενσωμάτωση θεατρικού συγγραφέα (προεπισκόπηση)

Σημείωμα

Οι λειτουργίες προεπισκόπησης δεν προορίζονται για παραγωγική χρήση και ενδέχεται να έχουν περιορισμένη λειτουργικότητα. Αυτές οι δυνατότητες είναι διαθέσιμες πριν από μια επίσημη κυκλοφορία έτσι ώστε οι πελάτες να έχουν πρόσβαση από νωρίς και να κάνουν σχόλια.

Επισκόπηση

Power Apps Η Test Engine χρησιμοποιεί το Playwright ως βασική τεχνολογία αυτοματισμού προγράμματος περιήγησης. Αυτή η ενσωμάτωση παρέχει στο Test Engine ισχυρές, αξιόπιστες και δυνατότητες δοκιμών μεταξύ προγραμμάτων περιήγησης, ενώ προσθέτει πολλά επίπεδα αφαίρεσης για να απλοποιήσει τη δημιουργία δοκιμών για Power Platform εφαρμογές.

Πώς το Test Engine ενισχύει τον θεατρικό συγγραφέα

Ενώ το Playwright προσφέρει εξαιρετικές δυνατότητες αυτοματισμού προγράμματος περιήγησης, το Test Engine επεκτείνει αυτές τις δυνατότητες ειδικά για Power Platform:

Δοκιμή βελτίωσης κινητήρα Description
Αφαιρέσεις σε επίπεδο εφαρμογής Ο μηχανισμός δοκιμής λειτουργεί με αντικείμενα σε επίπεδο εφαρμογής και όχι με στοιχεία DOM, καθιστώντας τις δοκιμές πιο ανθεκτικές στις αλλαγές περιβάλλοντος εργασίας χρήστη
Power Fx Ολοκλήρωση Ο μηχανισμός δοκιμής προσθέτει Power Fx υποστήριξη, επιτρέποντας μια προσέγγιση χαμηλού κώδικα για τη σύνταξη δοκιμών
Ενσωματωμένος έλεγχος ταυτότητας Οι προκατασκευασμένοι μηχανισμοί ελέγχου ταυτότητας χειρίζονται Microsoft Entra σενάρια και σενάρια πρόσβασης υπό όρους
Dataverse Ολοκλήρωση Η άμεση ενσωμάτωση επιτρέπει Dataverse ολοκληρωμένες δοκιμές από άκρο σε άκρο
Εξειδικευμένοι Πάροχοι Βελτιστοποιημένες υπηρεσίες παροχής για εφαρμογές καμβά και εφαρμογές βάσει μοντέλου

Τεχνική εφαρμογή

Οι παρακάτω ενότητες περιγράφουν τον τρόπο με τον οποίο το Test Engine βασίζεται στη βάση αυτοματισμού του προγράμματος περιήγησης του Playwright και την ενσωματώνει με Power Platform συγκεκριμένες αφαιρέσεις, επιτρέποντας ισχυρή και διατηρήσιμη αυτοματοποίηση δοκιμών.

Θεμέλιο αυτοματισμού προγράμματος περιήγησης

Το Test Engine χρησιμοποιεί τις βασικές δυνατότητες του Playwright για συνεπή αυτοματοποίηση του προγράμματος περιήγησης:

  • Υποστήριξη μεταξύ προγραμμάτων περιήγησης για το Chrome Firefox και Microsoft Edge
  • Αξιόπιστοι μηχανισμοί αναμονής που περιμένουν αυτόματα τα στοιχεία να είναι έτοιμα
  • Υποκλοπή αιτημάτων δικτύου για προσομοίωση αποκρίσεων API
  • Εργαλεία εντοπισμού και εντοπισμού σφαλμάτων για τη διάγνωση αποτυχιών δοκιμών

Αρχιτεκτονική ολοκλήρωση της Test Engine

  • Επίπεδο παρόχου: Το επίπεδο παρόχου στη μηχανή δοκιμής διασυνδέεται απευθείας με τα API Playwright για τον έλεγχο της συμπεριφοράς του προγράμματος περιήγησης
  • Μοντέλο αντικειμένου: Αντί να εργάζεται με ακατέργαστα στοιχεία DOM, το Test Engine αντιστοιχίζεται σε μοντέλα αντικειμένων για συγκεκριμένες εφαρμογές
  • 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

Λειτουργίες Direct Playwright

Ενώ το Test Engine αφαιρεί πολλές αλληλεπιδράσεις Playwright, υπάρχουν σενάρια όπου η άμεση πρόσβαση στις δυνατότητες του Playwright μπορεί να είναι πολύτιμη. Το Test Engine παρέχει διάφορες λειτουργίες προεπισκόπησης που επιτρέπουν την άμεση αλληλεπίδραση με το Playwright μέσα Power Fx από τα βήματα δοκιμής.

Χρήση συναρτήσεων Playwright στο Test Engine

Το Test Engine περιλαμβάνει τις ακόλουθες λειτουργίες προεπισκόπησης που σας επιτρέπουν να εφαρμόσετε τις δυνατότητες επιλογής στοιχείων του Playwright:

Function Description Παράδειγμα
Preview.PlaywrightAction Εκτέλεση ενέργειας σε στοιχεία χρησιμοποιώντας CSS ή επιλογείς DOM Preview.PlaywrightAction("//button", "click")
Δείτε Κοινές Επιχειρήσεις Δράσης Θεατρικών Συγγραφέων
Preview.PlaywrightActionValue Εκτέλεση ενέργειας που απαιτεί παράμετρο τιμής Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello")
Δείτε Common Playwright Action Value Operations
Προεπισκόπηση.PlaywrightScript Εκτελέστε ένα προσαρμοσμένο σενάριο C# που διασυνδέεται με το Playwright Preview.PlaywrightScript("sample.csx")
Δείτε την ενότητα Για προχωρημένους: Προσαρμοσμένα σενάρια θεατρικών συγγραφέων
Προεπισκόπηση.Παύση Παύση εκτέλεσης δοκιμής και εμφάνιση του Playwright Inspector 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'")

Πότε να χρησιμοποιείτε τις λειτουργίες direct Playwright

Ενώ προτιμώνται οι αφαιρέσεις σε επίπεδο εφαρμογής, οι άμεσες λειτουργίες του Playwright είναι χρήσιμες σε αυτά τα σενάρια:

  • Σύνθετες αλληλεπιδράσεις περιβάλλοντος εργασίας χρήστη που δεν καλύπτονται από τυπικές λειτουργίες μηχανισμού δοκιμής
  • Στοιχεία τρίτων κατασκευαστών εντός Power Platform εφαρμογών που χρειάζονται ειδικό χειρισμό
  • Εντοπισμός σφαλμάτων σε πολύπλοκα σενάρια δοκιμών όπου απαιτείται περισσότερος έλεγχος
  • Προηγμένη επικύρωση καταστάσεων ή ιδιοτήτων στοιχείων

Παράδειγμα: Συνδυασμένη προσέγγιση

Αυτό το παράδειγμα δείχνει το συνδυασμό αφαιρέσεων σε επίπεδο εφαρμογής με άμεσες ενέργειες Playwright:

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 Δημιουργία αρχείου με τη λογική του προσαρμοσμένου Playwright
  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, ο μηχανισμός δοκιμής μπορεί να εκτελέσει το Playwright σε λειτουργία χωρίς κεφάλι:

# 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 για σενάρια όπου οι αφαιρέσεις σε επίπεδο εφαρμογής δεν επαρκούν
  • Ελέγξτε τις δοκιμές που δημιουργούνται για βελτιστοποίηση της αναγνωσιμότητας και της συντήρησης