搜尋
首頁web前端js教程與Grunt.js自動化性能測試

與Grunt.js自動化性能測試

鑰匙要點

  • > grunt.js任務跑步者可用於在網絡開發過程中自動化性能測試,確保在不將繁重的手動測試添加到QA流程的情況下滿足性能目標或“預算”。
  • >
  • > Grunt Perfbudget插件利用WebPagetest.org API來測量網站,以針對頁面重量,圖像大小,腳本重量和渲染時間等指標進行測量。開發人員可以為這些指標設置明確的預算,然後插件將對網站進行測量。
  • grunt.js對於性能測試至關重要,因為它可以自動執行確保代碼有效運行且無錯誤的任務,節省時間並減少人為錯誤的風險。這會導致更可靠和更高質量的軟件。
  • >
  • 在這個2 MB網頁的年齡中,績效預算已成為我們網絡開發過程的必要部分。與您項目的利益相關者合作,已成為每個人的責任 - 設計師和開發人員都可以為您的網站績效設定目標。

>您可能會為許多不同的指標設置預算:例如,目標頁面重量為500千元,項目中的單個頁面無法超過。將需要在頁面上添加到超過500kb的頁面上的元素,以確定其包含在設計中的其他元素。正如蒂姆·卡德克(Tim Kadlec)所描述的那樣,您的決定必須採取3條途徑之一:>

優化頁面上的現有功能或資產

>從頁面上刪除現有功能或資產
    不要添加新功能或資產
  1. >您還可以根據WebPagetest.org。
  2. 設定預算後,這是一項整個額外任務,只是為了在整個開發階段衡量您的網站的性能。您如何在不添加質量質量檢查過程中繁重的手動測試的情況下實現這一目標?輸入grunt.js!
  3. grunt.js webpagetest.org =自動化性能測試Bliss

>雖然有許多GRUNT插件可以幫助您衡量網站性能,但我專注於我發現的最準確的插件:Grunt Perfbudget。這項出色的GRUNT任務使用WebPagetest.org API來測量您的網站,以相對大量有用的指標,例如頁面重量,圖像大小,腳本重量和渲染時間。您還可以為這些指標設置明確的預算,然後插件將對您的網站進行測量!

>

獲取API鍵

>在設置Grunt任務之前,您需要向WebPagetest.org發送電子郵件,以獲取API密鑰以包含在Gruntfile中。 (好消息:工作中有一個替代方法!)

>

安裝grunt perfbudget插件

如果這是您第一次使用咕unt聲,請查看我的教程,以與grunt grunt一起運行。

>如果您已經在計算機上安裝了GRUNT,則只需要在我們設置性能測試之前安裝Perfbudget插件即可。通過命令行導航到您的項目文件夾:

npm install grunt-perfbudget --save-dev

,或者如果您想使用一個示例項目,請分叉我的GitHub存儲庫,Grunt-perfbudget-demo並運行NPM安裝以進行。

配置perfbudget任務

安裝插件後,您需要設置插件選項並在gruntfile.js中創建一個任務。我創建了一個Demo Gruntfile,它作為默認grunt命令的一部分運行PerfBudget任務,只需最少的選項即可開始 - 用於測試的URL和您的API鍵:>

module<span>.exports = function(grunt){
</span>  <span>require("matchdep").filterDev("grunt-*").forEach(grunt.loadNpmTasks);
</span>
  grunt<span>.initConfig({
</span>    <span>pkg: grunt.file.readJSON('package.json'),
</span>
    <span>perfbudget: {
</span>      <span>default: {
</span>        <span>options: {
</span>          <span>url: 'http://cfarman.com',
</span>          <span>key: 'APIKEY'
</span>        <span>}
</span>      <span>}
</span>    <span>}
</span>  <span>});
</span>
  grunt<span>.registerTask('default', ['perfbudget']);
</span><span>};</span>
>使用API​​鍵集運行默認的grunt任務時,我在控制台中獲得以下輸出:

與Grunt.js自動化性能測試

為什麼我的任務失敗了?因為我的網站沒有通過默認預算:渲染少於1000ms。它在稱為“ SpeedIndex”的度量上也失敗了。我如何找到有關網頁性能的更多信息?幸運的是,WebPagetest有一個我可以參考的非常詳細的URL,直接從我的Perfbudget Test中的控制台鏈接!

>!

>為了使我的網站通過並不會導致怪異的任務失敗(因此停止在自動化構建環境中構建任何網站),我有兩個選擇:我可以編輯預算直到通過(用於測試,不太適合性能!),或者我可以遵循我的績效預算規則:優化,刪除東西或停止添加內容,直到通過默認指標為止。目前,讓我們玩弄我們的艱苦任務,看看傳球測試的外觀。

>

> perfbudget選項和WebPagetest Metrics

>像大多數笨拙的任務一樣,Perfbudget任務使我可以自定義一系列選項。而且,由於WebPagetest衡量了驚人的詳細指標,我可以測試我的性能預算的各種指標,以查看我是否通過還是失敗。

>

首先,我要更改我的選項,以便我的網站停止失敗,而咕unt的任務報告我在預算之下。這需要我的perfbudget任務中的額外屬性,稱為“預算”:

目前我的網站非常慢,因此我的值很高以通過測試。
<span>perfbudget: {
</span>  <span>default: {
</span>    <span>options: {
</span>      <span>url: 'http://cfarman.com',
</span>      <span>key: 'APIKEY',
</span>      <span>budget: {
</span>        <span>render: '3000',
</span>        <span>SpeedIndex: '5500'
</span>      <span>}
</span>    <span>}
</span>  <span>}
</span><span>}</span>
結果?我通過!

這意味著grunt的任務不會失敗,如果我在Gruntfile中有其他任務,它們將正常進行 - 成功! 與Grunt.js自動化性能測試> 除默認指標外,我們還能測量什麼?各種各樣的東西,包括:

  • loadTime:毫秒
  • 的總加載時間
  • >請求:請求的文件總數
  • >
  • bytesin:字節中的總頁面

最後一個指標是我最常見的報告,並且想跟踪預算目的,所以讓我們看一下如何衡量它:

npm install grunt-perfbudget --save-dev

>我選擇了總體預算為200萬,因為此時的平均頁面徘徊在2兆字節近於2兆字節左右。一旦編輯預算選項,我可以通過再次運行GRUNT任務來了解我的操作:

>

與Grunt.js自動化性能測試

我的網站以3兆字節的價格計算,超出了預算!看起來我有一些工作要做。但是,作為開發人員,擁有此信息對我來說非常有用。沒有其他Grunt插件以這種輕巧,易於測試的方式提供有關總頁面重量的信息。測量這些重要的指標使我可以看到開發決策的真正影響,因為我正在編碼> - 因此,我可以提高性能。

經常詢問有關使用grunt.js

自動化性能測試的問題

什麼是grunt.js,為什麼對於性能測試很重要?

grunt.js是一個JavaScript任務跑者,可以自動化重複性任務,例如縮短,編譯,單位測試和linting。它是基於node.js構建的,並使用命令行接口來運行稱為gruntfile的文件中定義的自定義任務。 Grunt.js對於性能測試至關重要,因為它允許開發人員自動化確保代碼有效運行且無錯誤運行的任務。這樣可以節省時間並降低人為錯誤的風險,從而導致更可靠和更高質量的軟件。

如何安裝grunt.js進行性能測試?

>首先需要在系統上安裝NODE.JS和NPM(Node Package Manager)。一旦擁有這些,您可以通過在終端中運行命令NPM install -G grunt -cli來安裝grunt.js。這將在系統上全球安裝Grunt命令行界面。之後,您可以通過將其定義為package.json文件中的依賴項並運行npm install。 > gruntfile是一個JavaScript文件,它在您項目的根目錄中包含,並包含用於Grunt任務的配置。它名為gruntfile.js或gruntfile.coffee,用javascript或coffeescript編寫。要創建一個GruntFile,您定義了一個包裝函數,該功能通過了grunt運行時的實例,並且可以加載grunt插件,配置任務和註冊自定義任務。

>使用Grunt.js?

grunt.js可以自動執行哪些常見任務可以自動化與性能測試和代碼優化有關的廣泛任務。其中包括縮小JavaScript和CSS文件以減小其尺寸,更少的編譯和SASS文件,並將sass文件縮小到CSS中,覆蓋JavaScript代碼以捕獲錯誤和執行編碼標準,運行單元測試以確保代碼按預期工作,並使文件降低文件的數量,以減少文件的數量http請求。

>如何使用grunt.js自動化性能測試?使用Grunt.js自動化性能測試,您可以使用grunt-contrib-uglify等插件進行縮小,用於CSS縮小的Grunt-Contrib-Cssmin,Grunt-Contrib-Jshint進行覆蓋,以及用於單位測試的Grunt-Contrib- Qunit。您可以通過NPM安裝這些插件,使用Grunt.loadnpmtasks()將它們加載到Gruntfile中,然後通過將屬性添加到Grunt.initConfig()方法來配置它們。然後,您可以使用grunt 。通過定義調用其他任務的任務來grunt.js。在您的GruntFile中,您可以使用grunt.registertask()來定義按照指定的順序運行多個任務的任務。例如,grunt.registerTask('默認值',['jshint','qunit','uglify']);可以按照該順序運行jshint,qunit和uglify任務。

>我如何自定義grunt任務的行為?

您可以通過將選項傳遞給GRUNT來自定義GRUNT任務的行為.initconfig()方法中的方法。每個任務都有一組控制其行為的選項,可以在任務的配置對像中指定這些選項。例如,uglify任務具有Mangle,壓縮和美化該控制JavaScript代碼如何縮小的選項。

>

> package.json文件在grunt project中的作用是什麼? > grunt項目中的package.json文件用於管理項目的依賴項。它列出了該項目需要運行的Grunt插件和其他NPM軟件包。運行NPM安裝後,NPM查看package.json文件並安裝列出的軟件包。這使得管理和共享您項目的依賴關係變得容易。

>我可以將grunt.js與其他測試框架一起使用?

>是的,Grunt.js與廣泛的測試框架兼容。有用於流行的測試框架(例如摩卡咖啡,茉莉花和Qunit)的Grunt插件,您還可以編寫自定義任務以使用其他框架運行測試。這使得grunt.js成為自動化性能測試的多功能工具。

>

使用Grunt.js進行性能測試有哪些最佳實踐? - 在運行任務時,verbose標誌以獲取詳細的輸出,並使用-force標誌繼續運行任務,即使失敗。定期更新您的Grunt插件以獲取最新功能和錯誤修復也是一個好主意。

>

以上是與Grunt.js自動化性能測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
從網站到應用程序:JavaScript的不同應用從網站到應用程序:JavaScript的不同應用Apr 22, 2025 am 12:02 AM

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使JavaScript能構建桌面應用。 4)Node.js讓JavaScript在服務器端運行,支持高並發請求。

Python vs. JavaScript:比較用例和應用程序Python vs. JavaScript:比較用例和應用程序Apr 21, 2025 am 12:01 AM

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

C/C在JavaScript口譯員和編譯器中的作用C/C在JavaScript口譯員和編譯器中的作用Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

JavaScript在行動中:現實世界中的示例和項目JavaScript在行動中:現實世界中的示例和項目Apr 19, 2025 am 12:13 AM

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript和Web:核心功能和用例JavaScript和Web:核心功能和用例Apr 18, 2025 am 12:19 AM

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

了解JavaScript引擎:實施詳細信息了解JavaScript引擎:實施詳細信息Apr 17, 2025 am 12:05 AM

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python vs. JavaScript:學習曲線和易用性Python vs. JavaScript:學習曲線和易用性Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python vs. JavaScript:社區,圖書館和資源Python vs. JavaScript:社區,圖書館和資源Apr 15, 2025 am 12:16 AM

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中