我一直在使用Jasmine进行单元测试,但最近一直在寻找一种执行功能测试的工具.我看到的很多名字包括PhantomJS / CasperJS,Selenium / WebDriver,Cucumber,Capybara ……但是,它看起来好像这些是无头的 – 而且我给出的要求之一就是测试可以直接在浏览器中执行,因为必须检查浏览器在包括iPad在内的任何系统上的实际行为.
另一个要求是测试是高级的,并且易于用JavaScript编写. (我使用Selenium / WebDriver进行了一些实验,使用FirefoxDriver对象来调用浏览器实例;但是,语言选项是Java,Ruby,Python和C#.)
我正在寻找的粗略轮廓:
>在实际浏览器中测试Web应用程序功能. (没有无头测试.)
>测试可以在任何各种操作系统上运行,包括iPad.
>但是,测试只能在安装Firefox时运行.其他浏览器目前不相关.
>测试是用JavaScript编写的.
如果还没有足够的工具来执行看似基本的任务,那么我的推论往往是因为人们没有采用这种方法进行测试 – 如果是这样的话,那么几乎可以肯定是有充分理由的.
那么我是否忽略了可以实现我想要的工具,或者是因为某些原因而在使用JavaScript的实际浏览器中执行的功能性Web应用程序测试?
解决方法
尝试
DevExpress TestCafe似乎满足您的所有要求.
这是一个简短的功能列表:
>零努力设置:只需解压缩并运行
>跨平台:适用于Windows,Mac和Linux
>无需安装浏览器插件
>支持所有主流现代浏览器
>一体化解决方案:内置记录器,连续集成API,测试运行器和记录器.
>在javascript中编写测试:没有围绕DOM的包装器,只需使用本机DOM方法或内置jQuery.
> Ultra-simple API for actions>在远程机器/设备(包括触摸设备)上运行测试>在同一台计算机上并行运行多个浏览器中的测试>开箱即用的Windows / HTTP-Basic身份验证支持>自动等待页面加载/ AJAX请求.不需要写“waitForPageLoad()”之类的东西