For those who don't know what Selenium is (or forgot, like me), it is a system for testing web applications. It includes the following components:
+ Selenium IDE (Firefox add-on for creating and replaying tests)
+ Selenium Remote Control (run tests in multiple browsers and platforms)
+ Selenium Grid (run tests in parallel across multiple servers)
I'm not affiliated with the project, I just wanted to provide a quick intro for those in a hurry to learn a bit about it.
I often wonder why dev blogs rarely include a link to the main site. As often as not, I have to type in the name or search on it because the blog masthead doesn't provide any background information or navigational aids to the new visitor.
A couple of years ago my company was in the process of purchasing QTP, an expensive testing product. I had suggested Selenium instead of QTP, but for whatever reason we went with QTP.
But we couldn't afford QTP licenses for everyone who wanted or needed to use it, so some people started writing tests in Selenium instead. Two years on, we're getting rid of QTP and switching entirely to Selenium. We're not doing it just cost reasons though, people just like using Selenium much more than QTP.
Hats off to the Selenium team for such a excellent tool!
Looking forward to trying it out. Many, many thanks for providing such an excellent tool. I was writing automated tests before Selenium, and it has been a seismic change in browser automation. Between you guys, JMeter, and Robot there really is a credible open source automated testing stack now.
I used the 1.x versions of Selenium pretty heavily at my last job and the JavaScript selectors could get pretty hairy (even with jQuery).
Does anyone with experience with Selenium 2.0 know how much of a boost WebDriver gives for performance? Especially doing tests of a SPA with a lot of AJAX could get hairy and slow.
Selenium has always been one of my favorite projects. You can tell someone has been thru the stress-test wringer if they know its ins and outs. The newer grid stuff looks great, although I haven't played with it yet.
I would look at Capybara before using webdriver directly in Ruby. With Capybara, with one line of code, you can change from using webdriver, to using the native rack driver, or a full headless browser setup like capybara-webkit, or akephalos for headless httpunit (which runs javascript).
Last summer, I took over a troubled Ruby on Rails project; the code was a mess, overly complex and bug-ridden, lack of meaningful unit tests, and an unhappy client.
I needed integration tests. After trying and failing with Cucumber, I switched to Selenium IDE.
A year later, I'm very happy with Selenium. The project is turning around and I sense the client is warming up to me.
The existing codebase, and the fact that I'm charging by the hour on a project who's budget is 3x initial estimates.
The site was, and still is, stuck at Rails 2.1.1. And, at the time, I was not using RVM or Bundler. Meanwhile, I was putting out fires on a daily base on a live system.
With Cucumber, I was unable to run even a simple feature against the codebase. I'd get an exception, fix it somehow, then get another. After 20 minutes of that, I started looking for other options.
And on top of that, I did not know the codebase: brand new project.
The quickest path to stable ground was Selenium IDE. Just hit the record button and start writing integration tests. I quickly gained enough confidence to change the underlying code. And I was working within a budget of only a couple thousand dollars a month.
What I've grown to love about Selenium, as opposed to Cucumber, is its complete separation from the site it's testing. An integration testing framework can take a long time to master; I'd rather 1) minimize that time, 2) learn a tool that can be applied to as wide a variety of projects as possible.
Was using 2.0beta3 of Selenium2 with IphoneDriver for around 4 months and it has been great. The quality was very good that I don't see a need to rush and switch to the actual 2.0 release :P Great work to the team!
For those who don't know what Selenium is (or forgot, like me), it is a system for testing web applications. It includes the following components:
+ Selenium IDE (Firefox add-on for creating and replaying tests) + Selenium Remote Control (run tests in multiple browsers and platforms) + Selenium Grid (run tests in parallel across multiple servers)
I'm not affiliated with the project, I just wanted to provide a quick intro for those in a hurry to learn a bit about it.