Setiap tahun , teknisi otomatisasi pengujian dari seluruh dunia meneliti alat dan teknik terbaru untuk membuat lingkungan otomasi pengujian mereka lebih stabil, lebih cepat, dan lebih mudah digunakan dan dipelihara. Ini penting untuk memastikan bahwa kerangka kerja mereka diterapkan dalam skala besar setiap saat di perusahaan mereka. Bagaimanapun, kerangka kerja yang membengkak dan usang dengan cepat menjadi usang.
Selenium Grid dikenal sulit untuk diatur, tidak stabil, dan sulit untuk diterapkan dan / atau kontrol versi di pipeline CI. Cara yang lebih mudah, stabil, dan nyaman adalah dengan menggunakan image Selenium Docker prebuilt.
Catatan : Satu-satunya kelemahan metode ini adalah metode ini tidak didukung oleh IE (Internet Explorer) karena sistem operasi Windows saat ini tidak dapat dimasukkan ke dalam wadah.
Persiapan untuk bekerja
Untuk memulai, Anda harus menginstal Docker dan Docker Compose terlebih dahulu di komputer Anda. Jika Anda menggunakan Windows 10 atau Mac, keduanya akan diinstal menggunakan Docker Desktop .
Menjalankan Grid Anda
Repositori Selenium Docker Hub resmi berisi gambar Docker yang sudah dibuat sebelumnya untuk node Selenium Hub, Firefox dan Chrome Anda.
Cara termudah untuk menggunakannya di Selenium Grid lokal Anda adalah dengan membuat file Docker Compose di direktori root proyek Anda. Beri nama file dengan sederhana
docker-compose.yml.
Saya telah menyertakan contoh di bawah ini yang membuat Grid berikut:
- Satu Selenium Hub
- Satu node Chrome
- Satu node Firefox
#docker-compose.yml
version: "3"
services:
selenium-hub:
image: selenium/hub:3.141.59-neon
container_name: selenium-hub
ports:
- "4444:4444"
chrome:
image: selenium/node-chrome:3.141.59-neon
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
firefox:
image: selenium/node-firefox:3.141.59-neon
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
File Docker Compose menjelaskan cara mengatur Grid Anda. Untuk informasi lebih lanjut tentang membuat file Docker Compose, lihat dokumentasi resmi .
Untuk memulai Grid Anda, cukup gunakan terminal apa saja (
PowerShellatau cmddi Windows), di mana jalankan perintah berikut dari direktori root proyek Anda:
docker-compose up
Koneksi jaringan
Anda dapat terhubung ke Selenium Grid Anda dengan cara yang persis sama seperti biasanya, karena Hub mendengarkan pada port 4444 mesin lokal Anda. Berikut adalah contoh tempat kami mengonfigurasi Driver untuk menggunakan Node Chrome kami.
// Driver.java
protected static RemoteWebDriver browser;
DesiredCapabilities cap = new DesiredCapabilities();
ChromeOptions chromeOptions = new ChromeOptions();
cap.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
cap.setBrowserName("chrome");
driver = new RemoteWebDriver(cap);
Kemudian Anda dapat menggunakan pustaka TestNG untuk menjalankan pengujian pada beberapa node secara paralel seperti biasa.
Perlu dicatat bahwa beberapa browser dapat diluncurkan pada setiap node. Namun hal ini tidak disarankan, dan menggunakan satu browser per node dianggap sebagai praktik terbaik untuk performa yang optimal.
Tip dan trik tambahan
Jika Anda ingin melihat apa yang terjadi di browser untuk men-debug pengujian Anda, maka ada baiknya memiliki
debugversi docker-compose.ymlfile Anda yang memuat debug node browser . Mereka berisi server VNC, sehingga Anda dapat menonton browser saat pengujian berjalan.
Dimungkinkan juga untuk menjalankan browser tanpa kepala untuk meningkatkan kecepatan (dengan cara biasa), dan Selenium juga menyediakan
baseversi gambar, sehingga Anda dapat membuat gambar Anda sendiri jika Anda perlu menginstal perangkat lunak tambahan.
Anda juga dapat menerapkan Grid ke Kubernetes atau Swarm untuk membuat versi Grid yang stabil untuk pipeline CI Anda . Ini memastikan pemulihan cepat atau penggantian buruh pelabuhan jika terjadi kegagalan.
Baca lebih banyak:
- Selenium: 1 — 2
- Selenium: 3 — 5