测试JavaScript代码的需求直截了当。如何防止错误,并确保应用程序在浏览器中或Node.js上顺利运行?幸好,开发人员在JavaScript测试方面有很多选择。
JavaScript生态系统拥有用于单元测试、集成测试和功能测试的测试运行工具和框架,并涵盖Node.js和浏览器以及angular和react等框架。下面是JavaScript开发人员可以帮助测试应用程序的其中10个工具。
AVA是Node.js测试运行工具,提供简洁的api、详细的错误输出并支持新的语言功能和进程隔离。AVA适合测试Node.js模块和服务器应用程序,但可能不适合测试UI应用程序。AVA提供了将测试标记为“待办事项”任务的功能。每个测试文件运行都是单独的过程。其他优点包括AVA的简约和速度、简单的测试语法以及同时运行多个测试的功能。AVA还支持异步函数和可观察对象(observable)——可观察对象是一种类型,可用于对dom事件等基于推送的数据源进行建模。
AVA安装: https://github.com/avajs/ava
Cucumber.js
用JavaScript实现的Cucumber测试工具:Cucumber.js运行于受维护的Node.js版本上和现代Web浏览器中。Cucumber项目提到的优点包括:团队沟通和运行用“普通”语言编写的自动化测试的功能,这意味着团队中任何人都可以阅读它们。因此,可以改善沟通、协作和信任。Cucumber.js包含一个可执行文件来运行测试套件,因此全局安装时不起作用。 (Cucumber在支持文件中必不可少,全局安装的模块并非必不可少。)
Cucumber.js安装: https://github.com/cucumber/cucumber-js
Enzyme是面向React JavaScript UI库的测试实用工具。它旨在使React组件的输出测试起来更容易。开发人员可以根据输出操作、遍历和模拟运行时环境。Enzyme API模仿jquery API来实现DOM操作和遍历。Enzyme对于测试运行工具或断言库并非固执己见。如果开发人员想使用Enzyme以及自定义断言和便利功能来测试React组件,可以考虑使用chai-enzyme和Mocha/Chai组合、jasmine-enzyme和Jasmine组合或jest-enzyme和Jest组合。Enzyme还可用于测试React Native组件。
Enzyme安装: https://airbnb.io/enzyme/
Karma是JavaScript的测试运行工具,可以在多个浏览器中执行代码。支持各大浏览器,包括移动浏览器。该项目背后的开发人员称,在Karma提供的环境中,开发人员不必设置大量配置,但可以编写代码并从测试中获得即时反馈。Karma专为低级(单元)测试而设计。 Karma不是测试框架或断言库,它启动HTTP服务器,并使用开发人员青睐的测试框架生成测试运行工具文件。它提供了面向Jasmine、Mocha和QUnit等框架的插件。
Karma安装: https://www.npmjs.com/package/karma
Jasmine号称是用于测试JavaScript的“行为驱动”框架。它不依赖其他JavaScript框架,也不需要DOM。支持者提到其语法有助于轻松编写测试。Jasmine由Pivotal Labs维护,适用于测试网站、Node.js项目以及JavaScript可以运行的任何其他环境。Jasmine旨在为各种不同的使用场景和浏览器带来易于测试的优点,与JavaScript框架无关,这让开发人员能够测试来自React、Angular或其他任何JavaScript库的代码。Jasmine力求最小依赖性,同时保持小巧、易于维护。
Jasmine安装: https://github.com/jasmine/jasmine
Jest号称是一款全面的JavaScript测试解决方案,对于大多数JavaScript项目而言,开箱即用、无需配置。测试有独特的全局状态,可以并行运行。之前失败的测试先运行,运行根据测试文件的长度重新加以组织。与流行的JavaScript技术兼容,包括Angular、babel、Node.js、React和vue。可以运行测试以跟踪庞大对象,快照与测试或嵌入式内联放在一起。在测试文件中,Jest将方法和对象放入到全局环境中,无需导入它们。
Jest安装: https://github.com/facebook/jest
Luna是一个自成一体的JavaScript单元测试框架,无需配置。产品文档显示,开发人员在几分钟内就可以让第一批单元测试运行起来。生成代码覆盖报告,不用安装其他任何模块。测试必须编写成ES6模块,默认情况下在浏览器中运行测试。支持并发,测试组并行运行。Luna的部分灵感来自面向谷歌Go语言的内置测试。Luna不支持转译(transpiling),因此无法与CoffeeScript或TypeScript兼容。它还缺少对旧版浏览器的支持。
Luna安装: https://github.com/ccampbell/luna
Mocha是一个功能丰富的测试框架,在Node.js和浏览器中运行,承诺使异步代码测试起来“简单又有趣”。测试串行运行,支持者称这便于准确而灵活的报告,同时将未捕获的异常与准确的测试用例对应起来。至于持续测试方面,开发人员可以使用Wallaby.js工具,借助任何断言库实现Mocha的实时代码覆盖。Mocha还与应用程序框架集成,比如通过Konacha,这让开发人员可以使用Mocha在Ruby on Rails应用程序中测试JavaScript。还有许多编辑器插件,比如面向Visual Studio Code的Mocha侧边栏扩展。
Mocha安装: https://mochajs.org/#installation
Protractor是一款面向Angular及前身AngularJS的端到端测试框架。测试在浏览器中针对应用程序来运行,Proctractor就像用户那样与应用程序进行交互。支持针对Angular的定位器策略,以测试Angular元素,无需任何设置。网页一完成等待的测试,自动等待功能使Protractor能够执行测试下一步。Protractor建立在WebdriverJS的基础上,后者是用JavaScript实现的用于测试的Selenium浏览器自动化工具。
Protractor安装: http://www.protractortest.org/#/
QUnit是一个被JQuery、jQuery UI和jQuery Mobile等项目使用的JavaScript单元测试框架。实际上,QUnit最初由jQuery的发明人John Resig开发而成,作为jQuery的一部分。 QUnit号称速度快、易于使用,拥有自成一体但简洁、易于扩展的API,可用于测试任何普通的JavaScript代码。测试或断言失败时,QUnit承诺尽快提供反馈,有足够的细节来查明问题。QUnit中的断言方法遵循CommonJS单元测试规范。QUnit支持有赖于jQuery 3.x的浏览器,包括Chrome、Edge、Firefox、Internet Explorer和Safari的各种版本。
QUnit安装: https://qunitjs.com/
原文标题:10 trusty JavaScript test tools,作者:Paul Krill
来自: http://developer.51cto.com/art/201908/601522.htm
Jest的未来看起来非常令人激动!看到Jest推陈出新如此快速,我感觉它将很快成为整个React生态系统中大部分项目的首选工具。我建议,应该把测试迁移到Jest上去。
如果您正在测试前端应用程序,则应该了解前端测试金字塔。在本文中,我们将看到前端测试金字塔是什么,以及如何使用它来创建全面的测试套件。
作为前端开发,我们不仅需要满足产品需求功能的实现,同时也需要对自己做的网站进行安全、易用性、性能等方面的考虑。随着目前技术不断进步,web页面的性能测试工具也在不断完善,通过这些工具,我们可以客观的评价web网站的质量水平。
jest 是 facebook 开源的,用来进行单元测试的框架,可以测试 javascipt 和 react。jest 提供了非常方便的 API,可以对下面的场景方便的测试:一般函数、异步函数、测试的生命周期、react 测试
web测试大全,测试web网站有哪些点呢?主要包括:功能测试、兼容性测试、安全测试、输入框测试、用户权限测试等
前端性能测试工具都有哪些:Favicon、Open Graph、图片优化-压缩图像、CSS 优化-Autoprefixer、Purifycss、minify CSS、减少载入时间、GZIP、CDN、优化平台-Sentry、Google Tag Manager
本文你将了解到:1、接口测试基本概念,包含什么是接口,什么是接口测试,为什么要做接口测试;2、接口测试用例设计,3、怎样不用写代码,也能快速的根据开发的API文档完成接口自动化测试脚本
在自动化元素定位操作中经常使用智能等待来加强定位的强壮性,主要就是因为WebDriver没有提供页面加载场景的方法;在使用JavaScript知识的突然心生灵感,可以使用JavaScript来配合验证页面加载,结果发现我真是井底之蛙。
在写测试代码时,以往我们需要翻阅文档,学习各种 API 才能明白如何操作断言。而现在我们可以透过 power-assert 的 assert 方法来减轻调试压力。不仅如此,它还提供更加直观,具体的运行效果,帮助 DEBUG。写测试代码,其实可以很容易。
在网站上线发布之前,我们除了必要的安全、功能测试外,往往还需要进行压力测试。通过模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件。包括:Apache JMeter 、LoadRunner、NeoLoad等
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!