文档章节

给 Web 开发人员推荐的测试工具

编辑部的故事
 编辑部的故事
发布于 2017/08/17 17:59
字数 1197
阅读 6860
收藏 291
点赞 7
评论 4

用户对于现代 Web 应用除了美观要求之外,对产品体验度也有较高的要求。在推荐过几期开源图形库和通用独立 UI 组件后,觉着是时候推荐一些测试工具了。这应该也是该系列的最后一篇,感谢大家的支持。

一、单元测试/测试运行器

1、Jest

知名的 JavaScript 单元测试工具,由 Facebook 开源,开箱即用。它在最基础层面被设计用于快速、简单地编写地道的 JavaScript 测试,能自动模拟 require() 返回的 CommonJS 模块,并提供了包括内置的测试环境 Dom API 支持、合理的默认值、预处理代码和默认执行并行测试在内的特性。通过在并行进程中同时运行测试,让测试更快地结束。

2、AVA

号称“未来的测试运行器”,利用 JavaScript 在 Node.js 里使得 IO 可以并行的优点,让你的测试可以并发执行,这对于 IO 繁重的测试特别有用。另外,测试文件可以在不同的进程里并行运行,让每一个测试文件可以获得更好的性能和独立的环境。测试并发执行强制你写原子测试,意味着测试不需要依赖全局状态或者其他测试的状态。

3、Mocha

一个功能丰富的测试框架,用于 Node.js 和浏览器上的 JavaScript 应用测试,使异步测试变得简单而有趣。它可以持续运行测试,支持灵活又准确的报告,当映射到未捕获异常时转到正确的测试示例。

4、Karma

基于 Node.js 的 JavaScript 测试运行器,旨在为开发人员带来有效的测试环境。可用于测试所有主流 Web 浏览器,也可集成到 CI 工具,还可和其他代码编辑器一起使用。另外一个强大特性就是,它可以监控文件的变化,然后自行执行,通过 console.log 显示测试结果。

二、Web 测试

1)集成测试

Enzyme

一个用于 React 的 JavaScript 测试工具,方便你判断、操纵和历遍 React Components 输出。其 API 旨在通过模仿 jQuery 的 API ,使得 DOM 操作和历遍很灵活、直观。兼容所有的主要测试运行器和判断库。

示例:Shallow Rendering

import React from 'react';
import { expect } from 'chai';
import { shallow } from 'enzyme';
import sinon from 'sinon';

import MyComponent from './MyComponent';
import Foo from './Foo';

describe('<MyComponent />', () => {
  it('renders three <Foo /> components', () => {
    const wrapper = shallow(<MyComponent />);
    expect(wrapper.find(Foo)).to.have.length(3);
  });

  it('renders an `.icon-star`', () => {
    const wrapper = shallow(<MyComponent />);
    expect(wrapper.find('.icon-star')).to.have.length(1);
  });

  it('renders children when passed in', () => {
    const wrapper = shallow((
      <MyComponent>
        <div className="unique" />
      </MyComponent>
    ));
    expect(wrapper.contains(<div className="unique" />)).to.equal(true);
  });

  it('simulates click events', () => {
    const onButtonClick = sinon.spy();
    const wrapper = shallow((
      <Foo onButtonClick={onButtonClick} />
    ));
    wrapper.find('button').simulate('click');
    expect(onButtonClick).to.have.property('callCount', 1);
  });
});

2)功能测试

1、WebDriverIO

该库是 Node.JS 的 Webdriver(浏览器自动化)模块,可在 BDD / TDD 测试框架中编写超级简单的 Selenium 测试。

2、Nightwatch

一个易于使用的基于 Node.js 的浏览器自动化测试解决方案。它使用强大的 Selenium WebDriver API 来在 DOM 元素上执行命令和断言。语法简单但很强大,使你可以快速编写测试。内置的命令行测试运行器,能够运行整体测试,分组测试或者单个测试。

类似的还有 Protractor 和 CasperJS ,感兴趣的可以直接查看。

3)Visual 测试

Storybook

一个 UI 组件的开发环境,允许你浏览组件库,查看每个组件的不同状态,以及交互式开发和测试组件。它运行在应用之外,允许隔离开发 UI 组件,这可以提高组件的重用性、可测试性和开发速度。

4)猴子测试(Monkey Testing,也称“搞怪测试”)

Gremlins.js

一个用 JavaScript 编写的猴子测试库,用于 Node.js 和浏览器。通过释放大量无规律的 gremlins 来检测 Web 应用的鲁棒性。

5)服务端测试

1、K6

用于测试性能,以开发人员为中心的负载测试工具。提供了一个通过 REST API 进行编排的清新易用的脚本 API 。使用 Go 和 JavaScript构 建,可以很好地集成到开发工作流程中。

2、SuperTest

SuperAgent 的一个扩展,一个轻量级 HTTP AJAX 请求库。提供对 HTTP 测试的高度抽象, 极大地简化了基于 HTTP 的测试。

© 著作权归作者所有

共有 人打赏支持
编辑部的故事

编辑部的故事

粉丝 1085
博文 231
码字总数 392922
作品 0
深圳
运营/编辑
加载中

评论(4)

月下黄昏
月下黄昏
怎么大多都是基于node的啊!
啸傲天狼
啸傲天狼
猴子测试那个好玩
izee
izee
weinre都没有
疯子VS教授
疯子VS教授
SharePoint 2013常用开发工具分享

众所周知,一款好的开发工具不仅能提高项目开发效率,而且能够协助开发人员简化开发流程。本文汇总几款SharePoint 2013开发常用开发工具,希望能够对大家有所帮助。如果您有更好的工具,没有...

冷秋寒 ⋅ 2014/04/01 ⋅ 0

开发人员完美的前端清单-Frontend-Checklist

前端清单是在启动您的网站/ HTML页面到生产之前,您需要测试的所有元素的详尽列表。它基于前端开发人员多年的经验,现在也增加了其他一些开源前端清单。 如使用? 在项目中所有的前端清单,需...

匿名 ⋅ 2017/11/30 ⋅ 0

12款白帽子用于黑客渗透测试的操作系统

  【IT168 技术】想知道什么样的操作系统的是白帽子黑客的最爱吗?本文我们将推荐12个操作系统,包括一些Linux发行版,如Kali Linux,Parrot安全操作系统,BlackArch等。这些以安全为重点的...

it168网站 ⋅ 2017/03/21 ⋅ 0

8款用于移动应用开发的测试工具

  【IT168 技术】移动设备的快速增长为移动应用开发者和程序员带来了机遇,同时也面临很多测试方面的问题。比如众多的操作系统版本,浏览器和智能设备等,那么如何确保所有组合的质量体验?...

it168网站 ⋅ 2017/04/01 ⋅ 0

五个值得尝试的前端开发工具

在过去的几年时间里,出现了许多全新的网页应用程序,不过,由于应用程序的功能越来越丰富,也导致了前端开发的复杂度大幅增加。 现在也有不少前端开发工具,比如Backbone和EmberJS框架都能提...

oschina ⋅ 2014/06/08 ⋅ 13

用好这15类工具,Web开发已成功了一半

  【IT168 评论】Web的发展日新月异,这也使得Web开发者不得不加快脚步,学习新的技术和编程语言。尤其是对于那些大量流量入口的网站来说,跟上技术发展趋势更是尤为重要。为了使得Web开发...

it168网站 ⋅ 2017/03/28 ⋅ 0

50个实用的JavaScript工具

JavaScript是一个功能强大的客户端脚本语言,许多现代化的网站和Web应用程序都会使用到它。JavaScript可以增强用户的体验,并提供丰富的互动式组件和功能。虽然它的语法相当简单,但是对开发...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

50个实用的JavaScript工具

【IT168 分析评论】JavaScript是一个功能强大的客户端脚本语言,许多现代化的网站和Web应用程序都会使用到它。JavaScript可以增强用户的体验,并提供丰富的互动式组件和功能。虽然它的语法相...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

趣味十足,据说这些Android库的体验很赞

  【IT168 编译】尽管有很多网站都不同程度的推荐了很多实用的Android库,但是技术的更迭速度远超我们的想象,今年就又涌现出了很多很有趣的Android库。Android 程序员、FreeCodeCamp贡献者...

it168网站 ⋅ 2017/06/06 ⋅ 0

Netflix 开源容器管理系统 Titus,与 AWS 紧密集成

Netflix 与周四宣布开源其容器管理系统 Titus,这对于寻求可以大规模扩展的解决方案的开发人员来说无疑是个好消息,并且,该解决方案也与 Amazon Web Services 紧密集成。 Netflix 在博客中表...

达尔文 ⋅ 04/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

645. Set Mismatch - LeetCode

Question 645. Set Mismatch Solution 思路: 遍历每个数字,然后将其应该出现的位置上的数字变为其相反数,这样如果我们再变为其相反数之前已经成负数了,说明该数字是重复数,将其将入结果r...

yysue ⋅ 29分钟前 ⋅ 0

Confluence 6 从生产环境中恢复一个测试实例

请参考 Restoring a Test Instance from Production 页面中的内容获得更多完整的说明。 很多 Confluence 的管理员将会使用生产实例运行完整数据和服务的 Confluence 服务器,同时还会设置一个...

honeymose ⋅ 33分钟前 ⋅ 0

Python这么强?红包杀手、消息撤回也可以无视,手机App辅助!

论述 标题也许有点不好理解,其实就是一款利用Python实现的可以监控微信APP内的红包与消息撤回的助手。不得不说,这确实是一款大家钟意的神器。 消息撤回是一件很让人恶心的事,毕竟人都是有...

Python燕大侠 ⋅ 45分钟前 ⋅ 0

压缩打包介绍、gzip压缩工具、bzip2压缩工具、xz压缩工具

压缩打包介绍 压缩的好处不仅能节省磁盘空间而且在传输的时候节省传输时间和网络带宽 windows系统下文件带有 .rar .zip .7z 后缀的就是压缩文件 linux系统下则是 .zip, .gz, .bz2, .xz, ...

黄昏残影 ⋅ 50分钟前 ⋅ 0

观察者模式

1.利用java原生类进行操作 package observer;import java.util.Observable;import java.util.Observer;/** * @author shadow * @Date 2016年8月12日下午7:29:31 * @Fun 观察目标 **/......

Cobbage ⋅ 52分钟前 ⋅ 0

Ubuntu打印服务器配置

参考:https://blog.csdn.net/gsls200808/article/details/50950586 https://blog.csdn.net/jiay2/article/details/80252369 https://wiki.gentoo.org/wiki/HPLIP 由于媳妇儿要大量打印资料,......

大熊猫 ⋅ 58分钟前 ⋅ 0

面试的角度诠释Java工程师(二)

原文出处: locality 续言: 相信每一位简书的作者,都会有我这样的思考:怎么写好一篇文章?或者怎么写好一篇技术类的文章?我就先说说我的感悟吧,写文章其实和写程序是一样的。为什么我会...

颖伙虫 ⋅ 今天 ⋅ 0

github中SSH的Key

https://help.github.com/articles/connecting-to-github-with-ssh/ https://help.github.com/articles/testing-your-ssh-connection/ https://help.github.com/articles/adding-a-new-ssh-k......

whoisliang ⋅ 今天 ⋅ 0

only_full_group_by

我的mysql是在CentOS7.1下面的5.7.17 在 /etc/my.cnf 文件里加上如下: sql_mode='NO_ENGINE_SUBSTITUTION' 然后,重启Mysql服务 systemctl restart mysqld...

SunHacker ⋅ 今天 ⋅ 0

实际项目(SpringBoot项目)中集成Druid

参考网页 https://blog.csdn.net/liuchuanhong1/article/details/55050131 https://blog.csdn.net/CoffeeAndIce/article/details/78707819 https://www.pocketdigi.com/20170530/1577.html 为......

karma123 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部