In previous months I’ve been playing with various cloud platforms, learning the basics, what’s different and what not, between them and comparing with more ‘traditional’ developments.
When I start to work in a new framework or tool, I tend to use the same set of reference applications to start. Simple stuff for a simple start. With that I pretend to concentrate in the specifics of the f/t at hand, without dealing at the same time with whatever idea I had and was building.
The first app, as you can see in previous posts, is the simplest of Spring+Hibernate use cases, CRUD on a simple, two-field entity. This one is good to start but too simple to be really representative o an actual development.
For the second iteration I work with Spring Pet Clinic reference application: an exemplar use of Spring Framework created by Spring team a few years ago. To my surprise, Pet Clinic didn’t work out of the box with the latest Tomcat release, and while looking at what was happening I found out a few things worth sharing about the greatest and latest Spring and Tomcat.
In this post I will walkthrough my findings with Pet Clinic and what enhancements I did to make it ready for 2012 and beyond.
Continue reading “Resource Redirection in Spring Pet Clinic Application for Tomcat 7 and Cloud Platforms”
Since my previous posts about Java cloud platforms I wanted to expend some time with Heroku and compare with the others.
Heroku is a veteran among the cloud platforms, but it’s not until a few months ago that they launched a Java offering.
In this post I will share my experiences starting with Heroku and making an existing application to work on it.
Continue reading “First Steps with Heroku – The New-Old Boy in the Cloud”
For some time I’ve been willing to record and upload a short video showing how Selenium works, working in a grid with several computers/browsers and an Android table as well.
For this short demo I’ve used the Spring PetClinic reference application, tweaked to work with Spring 3.0.6 and Tomcat 7.0.22.
This short video is slightly above one minute long. Hope you enjoy it!
In part 1 in the series (read it here) I discussed about Selenium, the widely used tool for browser test automation, and I showed how easy is to setup a testing grid with multiple OS and browsers. In part 2 (read it here) I showed how to leverage WebDriver API to create and execute tests distributed across the grid that was created.
Now in part 3 I will show how to execute Selenium tests under a Continuous Integration process with Maven, Cargo and Jenkins, and how to gather code coverage metrics for those tests using Sonar and JaCoCo.
Continue reading “Test Automation with Selenium WebDriver and Selenium Grid – part 3: Continuous Integration”
In part 1 in the series (read it here) I presented Selenium, a widely known tool for browser test automation.
Starting with Selenium 2, the most important components from the suite are Selenium WebDriver and Selenium Grid. In part 1 I showed how easy is to setup a testing grid with multiple OS and browsers. Now in part 2 I will show how to leverage WebDriver API to create and execute tests.
Continue reading “Test Automation with Selenium WebDriver and Selenium Grid – part 2: Creating and Executing Tests”
For a long while I’ve been “dying to play” with Selenium (www.seleniumhq.org and code.google.com/p/selenium/). I’ve heard and read very good things about this tool from colleagues and from the blogosphere.
Selenium is, in short, an open source tool to automate web browser interactions. A primary use case is, of course, browser test automation.
Selenium has greatly evolved with time, specially since the 2.0 release when the legacy Selenium project merged with Google’s WebDriver. Nowadays, Selenium offers a wide range of programming languages supported to write the tests, an impressive browser compatibility list, the ability to record tests from user interactions and, above it all in my opinion, the ability to re-execute tests across a grid of machines with various operating systems, browser families and versions.
Although Selenium seems to be primarily chosen for functional/regression test automation, it’s also a great choice – precisely because of the grid feature – for cross-browser compatibility testing: ensuring in an easy, cost-effective way, that our web applications are usable in all sorts of operating systems and browsers.
In this and forthcoming posts in a short series I will share my experiences setting up a Selenium Grid, building some automated tests for a simple Spring application, re-executing them from Eclipse IDE and finally re-executing them in continuous integration (including code coverage) with Maven, Cargo, Jenkins, Sonar and JaCoCo.
Continue reading “Test Automation with Selenium WebDriver and Selenium Grid – part 1: Setting Up the Grid”
This blog post is the third one in a series about Integration Tests with HtmlUnit. The first post, titled “Automating Assembly and Integration Tests with HtmlUnit”, showed how to write integration tests of web UI applications using HtmlUnit. That post can be read here. The second post, titled “Integrate HtmlUnit Based Tests with Apache Maven and Cargo”, showed how to automate the execution of HtmlUnit tests using Maven and Cargo plug-in. That post can be read here.
Finally, in this post we are going to show how to measure code coverage of HtmlUnit tests using Sonar, the popular Continuous Quality Assurance tool, and JaCoCo, a very interesting code coverage tool based on JVM agents instead of instrumenting bytecodes.
Continue reading “Measure Code Coverage of HtmlUnit Based Tests with Sonar and JaCoCo”