MaxQ is a free Web FunctionalTesting tool. It includes an HTTP proxy that records your test script, and a command line utility that can be used to playback tests. The proxy recorder automatically stores variables posted to forms, so you don't have to write that stuff by hand. It is written in Java, and uses Jython and JUnit. The generated test scripts are Python.
See WebTesting