首頁  >  文章  >  web前端  >  Nightmare.js介紹及安裝

Nightmare.js介紹及安裝

王林
王林轉載
2023-09-05 09:13:021107瀏覽

Nightmare.js介紹及安裝

Nightmare是Segment提供的高階自動化函式庫。它是煙霧測試自動化的一個不錯的選擇,因為它可以執行人類可以執行的所有文字輸入、點擊和目視檢查。它使用 Electron 作為無頭瀏覽器運行。在本文中,我們將詳細討論 Nightmare.js 以及 Nightmare.js 的安裝。

Nightmare.js 簡介

Segment 提供 Nightmare,一個複雜的瀏覽器自動化庫。這個惡夢的目標是模仿使用者活動(例如轉到、鍵入、點擊等),而不是使用大量嵌套的回調,透過 API 公開一些基本方法,使每個腳本區塊感覺同步。儘管它的目的是在沒有 API 的情況下實現跨網站的自動化操作,但如今它最常用於爬行、UI 測試等。

注意- 運行 Nightmare 需要 NodeJS 4.x 或更高版本。

安裝 Nightmare.js

為了測試網站介面,我們嘗試了 Nightmare.js,一個 JavaScript 瀏覽器自動化函式庫。

在 PC 上使用 Nightmare 比在 Cloud 9 上使用更簡單。以下是設定和啟動說明。

第 1 步下載 Node.js

JavaScript 通常在瀏覽器中執行。 Node.js 是 JavaScript 的變體,可以在伺服器、終端機或其他硬體上使用。它可以簡單地創建和執行 Nightmare 腳本。

Node.js 下載連結

https://nodejs.org/en/download/ 

第2步下載NPM

您可以使用節點套件管理器 (npm) 設定 Nightmare 庫。 Nightmare 的依賴項將全部安裝,當您使用 npm 安裝它時,它也會隨之安裝。

NPM安裝連結

https://nodejs.org/en/

第 3 步安裝 Nightmare.js 函式庫

使用指令

npm install nightmare 

我們已經了解如何在 Node js Playground 中安裝 Nightmare.js 庫,現在讓我們看看噩夢的一些基礎知識,然後我們將轉向噩夢的對象。

惡夢的基本語法是 -

const Nightmare = require('nightmare')
const nightmare = Nightmare({object : value_of_object})  

在上面的程式碼中,我們使用Node js 的require() 方法在程式碼中導入了“噩夢”,然後將其儲存到一個變數中,稍後我們使用該變數在括號中定義一些物件和值儲存變數並再次將其儲存到一個新變數中。

我們已經了解了 nightmare.js 的一些基本程式碼結構,現在讓我們轉向 Nightmare.js 的物件 -

Nightmare.js 的物件

由於Nightmare.js 創建了一個新的對象,可以在網絡中導航並提供有用的東西,為了在這裡添加更多規範,我們有噩夢的對象,這將幫助我們獲得更好的網絡衝浪,讓我們看看其中的一些-

等待超時

該物件預設時間為 30 秒,使用者也可以根據需要定義一些時間,如果函數「.wati()」未能在設定的時間範圍內傳回真值,則拋出異常。

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   waitTimeout: 2000 // in milliseconds
}) 

在上面的程式碼中,首先,我們將噩夢導入到我們的系統中,然後為它創建了一個物件。在變數中,我們提供了物件“waitTimeout”,其值為 2000 毫秒。

轉到超時

該物件預設時間為 30 秒,使用者也可以根據需要定義一些時間,如果函數「.goto()」在提供的或設定的時間範圍內載入失敗,則拋出異常.

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   gotoTimeout: 2000 // in milliseconds
})

在上面的程式碼中,首先,我們將噩夢導入到我們的系統中,然後為它創建了一個物件。在變數中,我們提供了物件“gotoTimeout”,其值為 2000 毫秒。

載入超時

該物件具有無限秒的預設時間,使用者還可以根據需要定義一些時間,並在由於單擊等操作導致頁面轉換沒有發生時強制 Nightmare 離開或移動沒有在給定的時間內完成。

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   loadTimeout: 2000 // in milliseconds
})

在上面的程式碼中,首先,我們將惡夢匯入到我們的系統中,然後為它建立了一個物件。在變數中,我們提供了物件“loadTimeout”,其值為 2000 毫秒。

執行逾時

該物件預設有30秒的時間,使用者也可以根據需要定義一些時間,並顯示等待方法「.evaluate」的語句完成的最長時間。

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   executionTimeout: 2000 // in milliseconds
})

在上面的程式碼中,首先,我們將惡夢匯入到我們的系統中,然後為它建立了一個物件。在變數中,我們提供了物件“executionTimeout”,其值為 2000 毫秒。

路徑

電子定義了許多預設的系統路徑。這些路徑可以透過使用噩夢的路徑物件來覆蓋,這可以透過以下程式碼來完成 -

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   paths: {
      userData: ‘/user/data’
   }
})

在上面的程式碼中,首先,我們將惡夢匯入到我們的系統中,然後為它建立了一個物件。在變數中,我們提供了物件路徑,在其中定義了電子路徑。

電子路徑

這些對於測試 Electron 的各個版本非常有幫助,而這些是預先建立到 Electron 二進位檔案的路徑。這些路徑可以透過使用噩夢的路徑物件來覆蓋。讓我們來看看電子路徑是如何定義的程式碼 -

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   electronPath: require('electron')
})

在上面的代码中,首先,我们将噩梦导入到我们的系统中,然后为它创建了一个对象。在变量中,我们提供了对象 electroPath ,其键值将使用 required 关键字导入。

开关

Electron 还支持 google 命令行支持的开关。此类别中有多种开关。让我们转到代码以获取有关如何在 nights.js 对象中使用开关对象的信息 -

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   switches: {
      'key1' : 'value1',
      'key2' : 'value2',
   }
})

在上面的代码中,首先,我们将噩梦导入到我们的系统中,然后为它创建了一个对象。在变量中,我们提供了对象开关,并在其中定义了两个键值对。

结论

在这篇文章中,我们详细学习了Nightmare.js以及Nightmare.js的安装。 Nightmare是一个由segment提供的高级自动化库。它是烟雾测试自动化的一个不错的选择,因为它可以执行人类可以执行的所有文本输入、单击和目视检查。它使用 Electron 作为无头浏览器运行。

以上是Nightmare.js介紹及安裝的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除