Bu proje, web otomasyon testleri için geliştirilmiş bir test framework'üdür. Selenium WebDriver, TestNG, ExtentReports ve AWS S3 entegrasyonu içerir.
TestAutomation_Aws_Integration/
├── src/
│ ├── main/java/proje/com/
│ │ ├── base/
│ │ │ └── BasePage.java # Sayfa nesneleri için temel sınıf
│ │ ├── config/
│ │ │ └── TestConfig.java # Test konfigürasyon ayarları
│ │ ├── model/
│ │ │ └── User.java # Kullanıcı veri modeli
│ │ ├── pages/
│ │ │ ├── CartPage.java # Sepet sayfası
│ │ │ ├── HomePage.java # Ana sayfa
│ │ │ ├── PaymentPage.java # Ödeme sayfası
│ │ │ ├── ProductPage.java # Ürün sayfası
│ │ │ └── SignupPage.java # Kayıt sayfası
│ │ └── util/
│ │ ├── DatabaseUtil.java # Veritabanı işlemleri
│ │ ├── Messages.java # Mesaj sabitleri
│ │ ├── RandomUserGenerator.java # Rastgele kullanıcı oluşturucu
│ │ ├── S3Util.java # AWS S3 işlemleri
│ │ └── TestUtils.java # Test yardımcı metodları
│ └── test/java/proje/com/
│ ├── base/
│ │ └── BaseTest.java # Test temel sınıfı (raporlama dahil)
│ ├── listeners/
│ │ └── TestListener.java # Test olay dinleyicisi
│ └── tests/
│ └── UserSignupAndOrderTest.java # E2E test sınıfı
├── src/test/resources/
│ └── testng.xml # TestNG konfigürasyonu
├── Screenshot/ # Ekran görüntüleri
├── ExtentReport.html # Test raporu
├── pom.xml # Maven konfigürasyonu
├── docker-compose.yml # Docker konfigürasyonu
└── schema.sql # Veritabanı şeması
- BaseTest sınıfında tüm raporlama fonksiyonları toplandı
- ExtentReports entegrasyonu
- Otomatik screenshot alma ve S3'e yükleme
- Renkli ve detaylı test logları
- TestConfig sınıfı ile merkezi ayar yönetimi
- Ortam bazlı konfigürasyon desteği
- Sistem property'leri ile dinamik ayarlar
- Test grupları (smoke, e2e)
- Test listener ile olay yönetimi
- Merkezi utility metodları
- Screenshot'ların otomatik S3'e yüklenmesi
- Test loglarının S3'te saklanması
- LocalStack ile local S3 simülasyonu
- Java 21
- Maven 3.6+
- Docker (LocalStack için)
- MySQL
git clone <repository-url>
cd TestAutomation_Aws_Integration
docker-compose up -d
mvn clean install
mvn test
# Sadece smoke testleri
mvn test -Dgroups=smoke
# Sadece e2e testleri
mvn test -Dgroups=e2e
mvn test -DsuiteXmlFile=src/test/resources/testng.xml
mvn test -Dtest.headless=true
mvn test -Dtest.report.path=CustomReport.html
- HTML formatında detaylı test raporları
- Screenshot'lar ile görsel kanıtlar
- Test süreleri ve istatistikler
- Renkli log mesajları
- Screenshot'lar otomatik olarak S3'e yüklenir
- Test logları S3'te saklanır
- Zaman damgalı dosya isimlendirme
// WebDriver ayarları
public static final String BROWSER_TYPE = "chrome";
public static final boolean HEADLESS_MODE = false;
public static final int IMPLICIT_WAIT = 10;
// Test URL'leri
public static final String BASE_URL = "https://automationexercise.com/";
// AWS S3 ayarları
public static final String AWS_ENDPOINT = "http://localhost:4566";
public static final String SCREENSHOT_BUCKET = "test-screenshots";
# Test ortamı
-Dtest.environment=local
# Headless mod
-Dtest.headless=true
# Rapor yolu
-Dtest.report.path=CustomReport.html
- Tüm test sınıfları için temel sınıf
- WebDriver yönetimi
- ExtentReports entegrasyonu
- Screenshot alma ve S3 yükleme
- Test sonuç raporlama
- Merkezi konfigürasyon yönetimi
- URL'ler, timeout'lar, AWS ayarları
- Ortam bazlı konfigürasyon
- Test olaylarını dinleme
- Test başlangıç/bitiş logları
- Test istatistikleri
- Ortak test yardımcı metodları
- Element bekleme fonksiyonları
- JavaScript işlemleri
- Validasyon metodları
BaseTest
'ten extend edin- Test metodlarını
@Test
annotation'ı ile işaretleyin - Test gruplarını belirtin:
groups = {"smoke", "e2e"}
- BaseTest'teki log metodlarını kullanın
BasePage
'den extend edin- Page Object Model pattern'ini kullanın
- Locator'ları private static final olarak tanımlayın
TestUtils
sınıfına static metod ekleyin- Gerekirse yeni util sınıfı oluşturun
- Konfigürasyon için
TestConfig
'i kullanın
- Fork yapın
- Feature branch oluşturun
- Değişikliklerinizi commit edin
- Pull request gönderin