搜索
首页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

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。