Hızlı Başlangıç
İlk TestFly testini 5 dakikadan kısa sürede çalıştırın.
Ön Koşullar
- Java 21+
- Maven 3.8+ veya Gradle 8.5+
- Chrome, Firefox veya Edge yüklü
WebDriver binary'leri gerekmez — Selenium Manager browser driver'larını otomatik indirir.
Tek bir komutla üretime hazır bir TestFly Java 21 test projesi oluşturabilirsiniz:
npx @testfly/mcp init my-test-suite
Bu komut pom.xml, testfly.yml ve çalışmaya hazır örnek testleri otomatik üretir. Detaylar için TestFly MCP & CLI Rehberi'ne göz atın.
Manuel Kurulum
TestFly'ı mevcut bir projeye ekliyorsanız aşağıdaki adımları izleyin:
Adım 1 — Bağ ımlılığı Ekle
Aşağıdaki örnekler 1.0.7 kaynak sürümünü kullanır. Yayın tamamlanmadan önce Maven Central erişimini doğrulayın veya yayımlanmış son sürümü tercih edin.
- Maven (pom.xml)
- Gradle Groovy (build.gradle)
- Gradle Kotlin (build.gradle.kts)
<dependency>
<groupId>io.github.hakanngul</groupId>
<artifactId>testfly</artifactId>
<version>1.0.7</version>
</dependency>
dependencies {
testImplementation 'io.github.hakanngul:testfly:1.0.7'
}
test {
useTestNG()
systemProperties System.properties
}
dependencies {
testImplementation("io.github.hakanngul:testfly:1.0.7")
}
tasks.test {
useTestNG()
systemProperties(System.getProperties().mapKeys { it.key.toString() })
}
Paralel yapılandırma, JUnit 5, isteğe bağlı bağımlılıklar ve rapor konumları için tam Gradle Kurulum Rehberi'ne bakın.
Adım 2 — Yapılandırma Dosyasını Oluştur
Proje köküne testfly.yml oluşturun (pom.xml veya build.gradle yanına):
execution:
mode: local
baseUrl: https://your-app.com
browser:
name: chrome
headless: false
retry:
enabled: true
maxAttempts: 2
timeouts:
explicit: 10
pageLoad: 30
execution.mode, browser.name, timeouts.explicit ve timeouts.pageLoad zorunludur. Bunlardan biri eksikse TestFly başlangıçta yapılandırma hatasıyla durur. Diğer her şeyin makul bir varsayılanı vardır.
Adım 3 — İlk Testini Yaz
import io.testfly.test.BaseTest;
import org.testng.annotations.Test;
public class LoginTest extends BaseTest {
@Test(description = "Geçerli kullanıcı giriş yapabilir")
public void loginTest() {
open(); // baseUrl'e gider
// test adımların buraya
softAssert().that(getDriver().getTitle().contains("Dashboard"), "Title should contain Dashboard");
}
}
Adım 4 — TestNG Suite'i Oluştur
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="testfly-suite" verbose="1">
<test name="MyTests">
<classes>
<class name="com.example.LoginTest"/>
</classes>
</test>
</suite>
Adım 5 — Çalıştır
- Maven
- Gradle
mvn test
./gradlew test
Neler Olur
- Framework
testfly.yml'i yükler - Chrome otomatik başlar
- Testin çalışır
- Herhangi bir failure'da ekran görüntüsü yakalanır
- Browser kapanır
- HTML rapor oluşturulur:
target/testfly-report.html(Maven) veyabuild/testfly-report/(Gradle) - Metrics JSON:
target/testfly-metrics.json
Proje Yapısı
- Maven
- Gradle
your-project/
├── pom.xml
├── testfly.yml
├── testng.xml
└── src/test/java/com/example/
├── pages/LoginPage.java
└── tests/LoginTest.java
your-project/
├── build.gradle (veya build.gradle.kts)
├── testfly.yml
├── testng.xml
└── src/test/java/com/example/
├── pages/LoginPage.java
└── tests/LoginTest.java
Çalışan Örnek Proje
Tam çalışan proje şu adreste: https://github.com/hakanngul/testfly-test
Klonlayın, mvn test (veya ./gradlew test) çalıştırın; page object'leri, adım loglama ve retry yapılandırılmış tam çalışan bir suite'iniz olacak.
Sonraki Adımlar
- Yapılandırma Referansı — tüm config seçenekleri
- BasePage — temiz page object'ler yaz
- Step Logging — testlerine adlandırılmış adımlar ekle