Selenium ile Apache POI Kullanarak Excel’den Veri Okuma
15 Eylül 2025
Test otomasyonunda çoğu zaman farklı giriş bilgileri veya senaryolarla aynı testi çalıştırmamız gerekir. Örneğin bir login ekranını 10 farklı kullanıcı ile test etmek istediğinizde, bu verileri kod içine yazmak yerine Excel dosyasından dinamik olarak çekmek çok daha pratiktir. İşte bu noktada Apache POI devreye girer.
Test otomasyonunda çoğu zaman farklı giriş bilgileri veya senaryolarla aynı testi çalıştırmamız gerekir. Örneğin bir login ekranını 10 farklı kullanıcı ile test etmek istediğinizde, bu verileri kod içine yazmak yerine Excel dosyasından dinamik olarak çekmek çok daha pratiktir. İşte bu noktada Apache POI devreye girer.
✨ Apache POI Nedir?
Apache POI, Java tabanlı bir kütüphanedir. Excel dosyaları üzerinde okuma, yazma ve güncelleme işlemleri yapmamıza olanak tanır. Selenium testlerinde özellikle Data-Driven Testing yaklaşımı için kullanılır.
⚙️ Maven Bağımlılığı
Projene pom.xml dosyası üzerinden şu bağımlılığı ekleyebilirsin:
< dependency >
< groupId >org.apache.poi
< artifactId >poi-ooxml
< version >5.2.3< /version >
< /dependency >
📝 Örnek Excel Dosyası
📂 TestData.xlsx
| Username | Password |
| ----------- | -------- |
| user1\@test | pass123 |
| user2\@test | pass456 |
✅ Sonuç
Bu yöntem ile:
Tek satır kod değiştirmeden onlarca kullanıcıyla giriş testleri çalıştırabilirsin.
Excel dosyasına yeni veri eklendiğinde, test otomatik olarak o verileri de çalıştırır.
Kodun bakımı kolaylaşır, senaryolar daha esnek hale gelir.
✨ Apache POI Nedir?
Apache POI, Java tabanlı bir kütüphanedir. Excel dosyaları üzerinde okuma, yazma ve güncelleme işlemleri yapmamıza olanak tanır. Selenium testlerinde özellikle Data-Driven Testing yaklaşımı için kullanılır.
⚙️ Maven Bağımlılığı
Projene pom.xml dosyası üzerinden şu bağımlılığı ekleyebilirsin:
< dependency >
< groupId >org.apache.poi
< artifactId >poi-ooxml
< version >5.2.3< /version >
< /dependency >
📝 Örnek Excel Dosyası
📂 TestData.xlsx
| Username | Password |
| ----------- | -------- |
| user1\@test | pass123 |
| user2\@test | pass456 |
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.io.File;
import java.io.FileInputStream;
public class ExcelLoginTest {
public static void main(String[] args) throws Exception {
// Excel dosyasını aç
FileInputStream file = new FileInputStream(new File("TestData.xlsx"));
Workbook workbook = new XSSFWorkbook(file);
Sheet sheet = workbook.getSheetAt(0);
// WebDriver başlat
WebDriver driver = new ChromeDriver();
driver.get("https://example.com/login");
// Satırları dolaş (ilk satır başlık olduğu için 1’den başlıyoruz)
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
Row row = sheet.getRow(i);
String username = row.getCell(0).getStringCellValue();
String password = row.getCell(1).getStringCellValue();
// Login alanlarını doldur
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys(username);
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys(password);
driver.findElement(By.id("loginBtn")).click();
// Burada assert veya kontrol ekleyebilirsin
System.out.println("Test çalıştı: " + username + " / " + password);
driver.navigate().back();
}
// Kapat
driver.quit();
workbook.close();
}
}
✅ Sonuç
Bu yöntem ile:
Tek satır kod değiştirmeden onlarca kullanıcıyla giriş testleri çalıştırabilirsin.
Excel dosyasına yeni veri eklendiğinde, test otomatik olarak o verileri de çalıştırır.
Kodun bakımı kolaylaşır, senaryolar daha esnek hale gelir.
Yazar: Mert Akbağ
Bu yazıyı beğendiniz mi?
Yazılım testi hakkında daha fazla içerik için blog sayfamı ziyaret edin veya benimle iletişime geçin.