12 Jun 2013 6:37 AM #1
Test Automation support for ExtJS applications
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.
14 Jun 2013 5:19 AM #2
- Join Date
- Mar 2007
- Gainesville, FL
- Vote Rating
Which kind of test are you wanting?Mitchell Simoens @SenchaMitch
Sencha Inc, Senior Software Engineer
Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/
Need more help with your app? Hire Sencha Services firstname.lastname@example.org
Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is in print!
When posting code, please use BBCode's CODE tags.
17 Jun 2013 12:38 AM #3
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.
17 Jun 2013 11:45 PM #4
You may want to look at the automated functional GUI testing tool RIATest.
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":
ExtTreePanel("#tree2")->ExtRow("Custom Ext JS"));
(Disclaimer: I am a RIATest team member).
5 Nov 2013 4:05 PM #5
I had the same issue when dealing with automating Ext JS, which is why I created HTML5 Robot.
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.
click extjsdialogbutton by text "OK"
23 Jan 2014 6:44 AM #6
TestComplete works with extJS
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.
14 Feb 2014 6:57 AM #7
Stay away from RIATest -- buggy product and terrible support
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.
11 Aug 2015 1:10 AM #8
My company TechProceed 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.Thanks!