DevExpress 最近发布了一款名为 TestCafe 的基于 Web 的测试框架, 它能对 Web 页面的用户界面和通过 HTML5、CSS 和 Javascript 渲染的应用进行测试。
最近 DevExpress 发布了 TestCafe 测试框架,该框架能让用户使用任何基于HTML5 的浏览器在Windows、Mac 或Linux 平台上运行测试。它提供了智能脚本注入的功能,这能让开发者直接和页面的DOM 打交道并拦截用户的操作。它也消除了浏览器插件间的差异性并提供完全免费的通过jQuery 访问DOM 和浏览器的API。
TestCafe 包括一个内置的流量分析工具,它能通知用户缺失的资源,响应代码和 JavaScript 错误。它还附带一个标记分析工具,它能确保网页元素都是完整的,并且对用户可见。
为使用 TestCafe ,用户需要按下 REC 按钮,它就会在同一个浏览器窗口中加载网页。用户在每次记录的过程中将看到一个确认对话框,可以预览的操作、进行回滚和自定义元素选择器代码。TestCafe 也可以通过界面或命令行方式运行测试,还通过集成的用户界面或处理 JSON 输出的方式分析处理结果。
为了解更多关于 TestCafe 的相关情况,InfoQ 采访了 DevExpress 的 CTO Julian Bucknall 。
InfoQ:可以使用TestCafe**** 测试哪些类型的应用?
TestCafe 是为测试页面和 Web 应用页面的功能而设计的。如果是通过 HTML5、CSS 和 Javascript 渲染的页面或应用,TestCafe 都能测试。
InfoQ:如果TestCafe是一个基于Web**** 的测试框架的话,请解析一下下载使用它的必要性?
TestCafe 实际上由两部分组成。其中有几个部分包括了仪表板和在客户端启动测试(在任何设备上一个或多个浏览器实例)的分析组件(以及代理服务器)。还包括在浏览器中运行测试并将结果返回到服务器的客户端库。
是的,我们是可以将 TestCafe 以服务端的方式发布(本质上,我们可以“租”出测试服务),但我们认识到,大多数在 QA 环境中进行的 Web 测试都是没有连接到互联网。
在这种情况下,将服务端部分作为 TestCafe 的一部分出售是合理的。请注意,尽管命名是一样,但 TestCafe 服务端可以很容易地在提供了浏览器环境的机器上运行,或者说可以在 Web 开发人员的机器上运行。Web 开发人员可以编写并在没有连接到其他 pc 机的自己的机器和设备上运行测试。
InfoQ: 能使用TestCafe去测试Windows Forms和 ****Windows Phone 8**** 应用吗?
不能,暂时只能测试 Web 页面和 Web 应用。
InfoQ: TestCafe**** 和其他工具有什么不同之处?
其他 Web 的功能测试工具通常需要在浏览器安装特殊的插件去运行应用。服务器端和插件进行通信,同时插件尝试去控制应用。这意味着,不仅要为每一种浏览器单独编写插件,有时还要针对浏览器的不同版本编写插件。
插件在访问页面的 DOM 方面也会遇到困难,比如 DOM 中元素的是否可视、控制用户的输入等等。TestCafe 不需要插件,它向网页注入一个特殊的客户端库并完全控制整个页面。这就是为什么 TestCafe 的可以直接测试在移动设备如 iPhone 或 Android 手机中的网页,还可以捕获(报告)页面可能抛出的错误。
InfoQ: 能否在共享或者单独的托管空间中使用 ****TestCafe?
TestCafe 运行基于 node.js, 所以如果你的服务提供商允许使用 node.js,那就是可以的。
InfoQ: TestCafe仅指出和应用相关的bug还是自动纠正bug?
TestCafe 是一种功能测试工具。开发者编写(或录制)一系列的操作以及预计的结果。TestCafe 只是重复相同的动作并验证结果是否符合。如果结果是不一样的,则会报错误,但工具有无法知道什么样的改变导致了错误的结果。
InfoQ: 使用TestCafe能提高开发者的效率么?
当然可以。Web 开发人员能够为特定的网页或应用建立了一套功能测试,然后在检查过程中验证测试是否依然能通过。这样可以在产品发布前甚至在代码提交到代码库之前就可以发现缺陷,已经有许多发表的研究显示,越早发现缺陷则修复的代价(时间、金钱、精力)越小。
查看英文原文: TestCafe with Smart Script Injection, Traffic and Markup Analysis Tools
感谢马国耀对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论