I need a tool that records user action on browser and generates scripts 9preferaably in multiple formats) for me to run afterwards. What will be the best tool?
To test web applications and record it you can use the most used Selenium IDE. It is very easy to learn and documentation is also very precise. You just need to download the extension and than it's all set.
You can start a new project by providing base URL. Afterwards you can multiple test under that project. The Selenium IDE records user's actions and than integrate the actions in the form of script. You can play, pause, stop the recorded script anytime.
It also gives you the simplified form of actions in the form of Command,Target,Value and Description so that you can modify the test accordingly. Also you can save the project and tests.
It also gives Log in which you can track the working of the script. It's very easy for recording test and learning automation. You can do a lot more with it. Here's the official documentation of the Selenium IDE
Selenium IDE is best record and playback tool for web applications. The new Selenium IDE has many useful feature that makes the tool unique from all the other tools. Here is the blog which explains about the new features and it benefits. Kindly go through it.
I sadly have to break with the rest and recommend ranorex for actual record and playback. Selenium is fickle and needs a solid framework around it to produce solid tests. The selenium IDE can't provide that because it doesn't know the needs of your application.
Of course ranorex doesn't either but it's much more robust out of the box (which in my opinion doesn't make up for it's many other short comings though) and creates reasonable results.
At the end of the day I have to say though that any record and playback tool will only suffice for the most simple of cases and does rarely provide all the tools needed to build truly performant and reliable test.