无头浏览器测试的优点和缺点

什么是无头测试?

首先我们来看看什么是“浏览器”? 看起来像这样子



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阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • headless chrome.png Headless Browser(无头的浏览器)是什么鬼? 简而言之,He...
    洪荒之人阅读 38,142评论 1 3
  • 技术雷达快讯:自2017年中以来,Chrome用户可以选择以headless模式运行浏览器。此功能非常适合运行前端...
    ThoughtWorks阅读 7,850评论 8 28
  • 前言 离上一篇更新的博文应该过了挺久的了(python爬虫(上)–请求——关于旅游网站的酒店评论爬取(传参方法))...
    Mrhyden阅读 501评论 0 0
  • 原文地址:Getting Started with Headless Chrome By Eric Bidelm...
    朝曦阅读 12,319评论 0 7
  • 满目菊花金色醇,天高云淡果沉沉。 残红满地叶飞舞,风影一帘绘秋轮。
    青梅梦语阅读 1,214评论 16 51