1. A method of testing an application within a test framework, the method comprising: receiving a test scenario file specifying a configuration of one or more virtual machines (VMs) for testing the application; searching for one or more client devices having a hardware specification necessary to support operation of the one or more VMs according to the test scenario file; creating the one or more VMs on the one or more client devices according to the test scenario file; installing the application on at least one of the one or more VMs; executing the application on the at least one of the one or more VMs according to the test scenario file to generate an output result; and collecting data associated with the output result.