Menjadi kerangka kerja sumber terbuka memungkinkan Selenium untuk kompatibel dengan beberapa kerangka otomatisasi pengujian untuk bahasa pemrograman yang berbeda dan jika kita berbicara tentang pengujian Otomatisasi dengan Selenium dan JavaScript, ada kerangka kerja tertentu yang tidak pernah gagal untuk menjadi sorotan dan itu adalah Jam malam.js. Inilah mengapa saya memutuskan untuk membuat tutorial Nightwatch.js untuk pemula.

Dalam postingan blog ini, kita akan mendalami tutorial langkah demi langkah Nightwatch.js untuk melakukan pengujian dengan Selenium dan JavaScript untuk pengujian browser otomatis. Kami akan menjelajahi bagaimana kami dapat menginstal dan mengatur Nightwatch.js dan melihat detail tentang konfigurasinya serta struktur file dan folder penting. Nanti kita juga akan melihat eksekusi skrip otomatisasi pengujian tutorial Nightwatch.js pertama kita dan apa saja masalah yang mungkin kita temui, beserta penyelesaiannya. Mari kita mulai tutorial Nightwatch.js untuk pemula ini dengan pengenalan dasar.

Jika Anda baru mengenal Selenium dan bertanya-tanya apa itu Selenium, kami sarankan untuk membaca panduan kami — Apa itu Selenium?

Tutorial Nightwatch.js 101: Apa itu Nightwatch.js?

Didukung oleh Node.js, Nightwatch.js adalah kerangka pengujian otomatis sumber terbuka yang bertujuan menyediakan solusi E2E (end to end) lengkap untuk mengotomatiskan pengujian dengan Selenium Javascript untuk aplikasi berbasis web, aplikasi browser, dan situs web. Kerangka kerja Nightwatch.js mengandalkan Selenium dan menyediakan beberapa perintah dan pernyataan dalam kerangka Nightwatch.js untuk melakukan operasi pada elemen DOM. Ini secara internal menggunakan API WebDriver W3C yang kuat atau Selenium WebDriver dan menyederhanakan penulisan "tes otomatis di Node.js" ujung ke ujung dan dengan mudah mengatur Integrasi Berkelanjutan.

Apakah Anda menggunakan Playwright untuk pengujian otomatisasi? Jalankan skrip pengujian Playwright Anda secara instan pada 50+ kombinasi browser/OS menggunakan cloud LambdaTest. Daftar gratis: https://www.lambdatest.com/playwright-testing

Tutorial Nightwatch.js 101: Mengapa Nightwatch.js Begitu Populer?

Sebelum kita mendalami cara mengeksekusi skrip pengujian dalam tutorial Nightwatch.js untuk pemula ini. Penting untuk memahami alasan di balik popularitas Nightwatch.js. Nightwatch.js memfasilitasi pengujian browser fungsional ujung ke ujung dalam lingkungan node.js murni yang memungkinkan pengujian aplikasi web independen dari perangkat lunak pihak ketiga. Tujuan utama kerangka pengujian otomatis yang ringan dan kuat seperti Nightwatch.js adalah untuk memungkinkan solusi terintegrasi tunggal untuk pengujian aplikasi. Karena Nightwatch.js dibangun di atas Node.js, ia memiliki beberapa keunggulan besar dibandingkan Selenium lainnya. Pengujian browser otomatis yang didukung oleh Nightwatch.js menghilangkan faktor ketergantungan pada perangkat lunak pihak ketiga sehingga meningkatkan integritas data di antara beragam komponen sistem.

Nightwatch.js untuk pengujian Selenium menyediakan fitur-fitur siap pakai berikut ini:

Tes Runner Bawaan: Dilengkapi dengan rangkaian test runner baris perintah bawaan dengan dukungan Grunt untuk menjalankan pengujian otomatis.

Strategi Pengujian: Memiliki fitur untuk menjalankan pengujian secara efisien dan dapat dilakukan dengan berbagai cara seperti secara paralel, berurutan, atau berkelompok, dan tag.

Layanan Cloud: Dukungan yang baik untuk Pengujian Lintas Browser dengan JavaScript Selenium dengan menyediakan integrasi dengan penyedia pengujian Selenium berbasis cloud seperti LambdaTest.

Server Selenium: Kemampuan untuk mengontrol server Selenium mandiri secara otomatis dengan pelaporan XML JUnit bawaan.

Pernyataan, CSS, dan XPath: Beberapa perintah dan pernyataan untuk operasi DOM, pemilih CSS dan XPath dan dapat digunakan untuk mengidentifikasi elemen pada laman. Hal ini membuat kerangka Nightwatch.js fleksibel dan mudah diperluas terutama saat mengimplementasikan perintah dan pernyataan khusus aplikasi.

Integrasi Berkelanjutan: Ini menawarkan dukungan yang baik untuk Integrasi Berkelanjutan dan karenanya dapat digunakan untuk mengintegrasikan pengujian dengan sistem pemrosesan pembangunan berkelanjutan seperti Jenkins, TeamCity, dll. dan membantu pengembang dalam membangun dan menguji perangkat lunak secara terus-menerus .

Terlepas dari semua fitur di atas yang disediakannya, ia populer karena memiliki sintaksis yang bersih dan mudah, membuatnya lebih mudah untuk menulis pengujian secara efisien dan cepat hanya dengan menggunakan pemilih CSS Node.js dan pencari XPath di Selenium .

Tutorial Nightwatch.js 101: Bagaimana cara kerja Nightwatch.js?

Nightwatch berkomunikasi melalui protokol API tenang yang ditentukan oleh W3C WebDriver API. Dibutuhkan API HTTP yang tenang dengan server Selenium JavaScript WebDriver.

Untuk melakukan operasi apa pun, misalnya perintah atau pernyataan, Nightwatch biasanya memerlukan pengiriman minimal dua permintaan. Ini berfungsi sebagai berikut:

  • Permintaan pertama menemukan elemen yang diperlukan dengan ekspresi XPath atau pemilih CSS yang diberikan.
  • Permintaan kedua mengambil elemen dan melakukan operasi perintah atau pernyataan yang sebenarnya.

Tutorial Pengujian menyeluruh yang komprehensif yang mencakup apa itu Pengujian E2E, pentingnya, manfaat, dan cara melakukannya dengan contoh waktu nyata: https://www.lambdatest.com/learning-hub /pengujian ujung ke ujung

Tutorial Nightwatch.js 101: Instalasi dan Prasyarat Untuk Menjalankan

Ada beberapa prasyarat dasar yang diperlukan untuk memulai tutorial Nightwatch.js ini untuk pengujian dengan Selenium dan JavaScript.

  • Node.js: Modul Nightwatch.js dibangun di atas Node.js, hal ini menunjukkan bahwa Node.js perlu diinstal pada sistem.
  • Node Package Manager (npm): Setelah Node.js diinstal, manajer paket node yaitu npm dapat dimanfaatkan untuk menginstal paket yang merupakan ekosistem paket terbesar.
    Sekarang, untuk menginstal paket versi terbaru menggunakan alat baris perintah npm, perintah di bawah ini dijalankan (di sini 'g' untuk instalasi secara global):
$ npm install -g nightwatch

Perintah di bawah ini akan menempatkan Nightwatch.js yang dapat dieksekusi ('–save-dev') di folder ./node_modules/.bin kami

$ npm install --save-dev nightwatch
  • Java — SDK: Selenium memerlukan Java untuk Server Selenium jarak jauhnya. Karena Nightwatch.js bergantung pada Selenium WebDriver API dan juga memerlukan Server Selenium WebDriver, maka ada juga kebutuhan untuk menginstal Java Development Kit (JDK 7+) pada sistem dan mengonfigurasi lingkungan JAVA.
  • Server Selenium:Membutuhkan paket server mandiri Selenium JAR yang dapat diunduh dari halaman unduh Selenium. Setelah diunduh, itu harus ditempatkan di folder bin proyek dan server Selenium dapat dimulai menggunakan perintah:
selenium-server-standalone-{version}.jar

Driver Chrome: Terakhir, memerlukan Driver Chrome, yang merupakan server mandiri yang mengimplementasikan protokol kabel Driver Web W3C untuk Chromium. Eksekusi ini juga perlu ditempatkan di dalam folder bin yang sama.

$ npm install --save-dev chromedriver</pre>

Tutorial Nightwatch.js 101: Mengonfigurasi dan Menyiapkan Nightwatch.js

Sekarang, setelah kita membahas dasar-dasarnya secara mendetail, sekarang saatnya mendalami pengujian Nightwatch.js dengan Selenium dan JavaScript melalui tutorial Nightwatch.js untuk pemula ini. Nightwatch.js menawarkan test runner bawaan yang mengharapkan file konfigurasi JSON diteruskan. File konfigurasi default adalah nightwatch.json yang seharusnya ada di direktori root proyek. Alternatifnya, file konfigurasi nightwatch.conf.js juga dapat digunakan dan akan dimuat dari direktori root proyek untuk pengujian Nightwatch.js.

Catatan: Jika kedua file konfigurasi ada di direktori, nightwatch.conf.js akan diutamakan karena memberikan kita sedikit lebih banyak fleksibilitas dan dapat memiliki komentar di file.

Anda bahkan dapat mendeklarasikan detail pengujian spesifik di bawah file konfigurasi ini untuk pengujian Nightwatch.js seperti lingkungan pengujian, pengaturan spesifik Selenium, dll. Seperti inilah tampilan file konfigurasi nightwatch.json untuk pengujian dengan Selenium dan JavaScript.

{
  "src_folders" : ["tests"],
  "output_folder" : "reports",
  "custom_commands_path" : "",
  "custom_assertions_path" : "",
  "page_objects_path" : "",
  "globals_path" : "",
  "test_workers": {
    "enabled": true,
    "workers": "auto"
  },
  "selenium" : {
    "start_process" : true,
    "server_path" : "node_modules/selenium-standalone/.selenium/selenium-server/",
    "log_path" : "./reports",
    "host": "127.0.0.1",
    "port" : 4444,
    "cli_args" : {
      "webdriver.chrome.driver" : "",
      "webdriver.gecko.driver" : "",
      "webdriver.edge.driver" : ""
    }
  },
 
  "test_settings" : {
    "default" : {
      "launch_url" : "http://localhost",
      "selenium_port"  : 4444,
      "selenium_host"  : "localhost",
      "silent": true,
      "screenshots" : {
        "enabled" : false,
        "path" : ""
      },
      "desiredCapabilities": {
        "browserName": "firefox",
        "marionette": true,
        "javascriptEnabled": true,
        "acceptSslCerts": true
      }
    },
 
    "chrome" : {
      "desiredCapabilities": {
        "browserName": "chrome"
      }
    },
 
    "edge" : {
      "desiredCapabilities": {
        "browserName": "MicrosoftEdge"
      }
    }
  }
}

Mari kita lihat lebih dekat struktur file konfigurasi nightwatch.json.

  • src_folders: Ini adalah direktori yang menunjukkan lokasi yang berisi rangkaian pengujian
  • output_folder: Direktori ini menunjukkan lokasi yang berisi dan menyimpan laporan pengujian, yaitu file laporan JUnit, laporan XML, log pengujian, log Selenium, tangkapan layar, log video, log jaringan, dll.
  • globals_path: Ini menunjukkan jalur file tempat semua parameter global yang digunakan dalam rangkaian pengujian diinisialisasi. Ini dimuat dan disajikan ke pengujian sebagai properti global dan juga dapat dimodifikasi di dalam lingkungan test_settings.
  • test_workers: Properti ini menentukan apakah kita ingin menjalankan rangkaian pengujian secara paralel atau tidak. Jika diaktifkan diatur ke benar, ini menunjukkan bahwa paralelisasi diperbolehkan untuk strategi pengujian.
  • page_objects_path: Ini menunjukkan lokasi di mana file objek halaman seharusnya dimuat.
  • Selenium: Ini berisi semua informasi dan penyesuaian yang terkait dengan konfigurasi Server Selenium. Ini juga berisi server_path dan webdriver.chrome.driver yang masing-masing menunjukkan jalur ke server Selenium dan driver chrome. Selain itu, jika parameter start_process disetel ke true, ini menunjukkan Server Selenium untuk memulai secara otomatis.
  • test_settings: Ini berisi semua informasi penting terkait pengujian dan opsi untuk mengonfigurasinya. Ini memungkinkan kita untuk menentukan dan menyesuaikan lingkungan pengujian.

Coba Selenium Grid online ini untuk menjalankan skrip pengujian otomatisasi browser Anda. Infrastruktur cloud kami memiliki 3000+ lingkungan desktop & seluler. Coba gratis: https://www.lambdatest.com/selenium-automation

Tutorial Nightwatch.js 101: Eksekusi Skrip Pertama pada Pengaturan WebDriver Selenium Lokal

Kami akan memulai pengujian otomatisasi di tutorial Nightwatch.js untuk pemula dengan contoh skrip pengujian yang akan kami jalankan akan mencari Nightwatch.js di Google dan kemudian memeriksa dokumentasi Nightwatch.js di website.

module.exports = {
  'NW test on Google' : function (client) {
    client
      .url('http://www.google.com')
      .waitForElementVisible('body', 1000)
      .assert.title('Google')
      .assert.visible('input[type=text]')
      .setValue('input[type=text]', 'Nightwatch JS')
      .waitForElementVisible('button[name=btnG]', 1000)
      .click('button[name=btnG]')
      .pause(1000)
      .assert.containsText('ol#rso li:first-child',
        'Nightwatch.js | Node.js powered End-to-End testing framework')
      .end()
  }
}

Kita bebas memodifikasi file konfigurasi nightwatch.json dan file modul global yaitu nightwatch.globals.js sesuai kebutuhan kita tetapi seharusnya terlihat seperti file di bawah ini .

{
  "src_folders" : ["./tests"],
  "output_folder" : "./reports",
  "globals_path" : "nightwatch.globals.js",
  "test_workers": {
    "enabled": true,
    "workers": "auto"
  },
  "selenium" : {
    "start_process" : true,
    "server_path" : "./node_modules/selenium-server-standalone-jar/jar/selenium-server-standalone-3.141.59.jar",
    "log_path" : "nw/logs",
    "host" : "127.0.0.1",
    "port" : 4444,
    "cli_args" : {
      "webdriver.chrome.driver" : "./node_modules/chromedriver/bin/chromedriver",
      "webdriver.ie.driver" : ""
    }
  },
  "test_settings" : {
    "default" : {
      "launch_url" : "http://google.com",
      "selenium_port"  : 4444,
      "selenium_host"  : "localhost",
      "silent": true,
      "screenshots" : {
        "enabled" : true,
        "path" : ""
      },
      "desiredCapabilities": {
        "browserName": "chrome",
        "javascriptEnabled": true,
        "acceptSslCerts": true
      }
    },
    "french" : {
      "launch_url" : "http://google.fr",
      "desiredCapabilities": {
        "browserName": "firefox",
        "javascriptEnabled": true,
        "acceptSslCerts": true
      }
    }
  }
}

Penting untuk menambahkan bagian di bawah ini dalam file package.json untuk menjalankan folder tes untuk pengujian tutorial Nightwatch.js.

scripts": {
    "test": "./node_modules/.bin/nightwatch -e firefox,edge,safari test"
  },

Hal terakhir yang perlu kita lakukan adalah melakukan pengujian Nightwatch.js dari direktori dasar proyek menggunakan perintah:

npm test

Perintah ini dengan memvalidasi pengujian dan dependensi, lalu menjalankan rangkaian pengujian, yang akan membuka Chrome dan kemudian Google string pencarian yang diberikan. Di bawah ini adalah screenshot eksekusi pengujian Nightwatch.js yang menampilkan hasil pencarian di Google.

Tutorial Nightwatch.js 101: Pengujian Paralel Dengan Nightwatch.js menggunakan WebDriver Selenium Lokal

Kami telah membuat konfigurasi untuk menjalankan pengujian Nightwatch.js secara paralel dengan mengaktifkan test_workers menjadi true. Jadi, kita hanya perlu menambahkan satu pengujian baru di folder pengujian dan framework Nightwatch.js akan menjalankan kedua pengujian tersebut secara paralel.

Tes kedua akan mencari Node.js di google dan memeriksa dokumentasi Node.js.

module.exports = {
  'NJS test on Google' : function (client) {
    client
      .url('http://www.google.com')
      .waitForElementVisible('body', 1000)
      .assert.title('Google')
      .assert.visible('input[type=text]')
      .setValue('input[type=text]', 'node.js')
      .waitForElementVisible('button[name=btnG]', 1000)
      .click('button[name=btnG]')
      .pause(1000)
      .assert.containsText('ol#rso li:first-child',
        'Node.js')
      .end()
  }
}

Sekarang kita akan mengamati bahwa dua pengujian berbeda akan dijalankan secara bersamaan di dua browser Chrome yang berbeda. Di bawah ini adalah screenshot pelaksanaan pengujian yang menampilkan hasil pencarian di Google.

Tutorial Nightwatch.js 101: Tantangan Seputar Penyiapan Struktur Infrastruktur untuk Pengujian Otomatis

Selenium memimpin pasar dalam pengujian otomatisasi web dengan menawarkan dukungan hebat untuk kerangka pengujian dan pengujian browser otomatis. Sebaliknya, ada beberapa kendala yang mungkin dihadapi penguji otomasi saat memanfaatkan pengujian JavaScript Selenium menggunakan infrastruktur Selenium internal.

Cakupan Tes Selama Pengujian Lintas Browser

Saat kami "melakukan pengujian lintas browser" pada pengaturan aplikasi web yang dihosting sendiri, kami cenderung menghilangkan masalah apa pun pada antarmuka pengguna dan dapat membuat perubahan tertentu jika diperlukan dan kemudian memigrasikan kode dalam pengaturan langsung untuk lalu lintas web . Semua ini baik-baik saja, tetapi satu kekhawatiran yang muncul adalah cakupan tes. Hal ini terutama karena pengujian hanya dapat dilakukan pada browser yang diinstal secara lokal di sistem. Ada kebutuhan untuk melakukan pengujian pada semua browser penting agar "pengujian lintas browser" berhasil. Terkadang, pengujian pada beberapa browser atau versi browser lama juga diperlukan untuk sekelompok pengguna dan sistem operasi tertentu. Jadi, Anda perlu menguji kombinasi browser dan sistem operasi yang berbeda, dan hal itu tidak dapat dilakukan dengan infrastruktur Selenium internal lokal.

Biaya yang Dikeluarkan Selama Persiapan Infrastruktur Lokal

Selalu ada biaya infrastruktur saat melakukan pengujian otomatis tertentu dan saat menyiapkan Selenium internal lokal.

  • Ada kebutuhan untuk mengkonfigurasi lingkungan pengujian terpisah untuk menjalankan semua kasus pengujian.
  • Berbagai jenis perangkat seperti desktop, seluler, tablet, dll. diperlukan dan harus menjadi bagian dari strategi pengujian.
  • Penyiapan laboratorium perangkat yang memiliki semua perangkat yang diperlukan juga dapat diinvestasikan, tetapi ini bukan pilihan yang baik untuk perusahaan rintisan atau organisasi skala kecil karena mereka mungkin menahan diri untuk tidak melakukan investasi besar pada awalnya.
  • Karena pengujian otomatis mungkin bertambah jumlahnya selama fase pengujian, maka diperlukan sistem yang cukup skalabel untuk menangani skenario ini.

Sebagai alternatif, mesin virtual atau simulator dapat digunakan untuk melakukan pengujian otomatisasi dalam pengaturan lokal untuk aplikasi web yang dihosting, namun hal ini sekali lagi memerlukan pemeliharaan yang tepat, berdampak pada kinerja sistem, dan memakan waktu.

Mengapa Selenium Grid Berbasis Cloud Merupakan Pilihan yang Baik?

Dalam hal pengujian browser otomatis, Selenium Grid berbasis cloud adalah pilihan yang tepat. Infrastruktur berbasis cloud akan membantu Anda dengan akses ke ratusan browser + kombinasi sistem operasi, yang dihosting di server cloud penyedia. Dengan begitu, Anda tidak perlu lagi repot memelihara Selenium Grid saat Anda menjalankan pengujian tanpa waktu henti. Manfaat lain menggunakan cloud pengujian adalah menyediakan lingkungan adaptif yang sudah diatur dengan kerangka kerja sehingga pengguna dapat menjalankan pengujian menggunakan kerangka kerja pilihan mereka sesuai kebutuhan.

Selain itu, cloud pengujian sangat skalabel dan memberi kami hak istimewa untuk menggunakan infrastruktur sesuai kebutuhan untuk menjalankan sejumlah pengujian secara paralel atau pada waktu yang sama. Oleh karena itu, ketika mengadopsi strategi pengujian cloud, Anda hanya perlu memodifikasi skrip pengujian Anda, namun pengaturan infrastruktur yang digunakan untuk menjalankan pengujian tetap sama.

Selenium Grid Berbasis Cloud Mana yang Sebaiknya Anda Gunakan?

LambdaTest dipercaya oleh 100.000 perusahaan di seluruh dunia sebagai penyedia Senium Grid online yang andal untuk memenuhi kebutuhan pengujian lintas browser mereka. Dengan menggunakan LambdaTest, Anda dapat melakukan pengujian browser otomatis dengan Selenium Grid berbasis cloud yang terdiri dari 3000+ browser nyata untuk keduanya seluler dan desktop untuk membantu Anda mendapatkan cakupan pengujian maksimum selama pengujian browser otomatis.

Selenium Grid kami memungkinkan Anda menjalankan skrip pengujian otomatisasi di Selenium pada berbagai platform pemrograman seperti Java, JavaScript, PHP, Python, Ruby, C# dan bahasa lain yang menyediakan pengikatan dengan Selenium.

Anda juga dapat memilih untuk berintegrasi dengan berbagai alat CI/CD seperti Jenkins, Travis CI, dan lainnya untuk “pengujian berkelanjutan di DevOps”.

Anda bahkan dapat memanfaatkan pengujian otomatisasi pengujian paralel dengan Selenium, bersama dengan API Selenium terbuka kami untuk membantu Anda mengekstrak laporan pengujian eksekusi skrip Selenium Anda melalui LambdaTest, dengan cara yang mudah. Mari kita coba dan jalankan kasus pengujian di atas menggunakan WebDriver jarak jauh untuk LambdaTest Selenium Grid.

Tutorial Nightwatch.js 101: Jalankan Skrip Nightwatch.js Menggunakan Selenium Grid Jarak Jauh

Mengeksekusi skrip pengujian pada LambdaTest Selenium Grid dengan Nightwatch.js cukup sederhana dan mudah dan akan menjadi fokus bagian selanjutnya dalam tutorial Nightwatch.js ini untuk pengujian otomatisasi dengan Selenium dan JavaScript. kita dapat menggunakan skrip pengujian lokal dan file konfigurasi yang ada dengan mengubah beberapa baris kode. Untuk memulai pertama-tama kita perlu memanggil Webdriver jarak jauh Selenium alih-alih driver web browser lokal kita sebelumnya. Selain itu, karena sekarang kami menggunakan driver web jarak jauh dengan LambdaTest, kami memiliki fleksibilitas untuk menentukan lingkungan browser tempat kami ingin menjalankan pengujian. Kita dapat melakukannya dengan meneruskan detail browser dan lingkungan ke grid LambdaTest Selenium melalui kelas kemampuan yang diinginkan. LambdaTest memberi kita Generator Kemampuan untuk memilih dan meneruskan detail browser dan spesifikasi lingkungan dengan berbagai kombinasi untuk dipilih.

Jadi, dalam kasus kita, kelas yang diinginkan dalam file konfigurasi nightwatch.json untuk tutorial Nightwatch.js akan terlihat serupa seperti di bawah ini:

"desiredCapabilities": {
    	"build" : "Nightwatch-Selenium-Test",
    	"name" : "Nightwatch-Selenium-Test",
    	"platform" : "Windows 10",
    	"browserName" : "Firefox",
    	"version" : "71.0",
    	"selenium_version" : "3.4.0",
    	"geoLocation" : "IN"
	}

Selanjutnya, kita juga perlu membuat token kunci akses yang seperti kunci rahasia untuk terhubung ke platform kita dan menjalankan tutorial Nightwatch.js di LambdaTest. Kunci akses ini unik dan dapat disalin atau dibuat ulang dari bagian profil akun kami.

Alternatifnya, kami juga bisa mendapatkan kunci akses, nama pengguna, dan detail hub dari Dasbor otomasi juga.

Di bawah ini adalah file nightwatch.conf.js di mana kita perlu mendeklarasikan konfigurasi pengguna untuk kunci akses, nama pengguna, host, dan port untuk pengujian.

module.exports = (function(settings) {
  console.log(settings["test_settings"]["default"]["username"])
  if (process.env.LT_USERNAME) {
    settings["test_settings"]["default"]["username"] = process.env.LT_USERNAME;
  }
  if (process.env.LT_ACCESS_KEY) {
    settings["test_settings"]["default"]["access_key"] = process.env.LT_ACCESS_KEY;
  }
  if (process.env.SELENIUM_HOST) {
	settings.selenium.host = process.env.SELENIUM_HOST;
  }
  if (process.env.SELENIUM_PORT) {
	settings.selenium.host = process.env.SELENIUM_PORT;
  }
  return settings;
})(require('./nightwatch.json'));

Sekarang, karena kami menggunakan LambdaTest, kami ingin memanfaatkannya dan menjalankan pengujian kami pada browser dan sistem operasi yang berbeda. Di sini, kami akan menggunakan tiga browser berbeda yaitu, Microsoft Edge, Mozilla Firefox, dan Apple Safari serta sistem operasi seperti Windows 10 dan macOS 10.13.

Jadi setelah melakukan perubahan yang diperlukan, file konfigurasi akhir kita akan terlihat seperti di bawah ini.

{
  "src_folders" : ["./tests"],
  "output_folder" : "./reports",
  "globals_path" : "nightwatch.globals.js",
  "test_workers": {
	"enabled": true,
	"workers": "auto"
  },
  "selenium" : {
	"start_process" : false,
	"server_path" : "",
	"log_path" : "",
	"host" : "hub.lambdatest.com",
	"port" : 80,
    "cli_args" : {
  	"webdriver.chrome.driver" : "",
  	"webdriver.ie.driver" : "",
  	"webdriver.firefox.profile" : ""
	}
  },
  "test_settings" : {
	"default" : {
  	"launch_url" : "http://google.com",
  	"selenium_port"  : 80,
  	"selenium_host"  : "https://lambdatest.com",
  	"silent": false,
  	"screenshots" : {
    	"enabled" : true,
    	"path" : ""
  	},
  	"username" : "irohitgoyal",
  	"access_key" : "123456789",
 
  	"skip_testcases_on_fail": false,
  	
  	"desiredCapabilities": {
       "build":"Nightwatch-Selenium--Test",
   	"platform" : "Windows 10",
   	"browserName" : "Chrome",
    	"version" : "78.0",
    	"selenium_version" : "3.13.0",
   	"visual":true,
    	"video":true,
    	"console":true,
    	"geoLocation" : "IN",
    	"chrome.driver" : "78.0",
    	"network":true
  	}
	},
	"chrome": {
  	"desiredCapabilities": {
    	"platform": "Windows 10",
        "browserName": "chrome",
    	"version": "78.0"
  	}
	},
	"safari" : {
  	"desiredCapabilities": {
    	"platform": "macos 10.13",
    	"browserName": "safari",
    	"version": "11.0"
  	}
	},
	"firefox" : {
  	"desiredCapabilities": {
    	"platform": "win10",
    	"browserName": "firefox",
    	"version": "60"
  	}
	},
	"edge" : {
  	"desiredCapabilities": {
    	"platform": "Windows 10",
    	"browserName": "MicrosoftEdge",
    	"version": "17.0"
  	}
	},
	"french" : {
  	"launch_url" : "http://google.fr",
  	"desiredCapabilities": {
    	"browserName": "firefox",
    	"javascriptEnabled": true,
    	"acceptSslCerts": true
  	}
	}
  }
}

Sekarang, penting untuk menambahkan bagian di bawah ini untuk tutorial Nightwatch.js di kelas skrip sebagai argumen dalam file package.json untuk menentukan lingkungan kemampuan yang diinginkan tempat pengujian dijalankan.

scripts": {
    "test": "./node_modules/.bin/nightwatch -e firefox,edge,safari test"
  },

Hal terakhir yang perlu kita lakukan adalah menjalankan pengujian dari direktori dasar proyek menggunakan perintah:
npm test

Perintah ini dengan memvalidasi pengujian dan dependensi dan kemudian menjalankan rangkaian pengujian untuk pengujian Nightwatch.js, yang akan menjalankan pengujian kami dan membuka browser Edge, Firefox dan Safari pada lingkungan yang ditentukan dan kemudian Google string pencarian yang diberikan. Di bawah ini kami memiliki tangkapan layar yang menunjukkan kode Nightwatch.js kami berjalan di berbagai browser menggunakan LambdaTest Selenium Grid.

Seperti yang Anda lihat, skrip dijalankan secara paralel di browser Mozilla Firefox, Safari, Google Chrome, dan Edge. Hasilnya akan ditampilkan pada antarmuka baris perintah yang kami gunakan untuk menjalankan pengujian dan juga akan ditangkap secara detail di dasbor otomatisasi LambdaTest interaktif. Dasbor LambdaTest akan membantu kami menggabungkan semua detail pengujian dan kami dapat melihat semua log teks, tangkapan layar, dan rekaman video untuk semua pengujian Selenium yang dilakukan.

Sekian Untuk Tutorial Nightwatch.js Ini

Dalam tutorial Nightwatch.js untuk pemula ini, kami telah membahas berbagai aspek pengujian Nightwatch.js dengan Selenium Javascript. Kami sekarang memahami dengan jelas tentang pendekatan pengujian otomatisasi ujung ke ujung dengan Selenium JavaScript menggunakan Nightwatch.js. Kami mengetahui semua prasyarat yang diperlukan untuk menyiapkan Nightwatch.js. Ini mengotomatiskan seluruh rangkaian pengujian dengan cepat dengan konfigurasi minimal dan dapat dibaca serta mudah diperbarui. Fitur terbaik yang disediakan oleh kerangka Nightwatch.js adalah pengujian kasus paralel yang terbukti hemat waktu. Hasil pengujian dapat langsung dibaca dari terminal dan juga disimpan pada folder keluaran yang ditentukan.

Pada tahap awal, penerapan pendekatan baru untuk pengujian browser otomatis menjadi batu sandungan bagi banyak orang, namun menggunakan platform cloud seperti LambdaTest membuat prosesnya lebih mudah dan memungkinkan kami memanfaatkan manfaat penuh dari pengujian otomatisasi Selenium. Bagaimana tutorial Nightwatch.js ini untuk Anda? Beri tahu saya di bagian komentar di bawah. Selamat menguji!