一、 自动化测试工具:
自动化测试在现代 WEB 工程中有着非常重要的角色,与交付过程集成良好的自动化测试流程可以在新版发布时帮你快速回归产品功能,也可以充当产品文档。测试因粒度不同又可以分为单元测试、接口测试、功能测试在 WEB 领域,功能测试亦称为端到端测试(End to EndTest,简称 E2E 测试)
(一) CasperJS
介绍:
是 star 数最高的测试框架,是一种 E2E 测试框架,使用 Python 编写,其特别之处在于只能与无界面浏览器(Headless Browser)组合使用,让 CasperJS 的优势显而易见,测试运行速度比真实浏览器快不少,且你不需要在持续集成系统中安装各种浏览器或者某个浏览器的不同版本;潜在的坑在于,无界面浏览器的表现有时和真实浏览器不完全相同,会带来某些难以排查解决的浏览器兼容问题。
安装步骤:
安装 Python 2.6 或更高版本
安装 PhantomJS:npm install -g phantomjs
安装 CasperJS:npm install -g casperjs
运行测试:
casperjstest casperjs/test.js
(二) Protractor:
介绍:
Protractor 是 Angular 官方正在使用的 E2E 测试框架,可以说是专门为 Angular 定制,内置了各种可以选择、操作 Angular 元素的便捷方法,如果你的应用基于 Angular 开发,使用它可以减少很多重复代码(显然类似的便利在其他框架中也有支持)。对于 Angular 的重度使用者,Protractor 会是非常明智的选择,不同于 CasperJS 的是 Protractor 在真实浏览器中运行测试代码。此外,Protractor 内置的页面加载等待的功能,在 CasperJS 中需要自己设置合理的超时。相比于本文列出的其他框架,Protractor 的明显优势是测试用例的组织方式可以自由使用 Jasmine 或者 Mocha。
安装步骤
安装 JDK
安装 Protractor:npm install –g protractor
初始化 WebDriver Manager:webdriver-manager update
(三) Nightwatch
介绍:
同样流行的 Nightwatch,可以认为是 Protractor 的主要竞争对手,使用 Nigthwatch 编写的代码非常简洁,但是你需要手动在测试代码中添加合适的等待来保障测试的稳定,而 Protractor 和 TestCafe 则提供了内置的支持;Nightwatch 的主要劣势在于繁琐的安装步骤
安装步骤:
安装 JDK,版本 7 以上
下载 Selenium: selenium-server-standalone-{VERSION}.jar,复制到测试目录
下载 WebDriver for Google Chrome,复制到测试目录
安装 Nightwatch: npm install -g nightwatch
创建配置文件,需要在配置中声明 chromewebdriver 的地址;
运行测试:
运行 Selenium:java -jarselenium-server-standalone-3.0.0.jar
nightwatchtest.js