Test Motoru ve Playwright entegrasyonu (artık desteklenmiyor)

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:

  1. Özel Playwright mantığınızla bir .csx dosya oluşturun
  2. Referans gereken Playwright derlemeleri
  3. Gerekli sınıf yapısını uygulayın
  4. 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