Selenium is
an excellent open source tool for automated functional testing of web
applications. We use it along with JBehave for automation and Behavior Driven Development of our large-scale
browser-based application. The tests are
run from Atlassian Bamboo and we use Sauce Labs for the cross browser testing.
This setup allows for a full regression testing of the application on all supported
browsers with very little manual testing. This automation, along with
high-coverage unit-test suite (Junit/Mockito) and puppet-based one-click
deployment, is core to our continues improvement & delivery platform.
We are also
using selenium to measure Page Load time of our Single Page Web application
(ExtJS4.0). Selenium WebDriver provides more reliable page load time then Selenium RC, as it uses
browser's native support for automation as oppose to injecting
JavaScript.
This extends
Selenium ability to act as an automated performance testing tool, it can validate ( or just log) performance of the
application, along with performing functional validation.
We went a
step further with Selenium implementation, were we used its WebDriver to
run tests on any remote client browser to understand the real
performance of the application. The user is given a test URL that runs the
application via Selenium webdriver on the client browser and collect required
diagnostic data.
Selenium has
a remote server, which allows the selenium tests to run on remote
browser. However, the remote server needs to be installed and running on
the client machine, and we did not want that. We needed a reverse
solution, where selenium tests run on a remote server and the
application runs on the local browser.
This was solved by creating a simple web app (servlet) that can identify its
browser (using user-agent request header) and based on browser type,
invoke appropriate webDriver. It would then run the application and collect
load time metrics. This metric is sent via HTTP/JSON to CouchDB. I am a big fan
of CouchDB, it provides rapid application development and
schema flexibility for tool’s feature extension.
I am
searching a way to reuse my existing Selenium scripts for Load Testing, maybe
run them through JMeter and capture response time in CouchDB. For now, we are
using HP LadRunner with AJAX extension and it is functioning well.
No comments:
Post a Comment