What you may need to know about oracle.adf.view.rich.automation.ENABLED flag ?
You can use oracle.adf.view.rich.automation.ENABLED in web.xml file to enable automation testing.
But you may need to be measured while setting this parameter and it's advised to keep this parameter disabled in production environment.
Why?
Because enabling the test automation parameter generates a client component for every component on the page which can negatively impact performance.
1. Result in increased page size
2. Involves in 'n' number of checks(assertions) at run time.
Now, let me share a couple of interesting observations related to this parameter.
Few teams reported saying that after enabling this parameter, some web pages started misbehaving. Most of the issues were related to popup dialog, like popup (Custom popup, List Of Value, Datepicker etc) dialog no longer respond to user actions, started throwing assertion failed errors "Incorrect use of AdfRichUIPeer.GetDomNodeForCommentComponent.AdfRichPopup" etc.
Hey...So Is this parameter that bad ? No :)
All these issues were caused by wrong code. Enabling 'automation' actually brought them to light. Enabling 'automation' in turn enables Assertion, so the system throws assertion failed errors whenever it encounters incorrect usage of components. Root cause for this error is invalid DOM tree on the client side. Current implementation doesn't communicate the exact cause while throwing assertion error, but this is getting arrested in next release.
Coding Errors
Listing some of the coding errors that caused the wrong view/page behavior when automation is enabled(shared by different teams).
1. Missing Iterator binding : Some controls were referring iterators which were missing from the page definition. If the assertion is not enabled, this error is silent and simply caused the component referring the missing iterator not to render.
2. Keeping non-rendered(rendered=false) components as partial trigger component. Work around is to use visible=false.
For example,the following jsf snippet causes Assertion failure error "Assertion failed: Incorrect use of AdfRichUIPeer....", because of the above stated reason.
3. Improper nesting of tags.
For example...
<context-param>
<param-name>oracle.adf.view.rich.automation.ENABLED</param-name>
<param-value>true</param-value>
</context-param>
But you may need to be measured while setting this parameter and it's advised to keep this parameter disabled in production environment.
Why?
Because enabling the test automation parameter generates a client component for every component on the page which can negatively impact performance.
1. Result in increased page size
2. Involves in 'n' number of checks(assertions) at run time.
Now, let me share a couple of interesting observations related to this parameter.
Few teams reported saying that after enabling this parameter, some web pages started misbehaving. Most of the issues were related to popup dialog, like popup (Custom popup, List Of Value, Datepicker etc) dialog no longer respond to user actions, started throwing assertion failed errors "Incorrect use of AdfRichUIPeer.GetDomNodeForCommentComponent.AdfRichPopup" etc.
Hey...So Is this parameter that bad ? No :)
All these issues were caused by wrong code. Enabling 'automation' actually brought them to light. Enabling 'automation' in turn enables Assertion, so the system throws assertion failed errors whenever it encounters incorrect usage of components. Root cause for this error is invalid DOM tree on the client side. Current implementation doesn't communicate the exact cause while throwing assertion error, but this is getting arrested in next release.
Coding Errors
Listing some of the coding errors that caused the wrong view/page behavior when automation is enabled(shared by different teams).
1. Missing Iterator binding : Some controls were referring iterators which were missing from the page definition. If the assertion is not enabled, this error is silent and simply caused the component referring the missing iterator not to render.
2. Keeping non-rendered(rendered=false) components as partial trigger component. Work around is to use visible=false.
For example,the following jsf snippet causes Assertion failure error "Assertion failed: Incorrect use of AdfRichUIPeer....", because of the above stated reason.
<af:commandButton id="hiddenBtn" rendered="false" text="Test"/>
<af:table var="row" id="t1" partialTriggers="::hiddenBtn">
3. Improper nesting of tags.
For example...
The below hierarchy is wrong. Because Rich Client
events will bubble up to component handlers,
so listeners should be enclosed properly within
the source component that originated the event
(Thanks to Gary Van Matre for explaining this behavior).
<af:commandLink
<af:showPopupBehavior
<af:image
<af:clientListener
Correct usage
<af:commandLink
<af:image
<af:showPopupBehavior
<af:clientListener
Great article, where is the testing information dumped? is it at the server log file or just at the log console?
ReplyDeleteJuan, this parameter actually sets up the basic infrastructure for enabling the automation. Later on, testing framework like Selenium can be used to do the actual job.
ReplyDeletehttp://www.oracle.com/technology/pub/articles/adf-development-essentials/part6.html
You are great.
ReplyDeleteMy problem was BINGO to Your No.2 :)
Thanks
Baig,
ReplyDeleteI'm glad I was able to help :)
Oracle ADF Online Training - Click Here For Enquiry - http://www.21cssindia.com/courses/oracle-adf-online-training-122.html
ReplyDeleteIntroduction to Fusion and ADF - Exploring Jdeveloper - Database Schema Design - Data Modeling with ADF Business Components - Entity Objects and Associations - View Objects and View Links - Application Modules - Programmatically Modifying Default Behavior - Business Validation - Introduction to User Interface Technologies - Understanding ADF Data bindings - Understanding ADF Task Flows - Enriching the Page Content - Understanding Layout Basics - Ensuring Reusability - Implementing Page Navigation - Handling Application Events - Managing and Validating Data - Transaction Management - Troubleshooting ADF Applications - Deploying ADF Applications (Web Logic)
I like this post and regularly I am reading your blog, so please updates more unique posts. Continue your great work.
ReplyDeleteCorporate Training in Chennai
Corporate Training institute in Chennai
Social Media Marketing Courses in Chennai
Advanced Excel Training in Chennai
Tableau Training in Chennai
Pega Training in Chennai
Oracle DBA Training in Chennai
Corporate Training in Chennai
Corporate Training institute in Chennai
I like this. because I noted many important points from this article. Please update more like this.
ReplyDeleteManual Testing Training in Chennai
Manual Testing course in Chennai
Manual Testing Training in Velachery
Mobile Testing Training in Chennai
mobile testing course in chennai
Drupal Training in Chennai
Photoshop Classes in Chennai
Manual Testing Training in Chennai
Thanks for your efforts in sharing the knowledge to needed ones. Waiting for more updates. Keep continuing.
ReplyDeleteSpoken English in Velachery
Spoken English Class in Tambaram
Spoken English Classes in omr Chennai
Spoken English Class in Ambattur
Spoken English in Chennai
It was good explanation and it looks more impressive!thank you for sharing precious information with us..
ReplyDeleteNode JS Training in Chennai
Node JS Course
IoT Courses
Ionic training course
Best Informatica Training in Chennai
IoT Training in Chennai
Xamarin Training in Chennai
excellent post
ReplyDeletepython Training near Bellandur|selenium testing courses in Bellandur
python classes in Marathahalli|selenium testing Training near Marathahalli
very good explanation
ReplyDeletepython Training near Marathahalli|python Training in Bellandur
selenium testing courses in Bellandur|selenium testing Training in Marathahalli
i like the information
ReplyDeletepython Training in Marathahalli|python Training in Bellandur
selenium testing Training near Marathahalli|selenium testing courses in Bellandur
Interesting blog!!!!
ReplyDeleteThanks for this blog.
web designing and development course training institute in Chennai with placement
PHP MySQL programming developer course training institute in chennai with placement
Magento 2 Developer course training institute in chennai
Nice blog..! I really loved reading through this article. Thanks for sharing such a amazing post with us and keep blogging...Well written article
ReplyDeletesalesforce Training in Bangalore
uipath Training in Bangalore
blueprism Training in Bangalore
Well written post with worthy information. It will definitely be helpful for all. Do post more like this.
ReplyDeleteaws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
We do offer Fast-Track Selenium Training in Gurgaon and One-to-One Selenium Training in Gurgaon. Here are the significant points we cover under this Introduction to Automation Testing, Selenium, Framework in Selenium Object Repository Recording Modes, Checkpoints, Parameterization Actions Regular Expression Recovery Scenarios Step Generator Virtual Object Debugging Descriptive Programming Basics of VB Scripting and Some real time Scenarios. Every point will be covered in for the most part practical route with examples.
ReplyDeleteFor More Info: Selenium Training in Gurgaon
I went through your blog its really interesting and holds an informative content. Thanks for uploading such a wonderful blog.
ReplyDeleteaws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
ReplyDeleteSuperb! Your blog is incredible. I am delighted with it. Thanks for sharing with me more information.
Hadoop Training in Chennai
Hadoop Training in Bangalore
Big Data Course in Coimbatore
Big data training in chennai
bigdata and hadoop training in coimbatore
Hadoop Training in Coimbatore
salesforce training in bangalore
Python Training in Bangalore
Keep sharing this blog. it look like very attractive content ....
ReplyDeleteData Science Course in Chennai
Data Science Courses in Bangalore
Data Science Course in coimbatore
Data Science Course in Hyderabad
AWS Training in Bangalore
Devops Training in Bangalore
Data Science Training in Chennai
Data Science Training in Bangalore
Data Science Courses in Coimbatore
Data Science Training in Hyderabad
Such a great blog.Thanks for sharing.........
ReplyDeleteSoftware Testing Training in Chennai
Software Testing Course in Bangalore
Software Testing Training in Coimbatore
Software Testing Course in Madurai
Best Software Testing Training Institute in Coimbatore
Software Testing Course in Coimbatore
Software Testing Institute in Coimbatore
Hacking Course in Chennai
ReplyDeleteKeep sharing this blog. it look like very attractive content ....
DOT NET Training in Chennai
DOT NET Training in Bangalore
.Net training in chennai
best dot net training institutes in bangalore
aws training in bangalore
Data Science Courses in Bangalore
DevOps Training in Bangalore
PHP Training in bangalore
spoken english classes in bangalore
DOT NET Course in Chennai