I am very much confused which tool to be used for a web based project on what basis we should choose an automation tool?
You must consider what are your needs, and measure those needs against tools which can meet most or all of those needs.
When I consider a test automation tool, here are some general needs I measure the potential tools against: http://www.allthingsquality.com/2010/04/things-i-like-to-have-in-my-test.html
When choosing any tool you need to evaluate the options available to you.
First step is to get a list of tools that are out there (google is your friend).
Before I begin evaluating I tend to make a list of criteria and give each tool a mark out of 10, for example;
Features – Does the tool offer the features you think you will need?
Usability – How usable is the system?
Scalability – As the number of tests you are performing increases, can the tool support this?
Learning curve – Does the tool use existing technologies/languages you are familiar with or do you need to learn again from scratch?
Cost – Always important!!!
Community Support – If you need help, are there questions on Stack ;)
Integration – will the tool integrate with other tools, eg will it run on Jenkins?
Hopefully this will help you narrow down your options to one or two.
At this point I would tend to suggest putting together a small proof of concept to get a feel of the tool. No matter how appealing the tool's website or demo is, don't put all your eggs in one basket until you have got it working yourself!
If you have knowledge of programming language like java, C# etc., you can go for Selenium Webdriver or Selenium RC. Its very nice tool which is widely used, with many functions to automate web based applications. (And its open source too).
If you need tool with less programming headache, you can use Robot Framework, Which internally uses Selenium webdriver itself. But its Keyword driven, you can save your self from coding.
Hope this will help you.
- I always choose automation tool basing on the main programming language of the product under test
- almost all of them provide record-and-replay feature which simplifies and speeds up the process of tests development
- protocol-based tests execution speed is much higher
- running tests in parallel is something performance testing tools support out of the box
- you can always use either full test or lesser subset for identifying performance bottlenecks and ensure that there are no degradations caused by new functionality or bug fixes
- wider protocols support
Use free and open source software where possible as:
- you can always look into sources to see how this or that bit is implemented
- if some feature is missing, incorrectly works or isn't optimal - you can implement or change required functionality and contribute your improvements
Hopefully above approaches will help you to identify the best strategy and narrow down tools list to manageable and reasonable size.
See Open Source Load Testing Tools: Which One Should You Use? guide for example research of identifying a test tool.