suchen
HeimWeb-Frontendjs-TutorialAutomatisieren Sie die Leistungstests mit grunt.js

Automatisieren Sie die Leistungstests mit grunt.js

Key Takeaways

  • Der Task -Läufer von Grunt.js kann verwendet werden, um die Leistungstests während des Webentwicklungsprozesses zu automatisieren, um sicherzustellen, dass die Leistungsziele oder „Budgets“ ohne addierte manuelle Tests zu QA -Prozessen hinzugefügt werden.
  • Das Grunt Perfbudget -Plugin verwendet die api webpagetest.org, um eine Site gegen Metriken wie Seitengewicht, Bildgrößen, Skriptgewicht und Rendernzeit zu messen. Entwickler können explizite Budgets für diese Metriken festlegen, gegen die das Plugin dann die Site misst.
  • grunn.js ist für Leistungstests von entscheidender Bedeutung, da die Aufgaben automatisiert werden, die sicherstellen, dass der Code effizient und ohne Fehler ausgeführt wird, die Zeit sparen und das Risiko menschlicher Fehler verringern. Dies führt zu einer zuverlässigeren und höherwertigeren Software.

In diesem Alter von 2 MB -Webseiten werden die Leistungsbudgets zu notwendigen Teilen unseres Webentwicklungsprozesses. In Zusammenarbeit mit den Stakeholdern Ihres Projekts wird es für die Verantwortung aller - Designer und Entwickler -, Ziele für die Leistung Ihrer Website festzulegen.

Sie können Budgets für eine Reihe verschiedener Metriken festlegen: Zum Beispiel ein Zielseitengewicht von 500 Kilobyten, die keine einzige Seite in Ihrem Projekt überschreiten kann. Elemente, die zu der Seite hinzugefügt werden, um 500 KB zu überschreiten, müssten gegen andere Elemente auf der Seite bewertet werden, um deren Aufnahme in das Design zu bestimmen. Wie Tim Kadlec beschreibt, muss Ihre Entscheidung einen von 3 Pfaden erfordern:

  1. optimieren Sie eine vorhandene Funktion oder ein Asset auf der Seite
  2. Entfernen Sie eine vorhandene Funktion oder ein Asset von der Seite
  3. Fügen Sie nicht die neue Funktion oder das Asset
  4. hinzu

Sie können auch Budgets für die in Kilobytes heruntergeladenen Gesamtbilder, die Anzahl der Produktbilder pro Anforderung oder die durchschnittliche Download -Zeit für Ihre Website gemäß webpagetest.org.

festlegen.

Sobald Sie Ihr Budget festgelegt haben, ist es eine ganze zusätzliche Aufgabe, die Leistung Ihrer Website während der gesamten Entwicklungsphase zu messen. Wie können Sie dies erreichen, ohne Ihrem QA -Prozess ein wesentliches manuelles Test hinzuzufügen? Geben Sie grunT.js!

ein

grunn.js webpagetest.org = automatisierte Leistungstests Bliss

Während es eine Reihe von Grunzen -Plugins gibt, die Ihnen helfen, Ihre Website -Leistung zu messen, konzentriere ich mich auf die genaueste, die ich gefunden habe: Grunn Perfbudget. Diese wundervolle Grunzenaufgabe verwendet die webpagetest.org -API, um Ihre Website an einer Menge nützlicher Metriken wie Seitengewicht, Bildgrößen, Skriptgewicht und Renderzeit zu messen. Sie können auch explizite Budgets für diese Metriken festlegen, an denen das Plugin Ihre Website misst!

Erwerben Sie einen API -Schlüssel

Bevor Sie Ihre Grunzenaufgabe einrichten können, müssen Sie webpagetest.org senden, damit ein API -Schlüssel in Ihre Gruntfile aufgenommen wird. (Gute Nachrichten: Es gibt eine Alternative zu diesem Prozess in Arbeit!)

Installieren Sie das Grunzen -Perfbudget -Plugin

Wenn dies das erste Mal mit Grunn verwendet wird, sehen Sie sich mein Tutorial an, um mit Grunzen aufzusteigen.

Wenn Sie bereits Grunzen auf Ihrem Computer installiert haben, müssen Sie nur das Perfbudget -Plugin installieren, bevor wir unsere Leistungstests einrichten. Navigieren Sie über die Befehlszeile zu Ihrem Projektordner und führen Sie aus:

npm install grunt-perfbudget --save-dev

Oder wenn Sie ein Beispielprojekt arbeiten möchten, geben Sie mein Github-Repository, grunz-perfbudget-Demo und führen Sie die NPM-Installation aus, um in Gang zu kommen.

Konfigurieren Sie die Perfbudget -Aufgabe

Sobald Sie das Plugin installiert haben, müssen Sie Ihre Plugin -Optionen einrichten und eine Aufgabe in Ihrer gruntfile.js erstellen. Ich habe eine Demo -Gruntfile erstellt, die die Perfbudget -Aufgabe als Teil des Standard -Grunzenbefehls ausführt, mit nur dem minimalen Optionen - eine URL zum Testen und Ihren API -Schlüssel:

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>

Wenn ich die Standard -Grunzenaufgabe mit meinem API -Schlüsselsatz ausführe, erhalte ich die folgende Ausgabe in der Konsole:

Automatisieren Sie die Leistungstests mit grunt.js

Warum ist meine Aufgabe gescheitert? Weil meine Website das Standardbudget nicht überschritten hat: Rendern in weniger als 1000 ms. Es scheiterte auch bei einer Metrik namens "SpeedIndex". Wie erfahren ich mehr über die Leistung meiner Webseite? Zum Glück hat WebPagetest eine sehr detaillierte URL, auf die ich mich verweisen kann und direkt aus der Konsole in meinem Perfbudget -Test verknüpft ist!

Um meine Website zu verabschieden und die Grunzaufgabe nicht zu veranlassen (damit die Website von Website in einer automatisierten Build -Umgebung gestoppt wird), habe ich zwei Optionen: Ich kann meine Budgets bearbeiten, bis ich bestehe (nützlich für das Testen, nützlich. Nicht so sehr für die Leistung!) Oder ich kann meine Leistungsbudgetregeln befolgen: optimieren, Sachen entfernen oder nicht mehr Dinge hinzufügen, bis ich die Standardmetriken übergasse. Lassen Sie uns vorerst mit unserer grunzigen Aufgabe spielen, um zu sehen, wie ein vorübergehender Test aussieht.

Perfbudget -Optionen und WebPagetest -Metriken

Wie die meisten Grunzaufgaben kann ich mit der Perfbudget -Aufgabe eine Reihe von Optionen anpassen. Und aufgrund der erstaunlich detaillierten Kennzahlen, die von WebPagetest gemessen wurden, kann ich alle möglichen Metriken für mein Leistungsbudget testen, um festzustellen, ob ich bestehe oder versagst.

Zunächst werde ich meine Optionen ändern, damit meine Website nicht mehr fehlschlägt und die Grunzenaufgabenberichte, die ich unter dem Budget bin. Dies erfordert eine zusätzliche Eigenschaft in meiner Perfbudget -Aufgabe namens "Budget":

<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>

Die Site ist zu diesem Zeitpunkt ziemlich langsam, damit meine Werte hoch sind, um den Test zu bestehen.

Die Ergebnisse? Ich bin bestanden!

Automatisieren Sie die Leistungstests mit grunt.js

Dies bedeutet, dass die Grunzaufgabe nicht scheitert, und wenn ich andere Aufgaben in meiner Gruntfile habe, werden sie als normal vorgehen - Erfolg!

Was können wir neben den Standardmetriken noch messen? Alle möglichen Dinge, einschließlich:

  • Loadtime: Die Gesamtlastzeit in Millisekunden
  • Anforderungen: Die Gesamtzahl der angeforderten Dateien
  • bytesin: das Gesamtseitengewicht in Bytes

Die letzte Metrik ist diejenige, die ich am häufigsten meldete und die ich für Budgetierungszwecke verfolgen möchte. Schauen wir uns also an, wie Sie es messen können:

npm install grunt-perfbudget --save-dev

Ich habe ein Gesamtbytes -Budget von 2 Millionen ausgewählt, da das durchschnittliche Seitengewicht zu diesem Zeitpunkt knapp 2 Megabyte liegt. Sobald ich die Budgetoptionen bearbeite, kann ich sehen, wie ich die Grunzaufgabe erneut ausführe:

Automatisieren Sie die Leistungstests mit grunt.js

Meine Website taktet bei 3 Megabyte ein und legt es über das Budget! Sieht so aus, als hätte ich etwas zu tun. Aber diese Informationen zur Hand zu haben, ist für mich als Entwickler unglaublich nützlich. Kein anderes Grunzen-Plugin enthält Informationen zum Gesamtgewichtsgewicht in einer so leichten und leicht zu testenden Weise. Durch die Messung dieser wichtigen Metriken kann ich die wirklichen Auswirkungen von Entwicklungsentscheidungen sehen , da ich codiere - und hilft mir, die Leistung als Ergebnis zu verbessern.

häufig gestellte Fragen zur Automatisierung von Leistungstests mit grunn.js

Was ist grunn.js und warum ist es für Leistungstests wichtig? Es ist auf node.js erstellt und verwendet eine Befehlszeilenschnittstelle, um benutzerdefinierte Aufgaben auszuführen, die in einer Datei definiert sind, die als Gruntfile bezeichnet wird. Grunt.js ist für Leistungstests von entscheidender Bedeutung, da Entwickler die Aufgaben automatisieren können, die sicherstellen, dass der Code effizient und ohne Fehler ausgeführt wird. Dies spart Zeit und verringert das Risiko menschlicher Fehler, was zu einer zuverlässigeren und qualitativ hochwertigeren Software führt. Zuerst müssen Node.js und NPM (Node Package Manager) auf Ihrem System installiert sein. Sobald Sie diese haben, können Sie Grunt.js installieren, indem Sie den Befehl npm install -g grunzen -cli in Ihrem Terminal ausführen. Dadurch werden die Grunn -Befehlszeilenschnittstelle weltweit auf Ihrem System installiert. Danach können Sie Ihrem Projekt Grunz- und Grunz -Plugins hinzufügen, indem Sie sie als Abhängigkeiten in einer Paket.json -Datei definieren und die NPM -Installation ausgeführt haben.

Wie erstelle ich eine Gruntfile für mein Projekt? > Eine Gruntfile ist eine JavaScript -Datei, die in das Stammverzeichnis Ihres Projekts angezeigt wird und die Konfiguration für Grunzaufgaben enthält. Es heißt grunnfile.js oder grunnfile.coffee und ist in JavaScript oder Coffeescript geschrieben. Um eine Gruntfile zu erstellen, definieren Sie eine Wrapper -Funktion, die eine Instanz der Grunz -Laufzeit übergeben wird. In dieser Funktion können Sie Grunzen -Plugins laden, Aufgaben konfigurieren und benutzerdefinierte Aufgaben registrieren.

Was sind einige gängige Aufgaben, die mit grunt.js automatisiert werden können? Dazu gehören das Minimieren von JavaScript- und CSS -Dateien, um ihre Größe zu reduzieren, weniger zu kompilieren, und SASS -Dateien in CSS, das Leinen von JavaScript -Code, um Fehler zu erfassen und die Codierungsstandards durchzusetzen, Unit -Tests auszuführen, um sicherzustellen HTTP -Anforderungen. GrunT.js, Sie können Plugins wie Grunzen-Contrib-UGlify für Minification, GrunT-Contrib-CSSmin für die CSS-Minifikation, Grunz-Contrib-Jshint für Lining und Grunzen-Contrib-Qunit für Unit-Tests verwenden. Sie installieren diese Plugins über NPM, laden sie in Ihre Gruntfile mit grunn.loadnpMtasks () und konfigurieren sie, indem Sie eine Eigenschaft zur methode grunt.initconfig () hinzufügen. Sie können dann die Aufgaben aus der Befehlszeile mit GrunT ausführen. Grunt.js durch Definieren einer Aufgabe, die andere Aufgaben aufruft. In Ihrer Gruntfile können Sie GrunT.registerTask () verwenden, um eine Aufgabe zu definieren, die mehrere Aufgaben in der von ihnen angegebenen Reihenfolge ausführt. Zum Beispiel Grunt.registerTask ('Standard', ['JSHINT', 'Qunit', 'Uglify']); Würde ich die Aufgaben von JSHINT, QUNIT und UGLIFY in dieser Reihenfolge ausführen. .initconfig () Methode in Ihrer Gruntfile. Jede Aufgabe verfügt über eine Reihe von Optionen, die ihr Verhalten steuern, und diese können im Konfigurationsobjekt der Aufgabe angegeben werden. Beispielsweise enthält die hässliche Aufgabe Optionen für Mangle, komprimieren und verschönern Sie diese Kontrolle, wie der JavaScript -Code minifiziert wird. > Die Paket.json -Datei in einem Grunzenprojekt wird verwendet, um die Abhängigkeiten des Projekts zu verwalten. Es listet die Grunzen -Plugins und andere NPM -Pakete auf, die das Projekt ausführen muss. Wenn Sie die NPM -Installation ausführen, befasst sich NPM in der Paket.json -Datei und installiert die aufgelisteten Pakete. Dies erleichtert die Verwaltung und Weitergabe der Abhängigkeiten Ihres Projekts. Es gibt Grunzen -Plugins für beliebte Test -Frameworks wie Mokka, Jasmine und Qunit, und Sie können auch benutzerdefinierte Aufgaben schreiben, um Tests mit anderen Frameworks auszuführen. Dies macht Grunn.js zu einem vielseitigen Tool zur Automatisierung von Leistungstests.

Was sind einige Best Practices für die Verwendung von Grunt.js für Leistungstests? --verbose-Flagge beim Ausführen von Aufgaben, um eine detaillierte Ausgabe zu erhalten und das Flag-Force-Flag zu verwenden, um Aufgaben weiter auszuführen, auch wenn man fehlschlägt. Es ist auch eine gute Idee, Ihre Grunzen -Plugins regelmäßig zu aktualisieren, um die neuesten Funktionen und Fehlerbehebungen zu erhalten.

Das obige ist der detaillierte Inhalt vonAutomatisieren Sie die Leistungstests mit grunt.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
JavaScript -Datentypen: Gibt es einen Unterschied zwischen Browser und NodeJs?JavaScript -Datentypen: Gibt es einen Unterschied zwischen Browser und NodeJs?May 14, 2025 am 12:15 AM

JavaScript -Kerndatentypen sind in Browsern und Knoten.js konsistent, werden jedoch unterschiedlich als die zusätzlichen Typen behandelt. 1) Das globale Objekt ist ein Fenster im Browser und global in node.js. 2) Node.js 'eindeutiges Pufferobjekt, das zur Verarbeitung von Binärdaten verwendet wird. 3) Es gibt auch Unterschiede in der Leistung und Zeitverarbeitung, und der Code muss entsprechend der Umgebung angepasst werden.

JavaScript -Kommentare: Eine Anleitung zur Verwendung // und / * * /JavaScript -Kommentare: Eine Anleitung zur Verwendung // und / * * /May 13, 2025 pm 03:49 PM

JavaScriptUSESTWOTYPESOFCOMMENMENTEN: Einzelzeilen (//) und Multi-Linie (//). 1) Verwendung // Forquicknotesorsingle-Linexplanationen.2 Verwendung // ForlongerExPlanationsCompomentingingoutblocks-

Python gegen JavaScript: Eine vergleichende Analyse für EntwicklerPython gegen JavaScript: Eine vergleichende Analyse für EntwicklerMay 09, 2025 am 12:22 AM

Der Hauptunterschied zwischen Python und JavaScript sind die Typ -System- und Anwendungsszenarien. 1. Python verwendet dynamische Typen, die für wissenschaftliche Computer- und Datenanalysen geeignet sind. 2. JavaScript nimmt schwache Typen an und wird in Front-End- und Full-Stack-Entwicklung weit verbreitet. Die beiden haben ihre eigenen Vorteile bei der asynchronen Programmierung und Leistungsoptimierung und sollten bei der Auswahl gemäß den Projektanforderungen entschieden werden.

Python vs. JavaScript: Auswählen des richtigen Tools für den JobPython vs. JavaScript: Auswählen des richtigen Tools für den JobMay 08, 2025 am 12:10 AM

Ob die Auswahl von Python oder JavaScript vom Projekttyp abhängt: 1) Wählen Sie Python für Datenwissenschafts- und Automatisierungsaufgaben aus; 2) Wählen Sie JavaScript für die Entwicklung von Front-End- und Full-Stack-Entwicklung. Python ist für seine leistungsstarke Bibliothek in der Datenverarbeitung und -automatisierung bevorzugt, während JavaScript für seine Vorteile in Bezug auf Webinteraktion und Full-Stack-Entwicklung unverzichtbar ist.

Python und JavaScript: Verständnis der Stärken der einzelnenPython und JavaScript: Verständnis der Stärken der einzelnenMay 06, 2025 am 12:15 AM

Python und JavaScript haben jeweils ihre eigenen Vorteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1. Python ist leicht zu erlernen, mit prägnanter Syntax, die für Datenwissenschaft und Back-End-Entwicklung geeignet ist, aber eine langsame Ausführungsgeschwindigkeit hat. 2. JavaScript ist überall in der Front-End-Entwicklung und verfügt über starke asynchrone Programmierfunktionen. Node.js macht es für die Entwicklung der Vollstapel geeignet, die Syntax kann jedoch komplex und fehleranfällig sein.

JavaScripts Kern: Ist es auf C oder C aufgebaut?JavaScripts Kern: Ist es auf C oder C aufgebaut?May 05, 2025 am 12:07 AM

JavaScriptisnotbuiltoncorc; Es ist angehört, dass sich JavaScriptWasdedeSthatrunsonGineoFtencninc.

JavaScript-Anwendungen: Von Front-End bis Back-EndJavaScript-Anwendungen: Von Front-End bis Back-EndMay 04, 2025 am 12:12 AM

JavaScript kann für die Entwicklung von Front-End- und Back-End-Entwicklung verwendet werden. Das Front-End verbessert die Benutzererfahrung durch DOM-Operationen, und die Back-End-Serveraufgaben über node.js. 1. Beispiel für Front-End: Ändern Sie den Inhalt des Webseitentextes. 2. Backend Beispiel: Erstellen Sie einen Node.js -Server.

Python vs. JavaScript: Welche Sprache sollten Sie lernen?Python vs. JavaScript: Welche Sprache sollten Sie lernen?May 03, 2025 am 12:10 AM

Die Auswahl von Python oder JavaScript sollte auf Karriereentwicklung, Lernkurve und Ökosystem beruhen: 1) Karriereentwicklung: Python ist für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet, während JavaScript für die Entwicklung von Front-End- und Full-Stack-Entwicklung geeignet ist. 2) Lernkurve: Die Python -Syntax ist prägnant und für Anfänger geeignet; Die JavaScript -Syntax ist flexibel. 3) Ökosystem: Python hat reichhaltige wissenschaftliche Computerbibliotheken und JavaScript hat ein leistungsstarkes Front-End-Framework.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools