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.
Note
Test Altyapısı kullanım dışıdır ve gelecek bir sürümde kaldırılacaktır. Power Platform ve Dynamics 365 hizmetlerindeki test otomasyonu özellikleri için Power Platform Playwright örneklerini kullanın.
Overview
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 Power Platform için 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, düşük kodlu bir yaklaşımla test oluşturmayı sağlayarak Power Fx desteği ekler. |
| Yerleşik Kimlik Doğrulama | Önceden oluşturulmuş kimlik doğrulama mekanizmaları, Microsoft Entra ve koşullu erişim senaryolarını yönetir. |
| Dataverse Entegrasyon | ile Dataverse doğrudan entegrasyon, kapsamlı uçtan uca testlere olanak tanır |
| Uzman Sağlayıcılar | Model odaklı uygulamalar ve Tuval 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, Firefox ve Microsoft Edge için tarayıcılar arası destek
- 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 kesme
- 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: Power Fx ile yazılmış test adımları, sağlandığı katman üzerinden 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 Motoru, CSS veya XPath seçicileri yerine 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 Playwright 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:
| Function | Description | Example |
|---|---|---|
| Önizleme.PlaywrightAction | Veya DOM seçicileri kullanarak CSS öğeler üzerinde bir eylem yürütün | Preview.PlaywrightAction("//button", "click") Yaygın Playwright Eylem Operasyonları'na bakın. |
| Preview.PlaywrightActionValue | Bir değer parametresi gerektiren bir eylem yürütün | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Bkz. Common Playwright Eylem Değer İşlemleri |
| Önizleme.PlaywrightScript | Playwright ile arabirim oluşturan özel bir C# betiği yürütün | Preview.PlaywrightScript("sample.csx") Gelişmiş: Özel Playwright Komut Dosyaları'na bakın. |
| Önizleme.Duraklat | Test yürütmeyi duraklatın ve Oyun Yazarı Müfettişini görüntüleyin | Preview.Pause() |
Note
Bu önizleme işlevlerini kullanmak için, önizleme işlevlerini test ayarları bölümünüzde izin verilenler listesine eklemeniz gerekir.
Yaygın Playwright eylemleri
Preview.PlaywrightAction ileaşağıdaki işlemler gerçekleştirilebilir:
| Action | Description | Example |
|---|---|---|
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") |
Yaygın Playwright eylem değeri işlemleri
Preview.PlaywrightActionValue ileaşağıdaki işlemler gerçekleştirilebilir:
| Action | Description | Example |
|---|---|---|
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
- Power Platform uygulamalarındaki özel işlem gerektiren üçüncü taraf bileşenler
- 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 gereken Playwright 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
}
}
Note
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 entegrasyonu
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 uygulamalar
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