Lưu ý
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử đăng nhập hoặc thay đổi thư mục.
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử thay đổi thư mục.
Lưu ý
Các tính năng xem trước không được dùng cho sản xuất và có thể có chức năng bị hạn chế. Những tính năng này khả dụng trước khi có bản phát hành chính thức để khách hàng có thể truy cập sớm và cung cấp phản hồi.
Tổng quan
Power Apps Test Engine sử dụng Playwright làm công nghệ tự động hóa trình duyệt cốt lõi. Sự tích hợp này cung cấp cho Test Engine khả năng thử nghiệm mạnh mẽ, đáng tin cậy và đa trình duyệt, đồng thời thêm nhiều lớp trừu tượng để đơn giản hóa việc tạo thử nghiệm cho Power Platform ứng dụng.
Test Engine nâng cao Playwright như thế nào
Trong khi Playwright cung cấp khả năng tự động hóa trình duyệt tuyệt vời, Test Engine mở rộng các khả năng này cụ thể cho: Power Platform
| Cải tiến công cụ thử nghiệm | Description |
|---|---|
| Trừu tượng cấp ứng dụng | Công cụ kiểm tra hoạt động với các đối tượng cấp ứng dụng thay vì các thành phần DOM, giúp các bài kiểm tra có khả năng phục hồi tốt hơn với các thay đổi về UI |
| Power Fx Tích hợp | Công cụ kiểm tra bổ sung Power Fx hỗ trợ, cho phép sử dụng phương pháp mã thấp để biên soạn bài kiểm tra |
| Xác thực tích hợp | Cơ chế xác thực được xây dựng sẵn xử lý Microsoft Entra và các tình huống truy cập có điều kiện |
| Dataverse Tích hợp | Tích hợp trực tiếp với Dataverse cho phép thử nghiệm toàn diện từ đầu đến cuối |
| Nhà cung cấp chuyên biệt | Các nhà cung cấp được tối ưu hóa cho ứng dụng Canvas và ứng dụng dựa trên mô hình |
Triển khai kỹ thuật
Các phần sau đây mô tả cách Test Engine xây dựng trên nền tảng tự động hóa trình duyệt của Playwright và tích hợp nó với các khái niệm trừu tượng cụ thể, cho phép tự động hóa thử nghiệm mạnh mẽ và dễ bảo trì. Power Platform
Nền tảng tự động hóa trình duyệt
Test Engine sử dụng các khả năng cốt lõi của Playwright để tự động hóa trình duyệt một cách nhất quán:
- Hỗ trợ đa trình duyệt cho Chrome, Firefox, và Microsoft Edge
- Cơ chế chờ đáng tin cậy tự động chờ các phần tử sẵn sàng
- Chặn yêu cầu mạng để mô phỏng phản hồi API
- Công cụ theo dõi và gỡ lỗi để chẩn đoán lỗi thử nghiệm
Tích hợp kiến trúc của Test Engine
- Lớp nhà cung cấp: Lớp nhà cung cấp trong Test Engine giao diện trực tiếp với API Playwright để kiểm soát hành vi của trình duyệt
- Mô hình đối tượng: Thay vì làm việc với các phần tử DOM thô, Test Engine ánh xạ tới các mô hình đối tượng cụ thể của ứng dụng
- Power Fx Lớp: Các bước kiểm tra được viết trong Power Fx được diễn giải và thực hiện thông qua lớp nhà cung cấp
Các tính năng kỹ thuật chính
Các phần sau đây nêu bật các tính năng kỹ thuật quan trọng mà Test Engine bổ sung vào Playwright, bao gồm bộ chọn dành riêng cho ứng dụng, quản lý ngữ cảnh trình duyệt và quyền truy cập trực tiếp vào các chức năng Playwright cho các tình huống nâng cao.
Bộ chọn dành riêng cho ứng dụng
Công cụ kiểm tra sử dụng bộ chọn dành riêng cho ứng dụng thay vì bộ chọn CSS hoặc 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();
Quản lý ngữ cảnh trình duyệt
Test Engine quản lý các ngữ cảnh trình duyệt để hỗ trợ nhiều tình huống xác thực khác nhau:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Chức năng của Nhà viết kịch trực tiếp
Trong khi Test Engine tóm tắt nhiều tương tác của Playwright, vẫn có những trường hợp mà việc truy cập trực tiếp vào các khả năng của Playwright có thể mang lại giá trị. Test Engine cung cấp một số chức năng xem trước cho phép tương tác trực tiếp với Playwright từ trong các bước thử nghiệm của bạn. Power Fx
Sử dụng các hàm Playwright trong Test Engine
Test Engine bao gồm các chức năng xem trước sau đây cho phép bạn áp dụng khả năng lựa chọn thành phần của Playwright:
| Hàm | Description | Ví dụ: |
|---|---|---|
| Xem trước.Nhà viết kịchHành động | Thực hiện hành động trên các phần tử bằng cách sử dụng CSS hoặc bộ chọn DOM | Preview.PlaywrightAction("//button", "click") Xem Các hoạt động hành động phổ biến của nhà viết kịch |
| Xem trước.Nhà viết kịchHành độngGiá trị | Thực hiện một hành động yêu cầu tham số giá trị | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Xem Các hoạt động giá trị hành động chung của nhà viết kịch |
| Xem trước.Kịch bản | Thực hiện một tập lệnh C# tùy chỉnh giao diện với Playwright | Preview.PlaywrightScript("sample.csx") Xem Nâng cao: Kịch bản viết kịch tùy chỉnh |
| Xem trước.Tạm dừng | Tạm dừng thực hiện kiểm tra và hiển thị Trình kiểm tra nhà viết kịch | Preview.Pause() |
Lưu ý
Để sử dụng các chức năng xem trước này, bạn phải thêm các chức năng xem trước vào danh sách được phép trong phần cài đặt thử nghiệm của mình.
Các hoạt động hành động chung của nhà viết kịch
Các thao tác sau đây có thể được thực hiện với Preview.PlaywrightAction:
| Hành động | Description | Ví dụ: |
|---|---|---|
click |
Lựa chọn một phần tử bằng sự kiện nhấp chuột | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Kiểm tra xem một phần tử có tồn tại không | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Chờ cho đến khi một phần tử có sẵn | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Các hoạt động giá trị hành động của Nhà viết kịch phổ biến
Các thao tác sau đây có thể được thực hiện với Preview.PlaywrightActionValue:
| Hành động | Description | Ví dụ: |
|---|---|---|
fill |
Điền văn bản vào trường biểu mẫu | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Chọn một tùy chọn từ danh sách lựa chọn | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Đặt thuộc tính cho một phần tử | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Khi nào sử dụng các chức năng Playwright trực tiếp
Mặc dù các khái niệm trừu tượng ở cấp ứng dụng được ưu tiên, các hàm Playwright trực tiếp lại hữu ích trong các trường hợp sau:
- Tương tác UI phức tạp không được bao phủ bởi các chức năng Test Engine tiêu chuẩn
- Các thành phần của bên thứ ba trong Power Platform các ứng dụng cần xử lý đặc biệt
- Gỡ lỗi các tình huống thử nghiệm phức tạp khi cần kiểm soát nhiều hơn
- Xác thực nâng cao của các trạng thái hoặc thuộc tính của phần tử
Ví dụ: Phương pháp kết hợp
Ví dụ này minh họa việc kết hợp các khái niệm trừu tượng cấp ứng dụng với các hành động Playwright trực tiếp:
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");
Nâng cao: Kịch bản viết kịch bản tùy chỉnh
Đối với các tình huống có tính chuyên môn cao, bạn có thể tạo kịch bản Nhà viết kịch tùy chỉnh:
- Tạo một tệp
.csxvới logic Playwright tùy chỉnh của bạn - Tài liệu tham khảo bắt buộc Các hội đồng nhà viết kịch
- Triển khai cấu trúc lớp học cần thiết
- Gọi tập lệnh từ các bước kiểm tra của bạn
// 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
}
}
Lưu ý
Preview.PlaywrightScript chỉ được triển khai cho bản dựng gỡ lỗi của Test Engine được xây dựng từ nguồn, không có trong công cụ pac test run đã phát hành.
Tích hợp với quá trình phát triển
Các phần sau đây mô tả cách Test Engine và Playwright có thể được sử dụng trong cả môi trường phát triển cục bộ và CI/CD, hỗ trợ nhiều quy trình công việc từ gỡ lỗi tương tác đến thực thi đường ống tự động.
Phát triển địa phương
Đối với phát triển cục bộ, Test Engine cung cấp một môi trường hoàn chỉnh:
- Thực thi trình duyệt cục bộ với khả năng hiển thị UI
- Thực hiện thử nghiệm từng bước
- Nhật ký chi tiết và chẩn đoán
Tích hợp CI/CD
Trong môi trường CI/CD, Test Engine có thể chạy Playwright ở chế độ không giao diện:
# 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)"
Thực tiễn tốt nhất
Khi làm việc với tích hợp Playwright của Test Engine:
- Tập trung vào các đối tượng cấp ứng dụng thay vì các phần tử DOM
- Sử dụng Power Fx các hàm cho logic phức tạp thay vì JavaScript thô
- Tận dụng cơ chế xác thực tích hợp
- Dành riêng các chức năng Playwright trực tiếp cho các tình huống mà mức độ trừu tượng của ứng dụng là không đủ
- Xem lại các bài kiểm tra được tạo ra để tối ưu hóa khả năng đọc và bảo trì