Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Önizleme özellikleri, üretimde kullanıma yönelik değildir ve sınırlı işlevselliğe sahip olabilir. Bu özellikler, müşterilerin erken erişim elde etmesi ve geri bildirim sağlaması amacıyla resmi sürümden önce kullanıma sunulur.
Genel bakış
Power Apps Test Engine, temel tarayıcı otomasyon teknolojisi olarak Playwright'ı kullanır . Bu entegrasyon, Test Engine'e güçlü, güvenilir ve tarayıcılar arası test yetenekleri sağlarken, uygulamalar için test oluşturmayı basitleştirmek için Power Platform birkaç soyutlama katmanı ekler.
Test Motoru Oyun Yazarını Nasıl Geliştirir?
Playwright mükemmel tarayıcı otomasyon yetenekleri sunarken, Test Engine bu yetenekleri özellikle aşağıdakiler için Power Platform genişletir:
| Test Motoru Geliştirmesi | Description |
|---|---|
| Uygulama Düzeyinde Soyutlamalar | Test Engine, DOM öğeleri yerine uygulama düzeyindeki nesnelerle çalışarak testleri kullanıcı arabirimi değişikliklerine karşı daha dayanıklı hale getirir |
| Power Fx Entegrasyon | Test Engine, geliştirme testi için düşük kodlu bir yaklaşım sağlayan destek ekler Power Fx |
| Yerleşik Kimlik Doğrulama | Önceden oluşturulmuş kimlik doğrulama mekanizmaları tanıtıcısı Microsoft Entra ve koşullu erişim senaryoları |
| Dataverse Entegrasyon | ile Dataverse doğrudan entegrasyon, kapsamlı uçtan uca testlere olanak tanır |
| Uzman Sağlayıcılar | Tuval uygulamaları ve Model yönetimli uygulamalar için iyileştirilmiş sağlayıcılar |
Teknik uygulama
Aşağıdaki bölümler, Test Engine'in Playwright'ın tarayıcı otomasyonu temeli üzerine nasıl inşa edildiğini ve onu belirli soyutlamalarla Power Platform nasıl bütünleştirerek sağlam ve sürdürülebilir test otomasyonu sağladığını açıklamaktadır.
Tarayıcı otomasyonu temeli
Test Engine, tutarlı tarayıcı otomasyonu için Playwright'ın temel yeteneklerini kullanır:
- Chrome için tarayıcılar arası destek Firefoxve Microsoft Edge
- Elemanların otomatik olarak hazır olmasını bekleyen güvenilir bekleme mekanizmaları
- API yanıtlarını simüle etmek için ağ isteği durdurma
- Test hatalarını tanılamak için izleme ve hata ayıklama araçları
Test Engine'in mimari entegrasyonu
- Sağlayıcı Katmanı: Test Motorundaki sağlayıcı katmanı, tarayıcı davranışını kontrol etmek için doğrudan Playwright API'leri ile arayüz oluşturur
- Nesne Modeli: Ham DOM öğeleriyle çalışmak yerine, Test Motoru uygulamaya özel nesne modelleriyle eşleşir
- Power Fx Katman: Yazılan Power Fx test adımları, sağlayıcı katmanı aracılığıyla yorumlanır ve yürütülür
Temel teknik özellikler
Aşağıdaki bölümlerde, Test Engine'in Playwright'ın üzerine eklediği, uygulamaya özel seçiciler, tarayıcı bağlam yönetimi ve gelişmiş senaryolar için Playwright işlevlerine doğrudan erişim dahil olmak üzere önemli teknik özellikler vurgulanmaktadır.
Uygulamaya özel seçiciler
Test Altyapısı yerine veya CSS seçiciler yerine XPath uygulamaya özgü seçiciler kullanır:
# 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();
Tarayıcı bağlam yönetimi
Test Altyapısı, çeşitli kimlik doğrulama senaryolarını desteklemek için tarayıcı bağlamlarını yönetir:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Doğrudan Oyun Yazarı işlevleri
Test Motoru birçok Oyun Yazarı etkileşimini soyutlarken, Oyun Yazarı yeteneklerine doğrudan erişmenin değerli olabileceği senaryolar vardır. Test Motoru, test adımlarınızın Power Fx içinden Playwright ile doğrudan etkileşimi sağlayan çeşitli önizleme işlevleri sağlar.
Test Motorunda Oyun Yazarı işlevlerini kullanma
Test Motoru, Playwright'ın öğe seçimi özelliklerini uygulamanıza olanak tanıyan aşağıdaki önizleme işlevlerini içerir:
| İşlev | Description | Örnek |
|---|---|---|
| Önizleme.Oyun YazarıEylem | Veya DOM seçicileri kullanarak CSS öğeler üzerinde bir eylem yürütün | Preview.PlaywrightAction("//button", "click") Bkz. Yaygın Oyun Yazarı Aksiyon Operasyonları |
| Preview.PlaywrightActionValue | Bir değer parametresi gerektiren bir eylem yürütün | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Bkz. Ortak Oyun Yazarı Eylemi Değer İşlemleri |
| Önizleme.PlaywrightScript | Playwright ile arabirim oluşturan özel bir C# betiği yürütün | Preview.PlaywrightScript("sample.csx") Bkz. Gelişmiş: Özel Oyun Yazarı Komut Dosyaları |
| Önizleme.duraklat | Test yürütmeyi duraklatın ve Oyun Yazarı Müfettişini görüntüleyin | Preview.Pause() |
Not
Bu önizleme işlevlerini kullanmak için, önizleme işlevlerini test ayarları bölümünüzde izin verilenler listesine eklemeniz gerekir.
Ortak Oyun Yazarı aksiyon operasyonları
Preview.PlaywrightAction ileaşağıdaki işlemler gerçekleştirilebilir:
| Eylem | Description | Örnek |
|---|---|---|
click |
Click olayı kullanılarak bir öğenin seçilmesi | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Bir öğenin var olup olmadığını kontrol edin | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Bir öğenin kullanılabilir olmasını bekleyin | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Ortak Oyun Yazarı aksiyon değeri işlemleri
Preview.PlaywrightActionValue ileaşağıdaki işlemler gerçekleştirilebilir:
| Eylem | Description | Örnek |
|---|---|---|
fill |
Form alanını metinle doldurma | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Seçim listesinden bir seçenek belirleme | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Bir öğede öznitelik ayarlama | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Doğrudan Oyun Yazarı işlevleri ne zaman kullanılır?
Uygulama düzeyinde soyutlamalar tercih edilse de, doğrudan Oyun Yazarı işlevleri şu senaryolarda yararlıdır:
- Standart Test Motoru işlevleri tarafından kapsanmayan karmaşık UI etkileşimleri
- Özel işlem gerektiren uygulamalardaki üçüncü taraf bileşenler Power Platform
- Daha fazla kontrolün gerekli olduğu karmaşık test senaryolarında hata ayıklama
- Öğe durumlarının veya özelliklerinin gelişmiş doğrulaması
Örnek: Birleşik yaklaşım
Bu örnek, uygulama düzeyinde soyutlamaları doğrudan Oyun Yazarı eylemleriyle birleştirmeyi gösterir:
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");
Gelişmiş: Özel Oyun Yazarı komut dosyaları
Son derece özel senaryolar için özel Playwright komut dosyaları oluşturabilirsiniz:
- Özel Playwright mantığınızla bir
.csxdosya oluşturun - Referans gerekli Oyun Yazarı derlemeleri
- Gerekli sınıf yapısını uygulayın
- Test adımlarınızdan betiği çağırı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
}
}
Not
Preview.PlaywrightScript yalnızca Test Altyapısı'nın kaynaktan oluşturulan hata ayıklama derlemeleri için uygulanır, yayımlanan pac test run araçta uygulanmaz.
Geliştirme süreci ile entegrasyon
Aşağıdaki bölümlerde, Test Engine ve Playwright'ın hem yerel geliştirme hem de CI/CD ortamlarında nasıl kullanılabileceği ve etkileşimli hata ayıklamadan otomatik işlem hattı yürütmeye kadar çeşitli iş akışlarını nasıl destekleyebileceği açıklanmaktadır.
Yerel kalkınma
Yerel geliştirme için Test Motoru eksiksiz bir ortam sağlar:
- Kullanıcı arayüzü görünürlüğü ile yerel tarayıcı yürütme
- Adım adım test yürütme
- Ayrıntılı günlükler ve tanılamalar
CI/CD tümleştirmesi
CI/CD ortamlarında, Test Altyapısı Playwright'ı başsız modda çalıştırabilir:
# 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)"
En iyi yöntemler
Test Engine'in Playwright entegrasyonu ile çalışırken:
- DOM öğeleri yerine uygulama düzeyindeki nesnelere odaklanma
- Ham JavaScript yerine karmaşık mantık için işlevleri Power Fx kullanın
- Yerleşik kimlik doğrulama mekanizmalarından yararlanın
- Uygulama düzeyinde soyutlamaların yetersiz olduğu senaryolar için doğrudan Oyun Yazarı işlevlerini ayırın
- Okunabilirlik ve bakım için optimize etmek üzere oluşturulan testleri gözden geçirin