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:
- Sistem özelliği —
-Dtestfly.config=/path/to/custom.yml - Çalışma dizini —
./testfly.yml(pom.xmlveyabuild.gradleyanında) - 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
| Anahtar | Ne yapar |
|---|---|
name | Başlatılacak tarayıcı: chrome, firefox, edge veya safari. |
headless | Tarayı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. |
arguments | Tarayıcı yürütülebilir dosyasına iletilen ek komut satırı bayrakları. |
capabilities | Ham 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
| Anahtar | Ne yapar |
|---|---|
mode | local, remote, browserstack veya saucelabs. |
baseUrl | open() ve BaseCucumberSteps.open() tarafından kullanılan varsayılan URL. |
gridUrl | mode: remote olduğunda kullanılan Selenium Grid / standalone sunucu URL'si. |
parallel | TestNG paralel modu: none, methods, classes, tests veya instances. |
threadCount | Paralel çalıştırma etkinleştirildiğinde kullanılacak thread sayısı. |
maxActiveSessions | Maksimum eşzamanlı tarayıcı örneği. Fazladan testler başarısız olmak yerine boş bir slot bekler. |
sessionWaitSeconds | Bir 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
| Anahtar | Ne yapar |
|---|---|
baseUrl | ApiClient istekleri için varsayılan taban URL. |
timeoutSeconds | Saniye cinsinden istek zaman aşımı. |
logBody | true olduğunda, yanıt gövdeleri adım günlüğüne yazılır. |
retry:
enabled: true
maxAttempts: 2
| Anahtar | Ne yapar |
|---|---|
enabled | Global retry anahtarı. |
maxAttempts | Test 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
| Anahtar | Ne yapar |
|---|---|
explicit | WaitEngine, Locator ve BasePage yardımcı metodlarının kullandığı varsayılan bekleme süresi. |
pageLoad | Saniye cinsinden tarayıcı sayfa yükleme zaman aşımı. |
reporting:
mergeRuns: false
historyRuns: 10
| Anahtar | Ne yapar |
|---|---|
mergeRuns | true 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. |
historyRuns | target/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