我想测试一个经过彻底重新设计的网络应用,以使用ExtJS来驱动其UI。
我已经完成了一些在线搜索,但是没有找到任何建议来建立一个好的框架来正确处理它。
到目前为止,我们一直在使用WatiN来创建测试。
请注意,我们不拥有网络应用程序代码。
目前有哪些最佳选择?
答案 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]" }
);
免责声明:我为创建它的公司工作。
答案 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)
答案 5 :(得分:0)
Ranorex也可以处理Ext-Js,虽然把它变成一等公民需要一些自定义编码。一般的秘密是避免使用id进行对象识别,因为它们会改变并使用innertext属性。
答案 6 :(得分:0)
个人发现在某些地方使用xpath和extjs时会出现问题。
(在Java中)最好编写一个使用JavaScript组件查询来提取元素ID的方法。 (如果有)