← Back to list

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

Apa Itu Page Object Model (POM)?

paQArti · 2026-01-03 04:12 · 0 claps · 1.7 min read
#page-object-model #page-object #page-object-pattern #page-object-design
Open on Medium ↗

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

sumber: hasil generate chat gpt

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

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