Test Engineer Tip # 1: Lakukan Dockerisasi Selenium Grid Anda

Halo lagi. Kami telah menerjemahkan catatan yang berguna untuk Anda menjelang dimulainya kursus Java QA Engineer .










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:








All Articles