Pengujian Otomasi Dalang: Tutorial 6

Dalang adalah kerangka kerja berbasis perpustakaan node js yang tersedia sebagai sumber terbuka. Ini dapat digunakan untuk alat pengikisan web. Ini juga digunakan untuk alat otomatisasi pengujian juga. Saat ini, penggunaan Dalang semakin meningkat pesat di ruang pengujian perangkat lunak otomatis. Pengetahuan dasar tentang baris perintah, Javascript, dan struktur HTML DOM diperlukan untuk memahami tutorial dalang. Seluruh tutorial dipisahkan ke dalam artikel di bawah ini. 

Tutorial Dalang

Tutorial Tosca # 1: Sekilas Dalang

Tosca Tutorial # 2: Variabel Lingkungan Dalang

Tosca Tutorial # 3: Sekilas tentang Otomatisasi Dalang Web dan Tes Dalang

Tosca Tutorial # 4: Pasang Puppeteer

Tosca Tutorial # 5: Contoh Proyek Dalang

Tutorial Tosca # 6: Pengujian Otomasi Dalang

Dalam tutorial “Pengujian Otomasi Dalang” ini, kami akan menjelaskan langkah-langkah mendetail untuk Otomasi Dalang dari awal. Fitur di bawah ini akan dijelaskan untuk memahami pengujian Otomasi Dalang dari awal -

· Instal Dalang

· Luncurkan Aplikasi Web

· Identifikasi properti objek dari Browser Chrome

· Langkah-langkah Pengiriman Formulir - Masukkan teks, Klik acara, Verifikasi

· Tangkapan layar

· Jalankan skrip untuk Otomasi Dalang

Otomatisasi Dalang

Pengujian diperlukan untuk memastikan kualitas produk perangkat lunak. Ada beberapa tingkat pengujian yang ditentukan dalam proses pengembangan perangkat lunak. Untuk menguji fungsionalitas suatu perangkat lunak, dapat dilakukan secara manual atau melalui proses otomatis. Tujuan utama pengujian perangkat lunak otomatis adalah -

  • Siklus eksekusi uji cepat.
  • Hindari kemungkinan kesalahan manusia.
  • Kurangi waktu eksekusi uji.
  • Kurangi waktu siklus rilis.
  • Ciptakan lebih banyak fungsi tanpa mengorbankan kualitas.
  • Eksekusi ganda dapat dilakukan secara paralel.

 Puppeteer adalah pustaka Node berbasis javascript yang memberikan antarmuka aplikasi tingkat tinggi (API) untuk mengontrol browser web Chrome melalui protokol Chrome DevTools. Sebagian besar operasi manual yang dilakukan di browser Chrome dapat diotomatiskan menggunakan Puppeteer. Jadi, Puppeteer adalah pilihan yang baik untuk pengujian unit pada aplikasi web dengan cara yang cepat dan mudah. 

Pendekatan Pengujian Otomasi Dalang:

Langkah-langkah yang terkait dengan Pengujian Otomasi Puppeteer dijelaskan di bawah ini - 

Step1 # Identifikasi Skenario Uji Fungsional:

Kami akan menunjukkan pendekatan langkah demi langkah untuk melakukan otomatisasi Dalang untuk skenario di bawah ini - 

· Luncurkan Browser Web.

· Panggil aplikasi Amazon Web.

  • Telusuri buku "Buku Ujian".
  • Tambahkan buku ke dalam gerobak dari hasil.
  • Buka gerobak dan periksa apakah buku tersebut tersedia di gerobak.
  • Tangkap layar dan tutup browser.

Step2 # Instal Puppeteer dan Buat Test Case:

Buat file javascript kosong sebagai "sample_script.js" di folder tertentu. Di sini, kami akan mempertimbangkan folder root sebagai SampleProject. Untuk menginstal Puppeteer, kita akan menggunakan perintah - “npm install puppeteer”. Prosedur penginstalan memerlukan beberapa waktu berdasarkan kecepatan jaringan. Ini akan mengunduh sekitar 350MB data. Setelah instalasi, folder node_modules, yang berisi berbagai komponen dalang dan file package-lock.json, akan dibuat ke folder akar proyek Puppeteer sampel.

Step3 # Tangkap Identifikasi Properti Objek Uji:

Kami dapat menangkap properti identifikasi menggunakan Alat Pengembang browser web Chrome. Menganalisis properti yang berbeda seperti, id, name, XPath, dll., Kami akan memilih properti yang benar yang dapat digunakan dalam skrip untuk melakukan operasi apa pun. Dalam tutorial "Pengujian Otomasi Puppeteer" ini, kita akan menggunakan XPath dalam skrip. Berikut langkah-langkah yang harus diikuti untuk mendapatkan XPATH atau properti lainnya,

1. Buka Alat Pengembang yang tersedia di “Menu -> Alat lainnya”, dan buka tab Elemen.

2. Menggunakan alat Finder (mengklik ikon panah yang tersedia di sudut kiri atas tab Elemen), sorot objek uji dari aplikasi. Di sini, kami akan memeriksa kotak pencarian.

Pengujian Otomasi Puppeteer - Buka alat Pengembang Chrome
Pengujian Otomasi Puppeteer - Buka alat Pengembang Chrome

3. Analisis kode sumber yang disorot untuk mengidentifikasi properti keinginan. Untuk mendapatkan properti XPATH dari objek uji, klik kanan pada bagian yang disorot dan klik "Salin-> Salin Xpath" untuk menyalin properti XPATH di papan klip.

Pengujian Otomasi Dalang - Salin XPath
Pengujian Otomasi Dalang - Salin XPath

4. Sekarang, rekatkan Xpath di kotak teks finder dan tekan enter untuk memeriksa apakah Xpath mengidentifikasi objek secara unik.

Pengujian Otomasi Dalang - Periksa XPath
Pengujian Otomasi Puppeteer - Periksa XPath

5. Demikian pula, kita perlu menangkap properti identifikasi untuk objek uji lainnya juga.

Step4 # Langkah Pengembangan Otomasi Dalang:

Untuk menyelesaikan kasus uji, kita perlu melakukan operasi tertentu pada halaman web. Untuk setiap operasi, ada metode berbeda yang tersedia. Metode yang digunakan dalam skenario kami untuk "Pengujian Otomasi Puppeteer" dijelaskan di sini.

Luncurkan Aplikasi - Setelah memasukkan dalang, kita perlu meluncurkan browser menggunakan metode dalang — luncurkan. Referensi objek dapat diteruskan ke metode ini untuk menentukan browser headless atau headful. Kemudian kita perlu membuat instance web browser yang diperlukan untuk menavigasi URL. Di sini, fungsi async digunakan untuk menggunakan kata kunci await untuk menangani sinkronisasi web.

//Sertakan paket dalang const dalang = require('puppeteer'); (async () => { //meluncurkan browser tanpa kepala const browser = menunggu dalang.launch({ headless: true }); //Membuat instance halaman const browser = menunggu browser.newPage(); //Navigasi ke url menunggu halaman.goto('https://www.amazon.in/'); })()

Seluruh pengujian akan dilakukan di browser tanpa kepala. Jika kita ingin membuka browser headful, kita perlu meneruskan objek ke metode peluncuran sebagai “{Headless: false}”.

Periksa keberadaannya - Kita perlu menggunakan metode ini halaman.waitForXpath yang akan memeriksa keberadaan Xpath dan mengembalikan referensi objek uji. Dengan menguji referensi pengembalian, kita dapat menambahkan titik verifikasi dalam kasus uji.

	let searchBox = menunggu halaman.waitForXPath("//*[@id='twotabsearchtextbox']",{ terlihat: true }); if (searchBox === null) //Verifikasi objek uji { console.log('Layar Amazon tidak ditampilkan'); }

Masukkan Data - Menggunakan mengetik metode referensi objek itu, kita bisa memasukkan teks.

menunggu searchBox.type("Buku Percobaan");

Klik pada Elemen  - Demikian pula, menggunakan klik metode referensi objek apa pun, kita dapat melakukan operasi klik.

let btnSearch = menunggu halaman.waitForXPath("//*/input[@id='nav-search-submit-button']",{visible:true }); btnSearch.klik();

Cetak pesan di konsol  - Menggunakan metode ini console.log, kami dapat mencetak pesan apa pun di konsol sebagai output.

console.log('Konsol lag telah dibuat');

Lihat tab baru - Menggunakan metode page.target dan browser.waitforTarget, kita dapat memeriksa dan menyimpan referensi tentang tab baru ke dalam variabel.

	const pageTarget = halaman.target(); const newTarget = menunggu browser.waitForTarget(target => target.opener() === pageTarget); //mendapatkan objek halaman baru: const page2 = menunggu newTarget.page();

Tangkap Screenshot - Menggunakan metode ini halaman. Screenshot, snapshot dari halaman tertentu telah diambil dan disimpan sesuai nama file yang diberikan sebagai argumen.

menunggu page.screenshot({ jalur: 'screenshot1.png' });

Tutup Halaman dan Browser - Menggunakan metode ini tutup, kita dapat menutup halaman web dan browser.

	menunggu halaman.close(); menunggu browser.close();

Waktu Tunggu - Dalam kasus tertentu, ada persyaratan untuk menunggu pemuatan halaman atau penyelesaian tugas yang bergantung; kita perlu menghentikan sementara eksekusi untuk waktu yang telah ditentukan. Untuk melakukan ini, kita bisa menggunakan halaman.waitForTimeout metode yang dapat menjeda eksekusi berdasarkan nilai (dalam mili-detik) yang melewati argumen.

menunggu halaman.waitForTimeout(2000);

Sekarang kita telah mempelajari tentang langkah-langkah teknis dasar untuk mengotomatiskan skenario fungsional kita. Berdasarkan ilmunya, kita bisa melalui test case Otomasi Dalang di bawah ini. Gambaran rinci dari kelas dan metode yang paling sering digunakan akan dijelaskan di posting berikutnya.

/** * @name Amazon search */ const dalang = membutuhkan('puppeteer'); const reportPath = 'C:\\LambdaGeeks\\puppteer_proj_sample\\output\\'; const tangkapan layar = 'screen1.png'; // Digunakan untuk mengekspor file ke file .docx try { (async() => { const browser = menunggu dalang.launch({ headless: false }); const pageNew = menunggu browser.newPage() menunggu pageNew.setViewport( { lebar: 1280, tinggi: 800 }); menunggu halamanNew.goto('https://www.amazon.in/'); //Masukkan kriteria Pencarian let searchBox = menunggu halaman.waitForXPath("//*[@id ='twotabsearchtextbox']",{ terlihat: true }); if (searchBox === null) { console.log('Layar Amazon tidak ditampilkan'); } else{ menunggu searchBox.type("Buku Pengujian"); console.log('Kriteria pencarian telah dimasukkan'); } //Mengklik tombol pencarian let btnSearch = menunggu pageNew.waitForXPath("//*/input[@id='nav-search-submit-button']", { terlihat: true }); if (btnSearch === null) { console.log('Tombol pencarian tidak ditampilkan'); } else{ menunggu btnSearch.click(); console.log('Mengklik tombol pencarian') ; } //Klik pada hasil pencarian tertentu let myBook = menunggu pageNew.waitForXPath("//*[contains(text(),'Selenium Testing Tools Cookbook Edisi Kedua')]",{ visible: true}) if (Bukuku === null) { console.log('Buku tidak tersedia'); } else{ menunggu myBook.click(); console.log('Klik pada buku tertentu untuk memesan'); } // Identifikasi apakah tab baru telah membuka const pageTarget = pageNew.target(); const newTarget = menunggu browser.waitForTarget(target => target.opener() === pageTarget); //mendapatkan objek halaman baru: const page2 = menunggu newTarget.pageNew(); menunggu page2.setViewport({ lebar: 1280, tinggi: 800 }); //Tambahkan ke troli biarkan addToCart = menunggu page2.waitForXPath("//*/input[@id='add-to-cart-button']",{ visible: true }); if (addToCart === null) { console.log('Tombol Tambahkan ke troli tidak tersedia'); } else{ console.log('Klik tombol tambahkan ke Keranjang'); menunggu addToCart.click(); } //Verifikasi proses add to cart let successMessage = menunggu page2.waitForXPath("//*[contains(text(),'Added to Cart')]",{ visible: true }); if (successMessage === null) { console.log('Item tidak ditambahkan ke keranjang'); } else{ console.log('Item berhasil ditambahkan ke keranjang'); } // Menangkap jumlah keranjang let cartCount = menunggu page2.waitForXPath("//*/span[@id='nav-cart-count']",{ visible: true}); let value = menunggu page2.evaluate(el => el.textContent, cartCount) console.log('Cart count: ' + value); keranjangJumlah.fokus(); menunggu page2.screenshot({ jalur: tangkapan layar }); menunggu halamanNew.waitForTimeout(2000); menunggu halaman2.close(); menunggu halamanNew.close(); menunggu browser.close(); })() } tangkap (err) { console.error(err) }

Step5 # Eksekusi Tes Otomasi Puppeteer:

Kami dapat memulai eksekusi menggunakan perintah simpul sample_script.js melalui command prompt. Selama eksekusi, browser Chromium akan dibuka dan secara otomatis menjalankan langkah-langkah fungsional dan menyimpan tangkapan layar dari halaman terakhir. Tangkapan layar dan keluaran konsol akan terlihat seperti di bawah ini.

Pengujian Otomasi Dalang - Output Konsol
Pengujian Otomasi Dalang - Output Konsol
Pengujian Otomasi Dalang - Layar yang Ditangkap
Pengujian Otomasi Dalang - Layar yang Ditangkap

Kesimpulan:

Sepanjang Tutorial Pengujian Otomasi Puppeteer ini, kami telah mempelajari tentang langkah-langkah rinci tentang Pengujian Otomasi Dalang. Dalam tutorial Dalang berikutnya, kita akan belajar tentang gambaran umum mendetail dari kelas dan metode dalang yang paling sering digunakan. Silakan klik disini untuk mengunjungi portal referensi Tutorial Dalang ini. 

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai *

Gulir ke Atas