Repositori Objek di Selenium

โšก Ringkasan Cerdas

Repositori Objek di Selenium Memusatkan penunjuk elemen dalam satu file eksternal, memisahkannya dari skrip pengujian. Pendekatan ini meningkatkan pemeliharaan dan memungkinkan penguji untuk memperbarui penunjuk elemen di satu tempat daripada mengedit banyak kasus uji.

  • ๏ธ Konsep Inti: Menyimpan penunjuk antarmuka pengguna sebagai pasangan kunci-nilai, yang disimpan terpisah dari Selenium Logika pengujian WebDriver.
  • ๐Ÿ“„ Pendekatan File Properti: Simpan penunjuk lokasi dalam file teks .properties, yang dibaca saat runtime melalui kelas java.util.Properties.
  • ๐Ÿงฉ Pendekatan File XML: Gunakan file XML dengan Document Object Model dan dom4j untuk membaca locator melalui selectSingleNode.
  • ๐Ÿ”ง Alur Implementasi: Buat file, simpan data pasangan kunci-nilai, baca nilai ke dalam variabel, lalu teruskan ke fungsi findElement.
  • ๐Ÿ›ก๏ธ Manfaat Pemeliharaan: Saat locator berubah, perbarui hanya file repositori, bukan setiap kasus uji yang terpengaruh.

Repositori Objek di Selenium

Apa itu Repositori Objek?

Repositori objek adalah lokasi penyimpanan umum untuk semua objek. Di dalam Selenium Dalam konteks WebDriver, objek biasanya menjadi pencari lokasi yang digunakan untuk mengidentifikasi elemen web secara unik.

Keuntungan utama menggunakan object repository adalah pemisahan objek dari test case. Jika nilai locator dari satu elemen web berubah, hanya object repository yang perlu diubah, bukan melakukan perubahan pada semua test case di mana locator tersebut telah digunakan. Memelihara object repository meningkatkan modularitas implementasi framework.

Jenis Repositori Objek di Selenium Pengemudi Web

Selenium WebDriver tidak menawarkan repositori objek bawaan secara default. Namun, repositori objek dapat dibangun menggunakan pendekatan pasangan kunci-nilai, di mana kunci mengacu pada nama yang diberikan kepada objek dan nilai mengacu pada properti yang digunakan untuk mengidentifikasi objek secara unik di dalam halaman web.

Berikut ini adalah jenis repositori objek yang dapat dibuat di Selenium Pengemudi Web.

  1. Repositori Objek menggunakan file Properties
  2. Repositori Objek menggunakan file XML

Selenium Repositori Objek Driver Web menggunakan file Properties

Dalam pendekatan ini, file properti adalah file teks tempat data disimpan dalam bentuk pasangan kunci-nilai. Tutorial di bawah ini akan membahas topik-topik berikut.

Langkah 1) Membuat file properti di eclipse

  1. Sebagai langkah awal, struktur proyek Java di bawah ini perlu dibuat di Eclipse. Nama proyek dan nama paket dapat berupa nama apa pun yang valid.

Membuat File Properti Di Eclipse

  1. Klik kanan pada folder proyek utama dan pilih Baru -> Lainnya

Membuat File Properti Di Eclipse

  1. Di jendela berikutnya, pilih Umum -> File dan klik tombol 'Berikutnya'.

Membuat File Properti Di Eclipse

  1. Berikan nama file yang valid dengan ekstensi '.properties' pada jendela sumber daya file baru dan klik tombol 'Selesai'.

Membuat File Properti Di Eclipse

  1. Berkas bernama 'application.properties' harus ditampilkan pada Struktur Proyek.

Membuat File Properti Di Eclipse

Langkah 2) Menyimpan data ke file properti

  1. Data disimpan dalam file properti dalam bentuk pasangan kunci-nilai, dengan kunci yang unik di seluruh file.
  2. Kami akan mencoba menggunakan file properti untuk mengidentifikasi elemen web menggunakan nilai locator.
  3. Buka file application.properties di Eclipse dan simpan data berikut
MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

Menyimpan Data Ke File Properti

4) Untuk tutorial ini, situs web demo berikut digunakan:

https://demo.guru99.com/test/guru99home/Berikut adalah skenario pengujiannya:

  • Klik tautan Pengujian Seluler menggunakan XPATH
  • Navigasi kembali
  • Masukkan data ke dalam kotak teks email menggunakan ID.
  • Klik tombol Daftar menggunakan ID

Langkah 3) Membaca data dari file properti

  1. Membaca data dari file properti dapat dilakukan menggunakan kelas Properties bawaan yang disediakan dalam paket java.util.
  2. Awalnya, objek dari kelas Properties perlu dibuat seperti di bawah ini.
  Properties obj = new Properties();
  1. Kita perlu membuat objek dari kelas FileInputStream dengan jalur ke file properti.
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. Membaca data dari file properti dapat dilakukan menggunakan metode `load` yang disediakan oleh kelas `Properties` di Java. Kode di bawah ini menunjukkan penggunaan metode `load`.
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
obj.load(objfile);
String mobileTesting = obj.getProperty("MobileTesting");

String 'mobileTesting' akan berisi XPATH untuk mengidentifikasi tautan Pengujian Seluler dalam laman web.

Langkah 4) Menggunakan file properti dalam skrip pengujian

Berkas properti dapat digunakan dalam skrip pengujian dengan membaca data dari berkas properti dan meneruskan data tersebut sebagai parameter ke metode findElement. Kode di bawah ini menunjukkan penggunaan data yang dibaca dari berkas properti dalam skrip pengujian.

driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click();
driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com");
driver.findElement(By.id(obj.getProperty("SignUpButton"))).click();

Di bawah ini adalah kode lengkap yang digunakan untuk skenario pengujian di atas.

package com.objectrepository.demo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class DemoOR {

    public static void main(String[] args) throws IOException {

        // Create WebDriver Instance
        WebDriver driver;
        System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
        driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/guru99home/");
        driver.manage().window().maximize();
        // Load the properties File
        Properties obj = new Properties();
        FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
        obj.load(objfile);
        // Navigate to link Mobile Testing and Back
        driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click();
        driver.navigate().back();
        // Enter Data into Form
        driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com");
        driver.findElement(By.id(obj.getProperty("SignUpButton"))).click();
    }

}

Selenium Repositori Objek WebDriver Menggunakan File XML

XML adalah singkatan dari Extensible Markup Language. Sebuah file XML menggunakan Document Object Model (DOM) sebagai struktur dasarnya. Format file XML akan meniru format HTML yang menjadi dasar pembuatan halaman web. Berikut adalah daftar topik yang akan dibahas.

Langkah 1) Membuat file XML di Eclipse

  1. Struktur proyek Java di bawah ini perlu dibuat Eclipse.

Membuat File XML Di Eclipse

  1. Klik kanan pada folder proyek, pilih Baru -> Lainnya

Membuat File XML Di Eclipse

  1. Pilih file XML di dalam folder XML dan klik tombol 'Berikutnya'.

Membuat File XML Di Eclipse

  1. Masukkan nama file XML yang valid dan klik tombol 'Selesai'.

Membuat File XML Di Eclipse

  1. File XML akan ditambahkan ke folder proyek seperti yang ditunjukkan di bawah ini

Membuat File XML Di Eclipse

Langkah 2) Menyimpan data ke file XML

Data dapat disimpan dalam file XML dalam bentuk Document Object Model (DOM). Demi kemudahan, kita dapat menggunakan skenario pengujian di bawah ini sebagai contoh.

  • Klik tautan Pengujian Seluler menggunakan XPATH
  • Kembali ke halaman utama
  • Masukkan data ke dalam kotak teks email menggunakan ID.
  • Klik tombol Daftar menggunakan ID

Berikut adalah format file XML yang akan digunakan.

<menu>
      <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting>
      <email> philadelphia-field-email</email>
      <signup> philadelphia-field-submit </signup>
 </menu>

Simpan kode XML di atas di properti.xml

Menyimpan Data Ke File XML

Di tab desain Anda akan melihat

Menyimpan Data Ke File XML

Langkah 3) Membaca data dari file XML

1. Membaca data dari file XML dapat dilakukan menggunakan kelas 'dom4j' bawaan di Java. Harap dicatat bahwa Anda perlu menambahkan file JAR berikut ke jalur build proyek Anda sebelum melanjutkan dengan kode.

  • jaxen.jar
  • dom4j-1.6.jar

2. Berikut adalah kode untuk membaca data dari file XML.

        File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml");
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(inputFile);
        String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText();
        String emailTextBox = document.selectSingleNode("//menu/email").getText();
        String signUpButton = document.selectSingleNode("//menu/signup").getText();

3. Awalnya, kita perlu membuat objek File dan meneruskannya sebagai parameter ke metode 'read' dari kelas SAXReader. Setelah data file XML berhasil dibaca, kita dapat mengakses node individual dari dokumen XML menggunakan metode 'selectSingleNode'.

Langkah 4) Menggunakan file XML dalam skrip pengujian

Berkas XML dapat digunakan dalam skrip pengujian dengan membaca data dari berkas XML dan meneruskan data tersebut sebagai parameter ke metode findElement. Kode di bawah ini menunjukkan penggunaan data yang dibaca dari berkas XML dalam skrip pengujian.

driver.findElement(By.xpath(mobileTesting)).click();
driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com");
driver.findElement(By.id(signUpButton)).click();

Kode di bawah ini menunjukkan penggunaan file XML di Selenium WebDriver.

package com.objectrepository.demo;
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.SAXReader;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class DemoORXML {

    public static void main(String[] args) throws DocumentException {
        // Creating WebDriver Instance
        WebDriver driver;
        System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
        driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/guru99home/");
        driver.manage().window().maximize();
        // Reading XML File
        File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml");
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(inputFile);
        String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText();
        String emailTextBox = document.selectSingleNode("//menu/email").getText();
        String signUpButton = document.selectSingleNode("//menu/signup").getText();

        // Navigating to Mobile Testing and back
        driver.findElement(By.xpath(mobileTesting)).click();
        driver.navigate().back();
        // Entering Form Data
        driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com");
        driver.findElement(By.id(signUpButton)).click();

    }
}

Unduh WebDriver Eclipse Project

Pertanyaan Umum Demo Slot

Object repository hanya menyimpan locator elemen secara eksternal. Page Object Model adalah pola yang lebih luas yang membungkus locator dan aksi halaman di dalam kelas halaman.

Ya. Lokator juga dapat disimpan dalam file Excel atau CSV, dibaca menggunakan pustaka seperti Apache POI dan diteruskan ke findElement.

Gunakan kunci yang jelas dan deskriptif, kelompokkan locator berdasarkan halaman, utamakan locator yang stabil seperti ID, dan hindari duplikasi. Pertahankan satu repositori per modul sehingga perubahan locator hanya memperbarui satu entri.

Ya. Beberapa alat bantu berbasis AI memindai halaman, mendeteksi elemen, dan mengekspor locator siap pakai ke dalam repositori. Penguji tetap harus meninjau locator tersebut untuk memastikan stabilitasnya.

AI yang mampu memperbaiki diri sendiri mengamati atribut elemen selama pengujian dan, ketika locator yang tersimpan rusak, secara otomatis memilih kecocokan alternatif. Hal ini menjaga agar pengujian tetap berjalan meskipun ada perubahan antarmuka kecil dan mengurangi biaya pemeliharaan.

Ringkaslah postingan ini dengan: