1. A computer-based method of performing an automated test of an computer application in a cloud environment, the method comprising: a) receiving a specification of a test scenario, the test scenario including a plurality of commands; b) automatically determining a number of virtual machines to deploy; c) deploying the determined number of virtual machines; d) initializing a test agent on each deployed virtual machine; and e) for each test agent, providing to the test agent one or more commands from the test scenario and selectively providing one or more additional commands based on a result of executing the one or more commands.