PDA

View Full Version : Test Automation support for ExtJS applications



Ramu.346
12 Jun 2013, 6:37 AM
Hi Team,

Most of the automation tools works based on object ID/Name/object Hierarchy. But in ExtJS, all these properties are dynamic.
Is there any recommended mechanism to automate ExtJs applications?

Please share your thoughts, as the regression testing is the very important phase in application development cycle.

Thanks,

mitchellsimoens
14 Jun 2013, 5:19 AM
Which kind of test are you wanting?

Ramu.346
17 Jun 2013, 12:38 AM
Regression testing using automation tools like QTP, Selenium etc.,
I am not sure that i understand your question exactly. Please let me know if you need any information.

Thanks

tnm
17 Jun 2013, 11:45 PM
You may want to look at the automated functional GUI testing tool RIATest (http://www.cogitek.com/riatest/features/technologies/extjs.html).

RIATest knows how to ignore ids dynamically generated by ExtJS, yet if you manually assign ids to the components the tool will use them for identification (see e.g. #tree2 in the sample below).

The tests in RIATest operate in terms of ExtJS UI widgets.

Examples of RIATest scripts that work with ExtJS widgets:

The following clicks on an ExtJS button with label "Next Page":


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

And the following does drag-n-drop of a row from one ExtJS tree to another:


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

And this collapses the header of an ExtJS box:


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

(All sample code above is from real test scripts that run on ExtJS sample applications).


(Disclaimer: I am a RIATest team member).

jvalentino
5 Nov 2013, 4:05 PM
I had the same issue when dealing with automating Ext JS, which is why I created HTML5 Robot (http://html5robot.com).

It is based on a series of best practices for how to reliably lookup and interact with components based on attributes and conditions which are not dynamic. It then provides shortcuts for doing this with all of the HTML, Ext JS, and Sencha Touch components that you would need to interact with. It comes in 2 flavors:
Java - Familiar Selenium and JUnit based API that has built in web driver support for all modern browsers.
Gwen - A human style language for quickly and easily creating and maintaining browser tests, which comes with its own integrated development environment. All of which is based on the Java API.
For example if you were wanting to click the "OK" button in an Ext JS dialog, you could do the following in Java:


click(findExtJsMessageBoxButtonByText("OK"));

...and you could do the following in Gwen:


click extjsdialogbutton by text "OK"

You can download the entire thing for free and check it out. Let me know if you have any questions.

BearQuality
23 Jan 2014, 6:44 AM
TestComplete is a test automation tool that works with extJS controls. Since the objects are dynamic you will have to make sure the object browser is in tree mode (makes finding objects easier) and that you use the object spy to get the object ID.

http://smartbear.com/products/qa-tools/automated-testing-tools/?_ga=1.10447349.1362197236.1363803531

wwwreynolds
14 Feb 2014, 6:57 AM
We purchased RIATest to test our ExtJS applications because it has the richest set of features for testing ExtJS.

Unfortunately, after using it for a while we have become extremely frustrated with the tool and their support. Here's a summary of problems:
1) does not work in our continuous integration environment. They claim to not be able to reproduce the problem so we are stuck w/o automated testing.
2) the tool has to be restarted many times in order to connect with the browser. This is not just a problem with only one developer, but with all our developers.
3) their support is terrible. You can't talk to anyone directly as everything is through email, but they do not reply.

Bottom line is that for the features it does give us, it is not worth the productivity loss and frustration.

snehalmasne
11 Aug 2015, 1:10 AM
My company TechProceed (http://www.techproceed.com) is moving from a Java based client to an ExtJS web and mobile application. We use QTP/UFT for Java automation which is slow, buggy, expensive, and cannot get passed the DOM easily so I started investigating Siesta recently. It seems like a viable option in my book but I admit I havenít checked out the other applications.


The initial setup with Siesta took longer than expected but with its event recorder, it makes it a gratifying transition. The recorder still requires debugging.