無頭瀏覽器測試的優點和缺點

什么是無頭測試?

首先我們來看看什么是“瀏覽器”? 看起來像這樣子



Headless測試是在不顯示瀏覽器UI的情況下運行基于UI的瀏覽器測試。它在瀏覽器上運行測試或運行腳本,但瀏覽器沒有進行UI部分的啟動。

為什么要使用無頭瀏覽器?

采用這種方法有很多優點和缺點。使用無頭瀏覽器可能對瀏覽網頁沒有太大幫助,但對于自動化任務和測試來說,它是非常棒的。



為什么要關心無頭瀏覽器的測試?

向錢看是老生常談話題,但它卻是一個我們測試發展中關鍵指標,為什么是真正的趨勢,什么是我應該關注的。例如,Sauce Labs剛剛推出了一項名為Sauce Headless的新服務,這是一個基于云的Headless測試解決方案。

我知道sauce lab的人都很聰明。他們不會開發任何多余的東西,除非他們從用戶那里得到反饋,說這是需要的功能。

我相信他們不會是唯一一個專注于無頭測試的人。

隨著我們在軟件開發生命周期中越來越多的左移,我們需要越來越快地向開發人員提供反饋。一種方法是利用無頭瀏覽器進行快速檢查。

軟件生產中的自動化

如果你了解我,你也會知道我是一個非常推崇自動化的人。

對我來說,自動化不僅僅只是自動化測試。

它是任何您可以自動化的東西,來節省人們在軟件交付生命周期的任何部分的時間或精力---無論是開發、質量、測試、DevOps還是安裝軟件;我將其中任何一個過程都稱為自動化。無頭瀏覽器實際上也可以用于很多向這樣的工作。

無頭瀏覽器比真正的瀏覽器更快

無頭瀏覽器的一個明顯的“優勢”是它們通常比真正的瀏覽器更快;

原因在于您沒有啟動瀏覽器GUI,所以您可以繞過真正的瀏覽器加載CSS、JavaScript、打開和呈現HTML所花費的所有時間。

但我必須承認,這并不完全像白天黑夜簡潔明了。但使用無頭瀏覽器時,您通常會看到性能提高了2倍至15倍。

因此,如果性能對您至關重要,那么無頭瀏覽器可能是一個不錯的選擇。

利用無頭瀏覽器爬網站數據

無頭瀏覽器的另一個優點是,它們可以用來抓取網站。但是,要做到這一點,您不必手動啟動一個網站。你可以不加思索地利用它,只抓取部分HTML。你不需要渲染一個完整的瀏覽器。

例如,你的工作需要研究統計一些體育數據,或比較不同網站之間的價格。

因為它只是您正在尋找的數據,所以沒有必要啟動一個完整的瀏覽器實例;這只是額外的開銷-----有時候開銷越少,返回結果的速度就越快。

它不一定是一個測試,這沒關系。同樣,您希望利用正確的工具來做正確的事情。

我還認為許多測試人員沒有使用無頭瀏覽器抓取-----這很遺憾。

因此,如果您想做一些網站抓取來幫助您進行測試,您將不需要啟動一個成熟的瀏覽器;您可以使用無頭瀏覽器來為您獲得該功能。

節省開發人員的時間

我知道很多開發人員使用無頭瀏覽器對他們的網站和移動應用程序的代碼更改進行單元測試。在不需要手動刷新或啟動瀏覽器的情況下,通過命令行就可以完成所有這些操作,從而節省了大量工作。例如,《PhantomJS烹飪書》的作者Rob Friesel在一次testtalk采訪中解釋了他的開發人員是如何使用PhantomJS無頭瀏覽器的:

“雖然PhantomJs本身并不是一個測試框架,但它確實是煤礦里的一只很好的金絲雀,可以給你一些信心;如果你的測試通過了,你就可以對你的代碼很有信心。”

使用無頭瀏覽器腳本監視性能

另一個常見的用法是使用無頭瀏覽器腳本監視網絡應用程序的性能。

有些人甚至使用它來自動渲染和屏幕捕捉他們的網站圖像,利用自動化方式來執行布局檢查。

我想這就是為什么google還開發了一個名為Puppeteer的新的無頭Chrome API,用于處理許多開發人員的用例。

無頭瀏覽器測試的想法

除了我們已經討論過的,下面是我遇到的一些無頭瀏覽器的其他用途:

- 在沒有界面的機器上運行測試

- 設置數據

- 測試SSL

- 在一臺機器上模擬多個瀏覽器

- 在沒有GUI的Linux OS這樣的無頭系統上運行測試

- 檢索和呈現pdf文件

- 布局測試-由于無頭瀏覽器渲染和解釋CSS和HTML像一個真正的瀏覽器,你可以使用它來測試樣式元素。

?您可能不希望使用無頭瀏覽器的例子

當然,使用真正的瀏覽器而不是無頭瀏覽器的原因有很多。例如:

您需要模擬真實的用戶

您需要直觀地看到測試運行

如果您需要進行大量調試,那么無頭調試可能會很困難。

?Popular Headless Browsers

- Google Puppeteer---它提供了一個高級API,可以通過DevTools協議控制headless Chrome或Chromium。它也可以調整使用全(非無頭)鉻或鉻。

- PhantomJS---是一個無頭的WebKit腳本,帶有JavaScript API。它對各種web標準(DOM處理、CSS選擇器、JSON、畫布和SVG)提供了快速和本機支持。*這已不再維持。正因為如此,你可能需要避免使用它。

- HtmlUnit---是一個“用于Java程序的無gui瀏覽器”。它為HTML文檔建模,并提供一個API,允許您調用頁面、填寫表單、單擊鏈接等等,就像您在“普通”瀏覽器中所做的那樣。

- Splinter--- Splinter是一個以python為中心的無頭瀏覽器選項。它是開源的,用于使用Python測試web應用程序。例如,您可以使用它來自動化瀏覽器操作,例如訪問url并與它們的條目進行交互。

- jBrowserDriver--- 一個可編程的嵌入式web瀏覽器驅動程序,兼容Selenium WebDriver規范-無頭,基于webkit,純Java

什么時候使用無頭瀏覽器進行測試?

那么,什么時候應該使用無頭瀏覽進行測試呢?正如您所看到的,這取決于您的測試目標。

左派人士經常會說,“永遠不要使用無頭瀏覽器。”一個真正的用戶永遠不會使用它,那么為什么要使用它呢?與此同時,右翼人士會說,“你應該一直使用無頭瀏覽器,因為它們總是更快,更快總是更好。”

然而,我們都知道,這并不總是一個對另一個,而是根據情況為正確的任務選擇正確的工具。

記住——為工作使用正確的工具,并始終問自己它將如何影響最終用戶,以及當在這兩種方法之間做出決定時,測試的目標是什么。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,179評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,628評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,444評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,948評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,185評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,717評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,794評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,414評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,750評論 2 370

推薦閱讀更多精彩內容

  • headless chrome.png Headless Browser(無頭的瀏覽器)是什么鬼? 簡而言之,He...
    洪荒之人閱讀 38,191評論 1 3
  • 技術雷達快訊:自2017年中以來,Chrome用戶可以選擇以headless模式運行瀏覽器。此功能非常適合運行前端...
    ThoughtWorks閱讀 7,878評論 8 28
  • 前言 離上一篇更新的博文應該過了挺久的了(python爬蟲(上)–請求——關于旅游網站的酒店評論爬取(傳參方法))...
    Mrhyden閱讀 520評論 0 0
  • 原文地址:Getting Started with Headless Chrome By Eric Bidelm...
    朝曦閱讀 12,450評論 0 7
  • 滿目菊花金色醇,天高云淡果沉沉。 殘紅滿地葉飛舞,風影一簾繪秋輪。
    青梅夢語閱讀 1,221評論 16 51