Page Object Model (POM): Bikin Automation Testing Lebih Rapi & Scalable
Apa Itu Page Object Model (POM)?
Page Object Model (POM): Bikin Automation Testing Lebih Rapi & Scalable

sumber: hasil generate chat gpt
Apa Itu Page Object Model (POM)?
Sederhananya, POM adalah design pattern dalam *automation testing* yang menstrukturkan kode sehingga page web atau screen mobile jadi objek terpisah. Nah, POM itu seperti arsitektur yang memisahkan logika UI dengan logika test* — sehingga kalau UI berubah, test-nya tetap aman. “Berubah” di sini dalam arti bukan dihilangkan, jika dihilangkan, maka mau gak mau tetap harus mengubah test-nya. “Berubah” di sini lebih kepada ada perubahan pada komponen tersebut tapi masih tetap ada dalam 1 page*/halaman yang sama.
Struktur Dasar POM
Setiap page atau screen dalam aplikasi mempunyai:
Page Class
Kelas ini mewakili satu page/screen (misal: LoginPage, CheckoutPage, HomeScreen, dll).
Locators
Ini adalah cara kita menentukan elemen UI — misalnya id, xpath, css, atau strategi lainnya.
Methods/Actions
Semua aksi yang bisa dilakukan di halaman itu dirangkum sebagai fungsi atau metode — seperti login(username, password) atau submitOrder().

https://www.guru99.com/images/AdvanceSelenium/071514_0722_PageObjectM2.png
Contoh sederhana page class:
public class LoginPage {
WebDriver driver;
By username = By.id("user"); //locator
By password = By.id("pass"); //locator
By loginBtn = By.id("login"); //locator
public LoginPage(WebDriver driver){
this.driver = driver;
}
public void login(String user, String pass){
driver.findElement(username).sendKeys(user); //method/action
driver.findElement(password).sendKeys(pass); //method/action
driver.findElement(loginBtn).click(); //method/action
}
}
Contoh sederhana test class:
public class LoginTest {
WebDriver driver = new ChromeDriver();
@Test
public void testValidLogin(){
LoginPage loginPage = new LoginPage(driver);
loginPage.login("user", "securePass123");
}
}
Kenapa POM?
Readable
Readable berarti kode test kita mudah dibaca, dimengerti, dan “bercerita”, bahkan oleh orang lain atau oleh kita sendiri saat kode makin banyak.
Kenapa penting?
- Automation test itu lebih sering dibaca daripada ditulis
- Tester lain, developer, atau bahkan BA bisa cepat paham apa yang diuji
- Mengurangi miskomunikasi dalam tim
Reusable
Reusable artinya kode yang kita buat tidak sekali pakai, tapi bisa digunakan di class/method/test lain.
Kenapa penting?
- Menghindari duplikasi kode
- Menghemat waktu
- Lebih konsisten dan minim error
Maintainable
Maintainable berarti kode kita mudah diperbaiki/di-update ketika ada perubahan, terutama saat UI/UX berubah.
Kenapa penting?
- UI/UX kemungkinan/bisa pasti berubah
- Kalau susah dirawat, automation bisa jadi beban
Referensi
https://www.selenium.dev/documentation/en/guidelines_and_recommendations/page_object_models/ https://www.guru99.com/page-object-model-pom-page-factory-in-selenium-ultimate-guide.html https://medium.com/tech-tajawal/page-object-model-pom-design-pattern-f9588630800b
메타데이터
- post_id
- d6caebd10b9b
- slug
- page-object-model-pom-bikin-automation-testing-lebih-rapi-scalable-d6caebd10b9b
- url
- https://medium.com/@paQArti/page-object-model-pom-bikin-automation-testing-lebih-rapi-scalable-d6caebd10b9b
- canonical_url
- https://medium.com/@paQArti/page-object-model-pom-bikin-automation-testing-lebih-rapi-scalable-d6caebd10b9b
- author_url
- https://medium.com/@paQArti
- status
- ok
- fetched_at
- 2026-06-15 20:49:13