Aracılığıyla paylaş


Test Altyapısı ve Oyun Yazarı tümleştirmesi (önizleme)

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:

  1. Özel Playwright mantığınızla bir .csx dosya oluşturun
  2. Referans gerekli Oyun Yazarı 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
    }
}

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