成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用 Headless Chrome 進(jìn)行自動(dòng)化測(cè)試

caozhijian / 669人閱讀

摘要:安裝安裝依賴庫(kù)安裝已經(jīng)相關(guān)的插件,可以使用或者使用在這篇文章中,我使用和,如果你不喜歡這兩個(gè)庫(kù),你可以選擇你喜歡的任何一個(gè)庫(kù),只要它能在瀏覽器中運(yùn)行就可以。

本文翻譯自:Automated testing with Headless Chrome
作者:Eric Bidelman (Google 工程師)
譯者:justjavac

如果您想使用 Headless Chrome 進(jìn)行自動(dòng)測(cè)試,請(qǐng)不要再觀望了!本文將教你如何使用 Karma 作為 test runner ,并配合 Mocha + Chai 進(jìn)行測(cè)試。

這些是什么呢?

Karma?Mocha?Chai?Headless Chrome?oh my!

Karma 是一種測(cè)試套件,可以與任何流行的測(cè)試框架 (例如 Jasmine, Mocha, QUnit) 一起使用。

Chai 是一個(gè)斷言庫(kù),可以與 Node.js 或者瀏覽器一起使用。我們需要后者。

Headless Chrome 是一種在 headless 環(huán)境運(yùn)行的 Chrome 瀏覽器,這種運(yùn)行方式?jīng)]有 UI。使用 Headless Chrome(而不是直接在 Node 中測(cè)試)的好處之一是您的 JavaScript 測(cè)試將在與您網(wǎng)站用戶相同的環(huán)境中執(zhí)行。Headless Chrome 為您提供真正的瀏覽器環(huán)境,而無(wú)需運(yùn)行完整版本的 Chrome,這樣也避免了高昂的內(nèi)存開(kāi)銷。

安裝 安裝依賴庫(kù)

安裝 Karma 已經(jīng)相關(guān)的插件,可以使用 yarn:

yarn add --dev karma karma-chrome-launcher karma-mocha karma-chai
yarn add --dev mocha chai

或者使用 npm

npm i --save-dev karma karma-chrome-launcher karma-mocha karma-chai
npm i --save-dev mocha chai

在這篇文章中,我使用 Mocha 和 Chai,如果你不喜歡這兩個(gè)庫(kù),你可以選擇你喜歡的任何一個(gè)庫(kù),只要它能在瀏覽器中運(yùn)行就可以。

配置 Karma

創(chuàng)建 karma.config.js 文件,ChromeHeadless 啟動(dòng)器會(huì)使用這個(gè)文件。

karma.conf.js

module.exports = function(config) {
  config.set({
    frameworks: ["mocha", "chai"],
    files: ["test/**/*.js"],
    reporters: ["progress"],
    port: 9876,  // karma web server port
    colors: true,
    logLevel: config.LOG_INFO,
    browsers: ["ChromeHeadless"],
    autoWatch: false,
    // singleRun: false, // Karma captures browsers, runs the tests and exits
    concurrency: Infinity
  })
}

注意: 運(yùn)行 ./node_modules/karma/bin/ init karma.conf.js 以生成 Karma 配置文件。

寫(xiě)一個(gè)測(cè)試

新建文件 /test/test.js.

/test/test.js

describe("Array", () => {
  describe("#indexOf()", () => {
    it("should return -1 when the value is not present", () => {
      assert.equal(-1, [1,2,3].indexOf(4));
    });
  });
});
運(yùn)行你的測(cè)試

package.json 中添加一個(gè) test 腳本,通過(guò)前面我們的配置文件運(yùn)行 Karma。

package.json

"scripts": {
  "test": "karma start --single-run --browsers ChromeHeadless karma.conf.js"
}

當(dāng)您運(yùn)行測(cè)試(yarn test)時(shí),Headless Chrome 會(huì)啟動(dòng)并將結(jié)果輸出到終端:

創(chuàng)建自定義的 Headless Chrome 啟動(dòng)器

ChromeHeadless 啟動(dòng)器非常重要,因?yàn)樗鼮槲覀兲峁┝碎_(kāi)箱即用的 Headless Chrome 測(cè)試。它包含適合您的
Chrome flag,并啟動(dòng) Chrome 的遠(yuǎn)程調(diào)試功能,監(jiān)聽(tīng) 9222 端口。

有時(shí)您可能希望將自定義的 flag 傳遞給 Chrome 或更改啟動(dòng)器使用的遠(yuǎn)程調(diào)試端口。我們創(chuàng)建一個(gè)customLaunchers 來(lái)擴(kuò)展 ChromeHeadless 啟動(dòng)器的默認(rèn)字段:

karma.conf.js

module.exports = function(config) {
  ...

  config.set({
    browsers: ["Chrome", "ChromeHeadless", "MyHeadlessChrome"],

    customLaunchers: {
      MyHeadlessChrome: {
        base: "ChromeHeadless",
        flags: ["--disable-translate", "--disable-extensions", "--remote-debugging-port=9223"]
      }
    },
  }
};
在 Travis CI 上運(yùn)行測(cè)試

配置 Karma 并在 Headless Chrome 中運(yùn)行測(cè)試雖然不十分簡(jiǎn)單。不過(guò)在 Travis 中做持續(xù)集成只需要幾行代碼!

To run your tests in Travis, use dist: trusty and install the Chrome stable addon:

要在 Travis 中運(yùn)行測(cè)試,使用 dist: trusty 并安裝 Chrome stable 插件:

.travis.yml

language: node_js
node_js:
  - "7"
dist: trusty # needs Ubuntu Trusty
sudo: false  # no need for virtualization.
addons:
  chrome: stable # have Travis install chrome stable.
cache:
  yarn: true
  directories:
    - node_modules
install:
  - yarn
script:
  - yarn test

: 這個(gè)倉(cāng)庫(kù)(example repo)有可供參考的代碼。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/83972.html

相關(guān)文章

  • 使用 Headless Chrome 進(jìn)行動(dòng)化測(cè)試

    摘要:安裝安裝依賴庫(kù)安裝已經(jīng)相關(guān)的插件,可以使用或者使用在這篇文章中,我使用和,如果你不喜歡這兩個(gè)庫(kù),你可以選擇你喜歡的任何一個(gè)庫(kù),只要它能在瀏覽器中運(yùn)行就可以。 本文翻譯自:Automated testing with Headless Chrome作者:Eric Bidelman (Google 工程師)譯者:justjavac 如果您想使用 Headless Chrome 進(jìn)行自動(dòng)測(cè)試...

    Guakin_Huang 評(píng)論0 收藏0
  • 使用 headless chrome進(jìn)行測(cè)試

    注:文章聚合了現(xiàn)在 headless chrome 介紹和使用方式 包含了三個(gè)部分 chrome 在 mac 上的安裝和簡(jiǎn)單使用(來(lái)自官方) 利用 selenium 的 webdrive 驅(qū)動(dòng) headless chrome(自己添加) 利用Xvfb方式實(shí)現(xiàn)偽 headless chrome 概念 Headless模式解決了什么問(wèn)題: 自動(dòng)化工具例如 selenium 利用有頭瀏覽器進(jìn)行測(cè)試...

    ephererid 評(píng)論0 收藏0
  • 使用瀏覽器的HEADLESS模式進(jìn)行動(dòng)化測(cè)試

    摘要:了解模式指的是不需要用戶界面的瀏覽器,這種瀏覽器在自動(dòng)化測(cè)試和爬蟲(chóng)領(lǐng)域有著廣泛的應(yīng)用。實(shí)踐使用瀏覽器的模式進(jìn)行自動(dòng)化測(cè)試,你需要先滿足以下前提運(yùn)行環(huán)境或者或者最新版已加入萬(wàn)事俱備,廢話不多說(shuō)我們直接上演示代碼。 了解HEADLESS模式 HEADLESS BROWSER 指的是不需要用戶界面的瀏覽器,這種瀏覽器在自動(dòng)化測(cè)試和爬蟲(chóng)領(lǐng)域有著廣泛的應(yīng)用。 例如你想在網(wǎng)頁(yè)上運(yùn)行一些測(cè)試,從網(wǎng)頁(yè)...

    lanffy 評(píng)論0 收藏0
  • 前端每周清單第 29 期:Web 現(xiàn)狀分析與優(yōu)化策略、Vue 單元測(cè)試、Headless Chrom

    摘要:前端每周清單第期現(xiàn)狀分析與優(yōu)化策略單元測(cè)試爬蟲(chóng)作者王下邀月熊編輯徐川前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開(kāi)發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開(kāi)發(fā)教程工程實(shí)踐深度閱讀開(kāi)源項(xiàng)目巔峰人生等欄目。 showImg(https://segmentfault.com/img/remote/1460000011008022); 前端每周清單第 29 期:Web 現(xiàn)狀分析與優(yōu)化策略...

    HackerShell 評(píng)論0 收藏0
  • 三分鐘學(xué)會(huì)如何在函數(shù)計(jì)算中使用 puppeteer

    摘要:函數(shù)計(jì)算就是這里的膠水??偨Y(jié)函數(shù)計(jì)算有如下優(yōu)勢(shì)無(wú)需采購(gòu)和管理服務(wù)器等基礎(chǔ)設(shè)施專注業(yè)務(wù)邏輯的開(kāi)發(fā)提供日志查詢性能監(jiān)控報(bào)警等功能快速排查故障以事件驅(qū)動(dòng)的方式觸發(fā)應(yīng)用響應(yīng)用戶請(qǐng)求毫秒級(jí)別彈性伸縮,快速實(shí)現(xiàn)底層擴(kuò)容以應(yīng)對(duì)峰值壓力按需付費(fèi)。 摘要: 使用 puppeteer 結(jié)合函數(shù)計(jì)算,可以快速的構(gòu)建彈性的服務(wù)完成各種功能,包括:生成網(wǎng)頁(yè)截圖或者 PDF、高級(jí)爬蟲(chóng),可以爬取大量異步渲染內(nèi)容的網(wǎng)...

    zhkai 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<