用于基于ExtJS的Web应用程序的UI测试的框架和工具

时间:2012-03-29 22:31:11

标签: javascript testing extjs automated-tests ui-automation

我想测试一个经过彻底重新设计的网络应用,以使用ExtJS来驱动其UI。

我已经完成了一些在线搜索,但是没有找到任何建议来建立一个好的框架来正确处理它。

到目前为止,我们一直在使用WatiN来创建测试。

请注意,我们不拥有网络应用程序代码。

目前有哪些最佳选择?

7 个答案:

答案 0 :(得分:5)

你应该看看使用Siesta,它是一个单元测试和功能测试工具,旨在帮助你测试Ext JS和Sencha Touch(它也被Sencha内部用来测试Ext JS本身)。由于Siesta对Ext JS有很多了解,因此您可以使用Component Query而不是CSS编写表达式测试,并且与此线程中其他答案中描述的更简单的工具相比,可以获得更强大的测试。这是一个简单JS中的示例测试脚本:

t.chain(
    { click : ">>textfield[name=user]" },

    { type : "Mike[TAB]Password" },

    { click : ">>button[name=loginbutton]" }
);

免责声明:我为创建它的公司工作。

http://www.bryntum.com/products/siesta/

答案 1 :(得分:3)

您是否希望对您的网页进行直接的功能测试,或者您是否希望将测试专门缩小到ExtJS中的JavaScript?

如果它是前者(在UI级别功能),那么WatiN / Watir / Webdriver应该适合你。 (如果他们没有工作,那么我很想获得有关您正在运行的具体问题的更多详细信息。)

如果是后者,那么您可能会调查Jasmine,它会在UI层对单元测试JavaScript提供很多有趣的功能。

(如果是功能测试,你也可以查看Telerik's Test Studio的功能自动化。我是该工具的传播者,所以我有点偏见......)

答案 2 :(得分:2)

您可能需要查看RIATest

5.0版完全支持ExtJS测试。 ExtJS UI小部件是RIATest中的一等公民。这意味着与其他HTML测试工具不同,您不需要编写操作HTML DOM元素的测试。 RIATest中的测试根据ExtJS UI小部件进行操作。

与ExtJS小部件一起使用的RIATest脚本示例:

以下点击标有“下一页”的ExtJS按钮:

ExtButton("Next Page")=>click();

以下是从一个ExtJS树到另一个ExtJS树的拖放:

ExtRow("Controller.js")=>dragAndDropTo(ExtTreePanel("#tree2")->ExtRow("Custom Ext JS"));

这会折叠ExtJS框的标题:

ExtBox("Feeds")->ExtHeader("FeedsВ")->ExtCollapser()=>click();

(上面的所有示例代码都来自在ExtJS示例应用程序上运行的实际测试脚本。)

RIATest还知道何时自动等待ExtJS AJAX完成,因此如果您的UI执行动态内容下载,测试将会自动等待,直到从服务器收到数据。

(免责声明:我是RIATest团队成员)。

答案 3 :(得分:1)

Sahi是我最近出现的一种自动化和测试工具,因为我和你一样在搜索... Selenium没有为我工作(因为它没有为网络上的许多人找到...没有找到任何东西来制作它工作...动态ID和其他Ext相关的特殊性明显混乱了...... ...

看看sahi也许它会很有用...... www.sahi.co.in(我没有关系,我最近发现它并发现它很有用)。

答案 4 :(得分:0)

您想进行功能测试。 Selenium是个不错的选择。它具有一系列语言(Java,Ruby,Python)的API实现,并且它使用了Webdriver

答案 5 :(得分:0)

Ranorex也可以处理Ext-Js,虽然把它变成一等公民需要一些自定义编码。一般的秘密是避免使用id进行对象识别,因为它们会改变并使用innertext属性。

答案 6 :(得分:0)

个人发现在某些地方使用xpath和extjs时会出现问题。

(在Java中)最好编写一个使用JavaScript组件查询来提取元素ID的方法。 (如果有)