+ 首页>>工具>>内容

工具Nightwatch.js – 基于Node.js的验收测试框架500+次围观

Nightwatch.js – 基于Node.js的验收测试框架
Nightwatch是一套新近问世的基于Node.js的验收测试框架,使用Selenium WebDriver API以将Web应用测试自动化。它提供了简单的语法,支持使用JavaScript和CSS选择器,来编写运行在Selenium服务器上的端到端测试。

不同于行为驱动测试(BDD)和单元测试独立运行并使用模拟/存根,端到端测试将试着尽可能从用户的视角,对真实系统的访问行为进行仿真。对Web应用来说,这意味着需要打开浏览器、加载页面、运行JavaScript,以及进行与DOM交互等操作。Nightwatch尝试着使用语法糖(syntax sugar)来实现这一目标:

this.demoTestGoogle = function (browser) {
   browser
     .url(“http://www.google.com”)
     .waitForElementVisible('body', 1000)
     .setValue('input[type=text]', 'nightwatch')
     .waitForElementVisible('button[name=btnG]', 1000)
     .click('button[name=btnG]')
     .pause(1000)
     .assert.containsText('#main', 'The Night Watch')
     .end();
};

除简化了编写自动化测试的过程外,Nightwatch还能够与持续集成的流水作业结合,从而对开发中的系统进行完整的诊断:我们可以从Nightwatch网站找到当前提供特性的列表:

  • 简单但强大的语法。只需要使用JavaScript和CSS选择器,开发者就能够非常迅捷地撰写测试。开发者也不必初始化其他对象和类,只需要编写测试规范即可。
  • 内建命令行测试运行器,允许开发者同时运行全部测试——分组或单个运行。
  • 自动管理Selenium服务器;如果Selenium运行在另一台机器上,那么也可以禁用此特性。
  • 支持持续集成:内建JUnit XML报表,因此开发者可以在构建过程中,将自己的测试与系统(例如Hudson 或Teamcity等)集成。
  • 使用CSS选择器或Xpath,定位并验证页面中的元素或是执行命令。
  • 易于扩展,便于开发者根据需要,实现与自己应用相关的命令。

目前,Selenium是JavaScript的世界里验收测试方面最流行的工具之一,类似的还有PhantomJS。

二者都有其独到的方法:Selenium使用其WebDriver API,而PhantomJS使用无界面的WebKit浏览器。它们都是非常成熟的工具,都具有强大的社区支持。

它们与Nightwatch之间最大的不同,主要是在于语法的简易度以及对持续集成的支持。与Nightwatch相比,Selenium和PhantomJS都拥有更加冗长的语法,这会让编码变得更庞大,而且不支持从命令行中进行开箱即用的持续集成(JUnit XML或其他标准输出)。

尽管如此,Nightwatch还处于不断演进的道路上,以成为更加成熟工具的。在Google Groups中,WD.js(另一个基于Node.js的验收测试框架)的作者Sebastian Vincent针对处理回调所选择的实现给出了一些批评意见:

当涉及异步调用时,基于链式的队列是个糟糕的模式。如果开发者想要做一些复杂的事情,或是组合一些东西,最终将不得不手动停止队列以插入任务(但也许Nightwatch会证明我的看法是错的)。

Vincent还针对Nightwatch和Selenium服务器之间使用的底层通信协议,指出了其中存在的不足之处:

Nightwatch离成熟还远,看看HTTP协议,GET和DETLETE中没有重试、没有超时设置,也没有内容/长度+内容类型。在非直接情况下(例如Sauce-connect或排队),它很快就会出现问题。

然而,哪怕有这些批评的声音,Nightwatch还是入选了GitHub本月最热门代码仓库。另外该团队运营着一个Twitter账号,听取来自社区的反馈并与开发者互动。

via infoQ

+ 猜你喜欢...

===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!

===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。

===== DiggerPlus 官方读者群 =====
DiggerPlus官方读者群(一)

+ 关于本文作者

Python/C/C++/Javascript程序员,持续学习者,目前专注于前端开发。

的专栏 | 专栏作者 | 访问小A的主页

+ 发表评论

开源中国精彩推送

基于开源中国OpenAPI开发
  • Copyright © 2014 DiggerPlus. 86 queries in 2.308 seconds.
    使用合作网站账号快速登录,更多精彩等着您: 开源中国