Updated Selenium Documentation

Company Blogs October 9, 2008 By JR Houn Staff

Hi Everyone - 

Back again for my quarterly Selenium update. First of all - a very big and hearty thanks to everyone who has expressed interest in and has helped in testing and building up Liferay. Also a thank you to those who attended the European Liferay Symposium and expressed interest in our QA processes.

Our QA process has grown immensely in the past few months and so quickly that it very quickly outgrew the small amount of documentation we had written up. I knew that once we started getting emails from people asking questions about Selenium and functional web testing that it was about time to give our documentation a massive update. So, after hiding myself away in a windowless room for several days, its finally done!

We've updated the general "Selenium Testing" article and also provided links to our other articles.

Selenium Testing should be the first step for anyone new to Selenium to familiarize yourself with the basics.

How to Run Selenium Tests is a new article that goes into detail about how exactly to run Selenium tests. Check here if you want to know how to selectively run specific selenium tests, custom tailor your test suites, or customize the testing process.

Liferay Selenium Conventions and Patterns is a short article giving examples of the basic structure for our test suites and naming patterns that are generally followed.

Selenium FAQ is an article has a summary of some of the most frequently asked questions we receive about Selenium.

Thanks everyone for your support - please feel free to change, update, add, or comment on these latest wiki articles also. :)

 -jr 

Live Blogging from the 2008 Liferay Meetup

Company Blogs August 1, 2008 By JR Houn Staff

For the benefit of everyone who may not be able to attend the Liferay Meetup today, I'll be trying to update this blog post. Any noteable information, oustanding events, questions, I'll try and update this blog throughout the day. Hope you enjoy it! If If anyone has any questions go ahead and leave them in the comments and I'll try and answer them.

9:10am - Keynote by Brian Chan and Bryan Cheung

The Brian's went over the some of the latest happenings in Liferay. Growth in the portal and its user base, new partners (Sun, Intalio, Pentaho, Icefaces), vision for the future, were some of the topics covered.

*Update 10:52am*
Attending Ray Auge's CMS Brainstorming session.
There's maybe 24 people here and Ray is currently presenting information on the three latest features for CMS: Remote Publishing, Scheduled Publishing, and Improved Workflow. Ray is currently demo'ing some of the latest features of Remote Publishing and how to schedule publishing over a period of time.

Goals for the future: improving the workflow associated with publishing Journal content.

Questions: Problems with blogs, no blogging files, no way to publish to the blog portlets. Questions about navigation in the Wiki Portlet.

Bottom Line: An informative session showcasing some of the latest features in Liferay CMS.

*Update 11:31am* - Presentation by Sun - Building Scalable Web Portals with Liferay and Sun
Contributions that Sun has made to the Liferay Community
OpenPortal projects have been integrated into Liferay
-Portlet Container - JSR-286 Implementation
-Container API & Implementation
-Webservices for Remote Portlets (WRSP) 2.0 implementation
-Simple API for Workflow
-Liferay Journal implementation now uses the Mirage (JSR 170)

Improved Liferay Bundles with Glassfish
Open SSO authentication mechanism for Liferay
Netbeans Plugins for Liferay
Working with Liferay on a continuous integration environment for testing. (Hudson)

What is currently being worked on:
Notification widget
Feature to allow users to recommend portlets to friends
Presence infrastructure service
High Availability and Scalability document
Enhancing Message Boards
FAQ Builder Portlet

Why is Sun participating in Liferay?
Liferay is the most mature and vibrant open source portal community
Will help them ultimately in adoption of Sun open source enterprise solutions.

Bottom Line on this session: Lots of interesting information about collaboration between Sun and Liferay.

Lunch! Liferay provided a great lunch for everyone present: Chicken, salsa, beans, rice, tortillas.

*Updated* 3:01pm
UI Development with Nate Cavanaugh
We've moved from one room to the upper loft area of the church because it has become quite warm here in southern California. Thank goodness for air conditioning!

Everyone benefits from having a good UI.
Portals are the next generation of Web OS. Desiging a functional UI for a multicultural world continues to be a challenge. Developing a UI requires taking bandwith, screensize, sharing the DOM, CSS, beyond thinking about just cpu and memory.
Patterns in development are keys to development:
Fundamentals in development patterns: Logical, Maintainable, repeatable.
Form fields: Using a bolded label bolded above the text field is 60% faster than any other cases.

Bottom line: Witty, humorous, and informative on principles of UI design. And a great preview of things to come in the future!

Just a quick update...

Company Blogs July 16, 2008 By JR Houn Staff

There have been some questions as to what exactly the selenium tests are testing. So, Mike and I have taken some time and taken a full inventory of every selenium automated test we run and documented their function. You can find a full list of tests and descriptions that accompany what exactly the test is doing on a new wiki page: www.liferay.com/web/guest/community/wiki/-/wiki/1071674/Selenium+Test+Inventory.

Sorry the formatting is not the best, but I wanted to get the information out to anyone who would find it useful as soon as possible. Maybe someone out there will want to make some readability improvements to the wiki article? Eh? Cheers to being better informed!

-jr out

PS. Thanks to Jorge (www.liferay.com/web/jferrer/profile) and others who made the new Liferay Wiki possible.

 

 

The State of Testing 2008

Company Blogs June 18, 2008 By JR Houn Staff

Hi everyone! It's been some time since I've last put out a blog entry; So I thought it would be an appropriate time to give everyone a little bit of an update into whats going on with Liferay and our QA testing process. In the past few months from when I last posted we were at 191 automated tests, as I write we've just about crested 400 fully automated tests testing various components of Liferay. Definitely an improvement, but it certainly feels that we're still only hitting on the tip of the iceberg! Knowing that we're still falling short of completley comprehensive tests, I'm still proud of the breadth and depth of what we've got now compared to six months ago.

Some of the latest and greatest tests we've automated include: automated testing of Staging and Publishing content, LAR imports, File uploads using DocLib and Image Gallery, Wiki tests, and Session Expiration tests. If you're looking to try running some of these tests on your own, be sure to follow some of the instructions I've written about in previous blogs and keep an eye on wiki.liferay.com/index.php/Selenium_Testing.

One of the bigger changes we've made in recent times has been changing the default mode Selenium tests are run in to:

No, no, not Wii mode. (Though I am an avid gamer and eagerly await Rock Band for my Wii.) Firefox CHROME mode! We've recently made this change to enable testing of more 'advanced' features, such as file uploading. Previously, we were unable to test any such advanced features because of Javascript security restrictions that we couldn't quite find an ideal workaround for. Fortunately even as we run in Chrome mode, we're still able to switch back Firefox regular mode and run all tests (excluding advanced tests), and even beyond that we've been able to run the automated tests under IE (though admittedly this is still buggy)! The default browser modes the tests are running in can be changed in test-portal-web.properties.

Anywho, it certainly feels like we've come a ways to get to where we're at in terms of automated testing. If anyone has any questions, advice, thoughts, or flames, please feel free to let me know.

-jr out

Plugging Plugins, For Great Justice.

Company Blogs February 8, 2008 By JR Houn Staff

I'm not sure if everyone out there surfing the interwebs has noticed, but we've been quietly releasing a lot of really, really cool themes recently. As a relatively non-technical person, the thought of downloading a .war file and deploying it to the right directory, was somewhat daunting. At one point I remember thinking, "Wouldn't it be nice if there was a quick, painless, and integrated way to install new themes and plugins?"

Well. There is.

 

Using the Plugin Installer is both easy and straightforward:

 

1. Be sure to add the portlet to your page.

 

 

2. Find a slick theme or plugin you would like to install.

 

 

3. Click Install.

 

If you'd like to check out whats going on under the hood, you can look at your app server log and watch as it installs your new plugin/theme for you.

 

 

4. If you check the Manage Pages-Look and Feel tab...

 

 

There you go! All without having to leave the comfort and [relative] security of your browser. In addition to this, Liferay will keep your plugin's up to date and monitor the repository for new versions that are released.

 

 

Keeping your plugins up to date is also just as easy as installing them!

 

 

And if you check, your app server will be doing all the heavy lifting for you.

 

 

Hope you enjoyed this little tour of the Plugin Installer. Maybe I'll take a blogging break now.

 

-jr out

 

 

Victory and Defeat in the World of Selenium

Company Blogs February 7, 2008 By JR Houn Staff

 Pass. Fail. Pass. Fail. Fail. Pass.

These words have just about defined the testing I've been doing over the past couple weeks. If perhaps by some galactic anomaly you haven't noticed, Liferay has slowly (actually, very quickly) been implementing a *brand new* Selenium testing framework. In a very short frame of time we've gone from having 0 tests to the 191 tests that are in trunk now. This number will continue to rise as Mike and I continue to flesh out the testing framework we've created.

Victory

Selenium tests have been proving themselves incredibly useful as we've run our battery of tests relentlessly against Liferay again and again. Most recently we encountered a bug which caused the plugin update notification to remain permantly hovered at the top of a page. Very annoying for obsessive types who need to see their dock all the time!

 


This bug has since been fixed. Or has it? It's resurfaced once already because of a different fix made! We have since created a new Selenium test that will automatically check this functionality and make sure that any new changes to existing code will not result in you having to know that your plugins are perpetually out of date. That's Selenium at its best, working to make sure little bugs like this don't come crawling back to haunt you!

Defeat

 

One of the awful consequences of automated testing though is when it goes wrong. And. It. Goes. Wrong. All. Day. Long.

 

 

The other hand of automated testing has been untold hours spent looking at a failed test and pondering the foreign language that it has vomitted back at me. An obsessive compulsive tester's nightmare. Not me of course. While they've been extremely useful, and will continue to be so, there always seem to be some issues that are impeding absolute testing perfection. Over the course of the past week and a half I've run into errors that consistently come up (bugs) and freakish mutations of selenium coding that have confounded me for hours.

Most of the time those freakish mutations have turned out to be bugs in Selenium's coding. From its failures to input "y's", "!'s", and ".'s" to the down right finicky way it deals with UTF-8 encoded characters. To selenium developers: I love you. But help us. Please. To the community: know that Mike and I are working our butts off to get these tests running smoothly and in a way that will minimize regressive bugs.

-jr out


Tests are not fun.

Company Blogs January 25, 2008 By JR Houn Staff

I don't think I have ever run into anyone who had a love for tests. And if I by some way I am suffering a form of amnesia and HAVE met someone who loved tests I would have derided and mocked that person as a masochist. A masochist who had no love for life. Of course a big part of our lives are determined by tests, or could even be defined by tests. Knowing this, in my former life before Life(ray), one could say I have a profound and deep distaste for all things structured.

God does have a sense of humor. (Or at least, that sense of humor can often coincide with sanctification). Because I have spent the past three weeks immersed in tests. Reading tests, writing tests, failing tests, and learning tests. Selenium tests to be more specific.

With the latest release of Liferay 4.4.0 have come a slew of automated Selenium testing scripts that any user can use and run to regressively test their developments on Liferay. Up front I will say that you may run into some problems running the tests; primarily that Selenium tests are extremely fragile, and that is by design. If you have any feedback on the tests, ways to streamline or improve them, reduce bugs within the tests please feel free to drop me some mail at jhoun@liferay.com. Following are some directions for running the tests that I have mirrored up on the Liferay Wiki.

 

How to Run Selenium Tests

Before running a Selenium test there are some prerequisites that must be met before beginning. Be sure to add the following line to your portal-ext.properties file:

captcha.max.challenges=-1

Changing the captcha.max.challenges to -1 will eliminate any random text verifications that Selenium is unable to deal with.


If you would like to alter the default testing environment you can alter the test-portal-web.properties file located in "/build/portal-web/test/". If you do decide to alter the default testing environment you can make create a test-portal-web-ext.properties and override any of the following:

#browser.type=*iexplore
browser.type=*firefox
portal.url=http://local host:8080
selenium.host=localhost
selenium.port=4444

There are three components that must be running in order to run the Selenium Test Suite:

  1. Tomcat
  2. Selenium Server
  3. Selenium RC

Start your application server. (Tomcat)

 Image:Croppedtomcat.JPG

Start Selenium Server

1. In the command line navigate to the /build/lib/development directory.

2. Execute the following line - java -jar selenium-server.jar

Image:Croppedserver111.JPG 

Selenium server is now running and listening on port 4444.

Begin the test

  1. In a new command line window navigate to the /build/portal-web/ directory.
  2. Execute the following line:
ant test

Image:Anttest.JPG

Please be aware that this test simulates the default omni-admin Joe Bloggs and will create at least 60 pages (one per portlet) in that private community.

This should start the test; you can monitor the commands that are being passed to the browser by observing the Selenium Server command line window, or you can directly view the commands being executed on the Firefox browser that is opened.

-jr out

Showing 7 results.
Items 20
of 1