Nightwatch.js
背景介绍
为什么使用Nightwatch?
第一,我们用的是Java+Selenium+TestNG 自动化框架,但是由于之前推行的力度不够,加上繁重的功能测试和频繁的项目变更导致我们的自动化测试代码跟不上开发的进度,大量的测试代码无法正在运行。
其次,我们的项目采用的AngularJS开发,前端开发人员对js对Java更精通,部分开发也想写E2E测试,这会很方便他们上手。
再次,Nightwatch的执行很简单,npm install npm test就可以运行起来,比Java+Selenium框架更轻更容易运行,方便在测试、开发以及持续集成环境上运行。
因此,与其维护不可用的代码不如好好整理,不如在项目领导和开发的强力支持下重新开始做一套可用的E2E测试。
有关Nightwatch翻译:
在学习Nightwatch.js的过程中,发现没有完整的官方文档翻译,因此决定学习之余顺便翻译下官方文档。目前除了API参考之外都已经翻译完成。
有关翻译的问题请多多指正,更多讨论可以加入Q群「软件测试QA」:25398297,亦可关注「软件测试QA」微信公众号留言。
废话不多说了,正文开始……
Nightwatch.js使用Node.js基于E2E测试方案用于App和网站测试。它使用强大的W3C Webdirver API对DOM元素执行命令和断言。
主要特点:
- 简洁的语法:简单而强大的语法让你很快编写测试,只使用JavaScript(Node.js)和CSS或是Xpath选择器。
- 内置测试运行器:内置命令行测试运行器,它可以按照顺序、并行、分组运行、按照标记或是单独运行。Grunt支持内置。
- Selenium服务器:在单独的子进程中自动控制Selenium服务器;可以禁用Selenium服务器如果他在另一个主机上运行。
- 云服务支持:可以在云测试平台运行,比如SauceLabs 和 BrowserStack。
- CSS&Xpath支持:可以使用CSS和Xpath选择器来定位和验证页面上的元素或执行命令。
- 支持持续集成:JUnit XML内置报告,你可以在构建中集成测试,支持Teamcity, Jenkins, Hudson 等。
- 易于扩展:灵活的命令和断言框架,使其易于扩展来实现应用程序特定的命令和断言。