Ana içeriğe geç

testfly.yml Rehberi

testfly.yml, TestFly'in testlerinizi nasıl çalıştırdığını kontrol eden tek yapılandırma dosyasıdır. src/test/resources/testfly.yml altındaki kopya, framework'ün kendi örnek yapılandırmasıdır ve bu depodaki örnek testler çalıştırılırken de kullanılır.


Dosyanın konumu​

TestFly, yapılandırmayı şu sırayla çözümler:

  1. Sistem özelliği — -Dtestfly.config=/path/to/custom.yml
  2. Çalışma dizini — ./testfly.yml (pom.xml veya build.gradle yanında)
  3. Classpath — src/test/resources/testfly.yml

Bir tüketici (consumer) projesi için testfly.yml dosyasını proje köküne koyun. TestFly framework'ünün içinde ise örnek yapılandırma, test classpath'inde bulunması için src/test/resources/testfly.yml içinde yer alır.


Minimum gerekli yapılandırma​

Bir testi başlatacak en küçük dosya şudur:

execution:
mode: local
baseUrl: https://example.com

browser:
name: chrome

timeouts:
explicit: 10
pageLoad: 30

Diğer her şey isteğe bağlıdır.


Açıklamalı örnek (src/test/resources/testfly.yml)​

browser:
name: chrome
headless: true
arguments:
- --start-maximized
- --disable-notifications
- --remote-allow-origins=*
capabilities:
acceptInsecureCerts: true
pageLoadStrategy: eager
AnahtarNe yapar
nameBaşlatılacak tarayıcı: chrome, firefox, edge veya safari.
headlessTarayıcıyı görünür bir pencere olmadan çalıştırır. TestFly bir CI ortamı algıladığında otomatik olarak true yapılır.
argumentsTarayıcı yürütülebilir dosyasına iletilen ek komut satırı bayrakları.
capabilitiesHam Selenium capability geçersiz kılmaları, örn. kendinden imzalı sertifikalar için acceptInsecureCerts.
execution:
mode: local
baseUrl: https://www.saucedemo.com/
gridUrl: http://localhost:4444/wd/hub
parallel: methods
threadCount: 4
maxActiveSessions: 4
AnahtarNe yapar
modelocal, remote, browserstack veya saucelabs.
baseUrlopen() ve BaseCucumberSteps.open() tarafından kullanılan varsayılan URL.
gridUrlmode: remote olduğunda kullanılan Selenium Grid / standalone sunucu URL'si.
parallelTestNG paralel modu: none, methods, classes, tests veya instances.
threadCountParalel çalıştırma etkinleştirildiğinde kullanılacak thread sayısı.
maxActiveSessionsMaksimum eşzamanlı tarayıcı örneği. Fazladan testler başarısız olmak yerine boş bir slot bekler.
sessionWaitSecondsBir testin zaman aşımına uğramadan önce boş slot için bekleyeceği süre, saniye (varsayılan 300, 0 = beklemeden hata ver).
api:
baseUrl: https://fakeapi.net
timeoutSeconds: 30
logBody: false
AnahtarNe yapar
baseUrlApiClient istekleri için varsayılan taban URL.
timeoutSecondsSaniye cinsinden istek zaman aşımı.
logBodytrue olduğunda, yanıt gövdeleri adım günlüğüne yazılır.
retry:
enabled: true
maxAttempts: 2
AnahtarNe yapar
enabledGlobal retry anahtarı.
maxAttemptsTest başına toplam deneme sayısı. 1, retry yapılmadığı anlamına gelir. @Retryable(maxAttempts = 3) ile test bazında geçersiz kılın.
timeouts:
explicit: 10
pageLoad: 30
AnahtarNe yapar
explicitWaitEngine, Locator ve BasePage yardımcı metodlarının kullandığı varsayılan bekleme süresi.
pageLoadSaniye cinsinden tarayıcı sayfa yükleme zaman aşımı.
reporting:
mergeRuns: false
historyRuns: 10
AnahtarNe yapar
mergeRunstrue yapıldığında (veya -Dtestfly.merge=true ile), ardışık test koşumları önceki testleri silmek yerine sonuçları kümülatif tek bir raporda birleştirir.
historyRunstarget/reports/ altında saklanacak ve rapordaki açılır menüde listelenecek maksimum geçmiş rapor sayısı.

Ortam profilleri​

Tek bir temel dosya tutun ve ortam başına geçersiz kılmalar oluşturun:

testfly.yml            # base config
testfly-staging.yml # complete staging config
testfly-ci.yml # complete CI config

Profil, tam yapılandırma olarak testfly-<profil>.yml dosyasını seçer. testfly.yml ile birleştirme yapılmaz; belirtilmeyen isteğe bağlı alanlar framework varsayılanını kullanır. Her profilde zorunlu ayarları tanımlayın.

Bir profili şu şekilde etkinleştirin:

mvn test -Denv=staging

Örnek testfly-ci.yml:

browser:
headless: true
arguments:
- --no-sandbox
- --disable-dev-shm-usage

execution:
mode: local
baseUrl: https://www.saucedemo.com/
parallel: methods
threadCount: 8
maxActiveSessions: 8

Yaygın kalıplar​

Yerel bir Selenium Grid'e karşı çalıştırma​

execution:
mode: remote
baseUrl: https://www.saucedemo.com/
gridUrl: http://localhost:4444/wd/hub

BrowserStack'e karşı çalıştırma​

execution:
mode: browserstack
baseUrl: https://www.saucedemo.com/
browserstack:
username: ${BS_USER}
accessKey: ${BS_KEY}
os: Windows
osVersion: "11"
browser: chrome
browserVersion: latest

Geliştirme sırasında hızlı geri bildirim için retry'ı devre dışı bırakma​

retry:
enabled: false

Yavaş ortamlar için süreleri artırma​

timeouts:
explicit: 20
pageLoad: 60

Doğrulama​

TestFly, yapılandırmayı suite başlangıcında doğrular. Eksik zorunlu alanlar veya geçersiz değerler (örn. bilinmeyen bir parallel modu), net bir mesajla hemen başarısız olur. Bozuk bir yapılandırmayla mvn test çalıştırmak, hiçbir tarayıcı açılmadan önce sorunu yazdırır; böylece hatalı yapılandırılmış bir çalıştırma için zaman harcamazsınız.


Ayrıca bakınız​