您当前位置: 圣才学习网首页 >> IT类 >> Web开发技术

走进JS集成测试工具Test Swarm

扫码手机阅读
用圣才电子书APP或微信扫一扫,在手机上阅读本文,也可分享给你的朋友。
评论(0
来源:网络 作者:未知
jQuery java script程序库的创建者John Resig发布了Test Swarm,该平台用于对客户端java script进行分布式的持续集成测试。由于对传统java script测试环境(无法扩展)深感失望,John的新项目(目前还是私有的alpha版)旨在为众多的开发者和社区提供一个用以测试浏览器的系统。
正如John所述,在各种不同的浏览器中测试jQuery难度非常大:
我们力求在jQuery项目中支持所有主流浏览器的当前版本、最新发布版以及即将发布的每日构建版/beta版(我们根据用户升级浏览器的频率对这些支持标准进行了一些平衡——SafariOpera用户的升级频率非常高)。
在本文发布时一共包含12个浏览器。
Internet Explorer 678。(不包括8中的7模式)
Firefox 23及每日构建版
Safari 3.24
Opera 9.610
Chrome 12
当然了,这只是Windows平台上的,还不包括OS XLinux。对于jQuery项目我们采取了明智的策略,通常只在一种平台上进行测试,但理想情况下还需要在所有平台上测试FirefoxSafariOpera(这三个是跨平台的浏览器)。最后的结果是在每一次提交前后我们都要在12个独立的浏览器上运行10个独立的测试套件。跨浏览器的java script测试的可伸缩性还不行。
如果测试需要与用户进行交互,那么这对于jQuery乃至任何大量使用java scriptWeb应用来说都是糟糕透顶的事情了。
一些测试套件(如Yahoo UIjQuery UISelenium)可以对用户交互进行自动化(你可以编写类似于点击按钮这样的测试)。大多数情况下这能满足我们的要求,但所有这些仅仅是对实际用户交互的一种模拟。没有什么东西可以与让人手工运行一些容易重现(并且可验证)的测试相提并论。
这是最大的可伸缩性问题。用自动化的测试套件乘以想要运行的测试个数,手工在12个浏览器中运行100个测试简直是天方夜谭。一定还有更好的办法,因为很明显:跨浏览器的java script测试的可伸缩性还不行。
Selenium Grid这样的解决方案有几个限制:
据我所知,Selenium Grid需要用Selenium来运行测试。目前还没有哪个主流的java script程序库使用了Selenium(这么做的代价也不小)。
它无法测试非桌面机。每个服务器都必须运行一个后台程序来处理众多任务,这样移动设备就不行了。
它无法测试未知的浏览器。每个浏览器都需要特殊的回调代码以让Selenium加载浏览器,这样未知的浏览器(如IE 8Opera 10Firefox NightlyChrome)可能就没法运行了。
最重要的是:Selenium Grid要求你拥有大量机器来运行测试,这不太可行,尤其是在分布式的开源java script开发下更是如此。因此我们需要更加行之有效的解决方案。
John提出的解决方案Test Swarm基于java script客户端,该客户端会持续不断地向中央服务器发出连接请求以运行测试。服务器收集测试套件并将其发送到各自的客户端上:
以下是我设想的Test Swarm的工作方式:开源的java script程序库将测试套件提交到中央服务器上,同时用户也会参与进来。程序库的用户需要在其日常的工作中额外开两个浏览器窗口来辅助我们的工作,这样他们会感觉到也在参与着项目(其实就是这样!)。
程序库还可以将手工测试发给用户。新的手工测试到来时会通知用户(通过声音提示?),这样他们就能迅速执行了。
用户提供的这些帮助也不是无偿的:我们可以统计参与最积极的用户,然后对前几名进行嘉奖(T恤、杯子、书等等)。
相关信息
Test Swarm基于何种协议?
基于MIT协议(服务器端采用PHPMySQL,客户端是一些简单的java script)。
除了框架所有者以外,你认为它对于其他组织有何价值?
我认为这对于其他组织和厂商都大有裨益。下面是我设想的成长计划:
首先开放给主流的java script程序库(他们已经建立好了测试套件和测试体制)。
接下来开放给其他开源的java script项目。
然后开放给其他组织,只要这些组织允许匿名用户运行其测试就行。
当然通过这些步骤,任何组织都可以轻松下载服务器软件并运行自己的swarm实例——无需通过主要的Test Swarm服务器的测试。
在最初的声明中,John还提到了Test Swarm“corporate”版:
Test Swarm“corporate”版已经引起了很多人的兴趣。目前对此还没有什么计划(除了以开源的形式发布该软件),我倒是想留点空间以便将来的扩展(或许用户会因手工测试而得到一些报酬——就像Mechanical Turk测试java script那样——我不知道,但确定的是其成长空间很大)。
如果对Test Swarm感兴趣可以索取其alpha
 

小编工资已与此挂钩!一一分钱!求打赏↓ ↓ ↓

如果你喜欢本文章,请赐赏:

已赐赏的人
最新评论(共0条)评论一句