public function testGetScenarios() { $actualScenarios = $this->_object->getScenarios(); // Assert array of scenarios is correctly composed $this->assertInternalType('array', $actualScenarios); $this->assertCount(3, $actualScenarios); // Assert that the data is passed to scenarios successfully /** @var $scenario \Magento\TestFramework\Performance\Scenario */ $scenario = $actualScenarios[0]; $this->assertInstanceOf('Magento\\TestFramework\\Performance\\Scenario', $scenario); $this->assertEquals('Scenario', $scenario->getTitle()); $this->assertEquals(realpath(__DIR__ . '/_files/scenario.jmx'), $scenario->getFile()); // Assert that default config is applied $expectedArguments = [\Magento\TestFramework\Performance\Scenario::ARG_USERS => 1, \Magento\TestFramework\Performance\Scenario::ARG_LOOPS => 1, \Magento\TestFramework\Performance\Scenario::ARG_HOST => '127.0.0.1', \Magento\TestFramework\Performance\Scenario::ARG_PATH => '/', \Magento\TestFramework\Performance\Scenario::ARG_BACKEND_FRONTNAME => 'backend', \Magento\TestFramework\Performance\Scenario::ARG_ADMIN_USER => 'admin', \Magento\TestFramework\Performance\Scenario::ARG_ADMIN_PASSWORD => 'password1', \Magento\TestFramework\Performance\Scenario::ARG_BASEDIR => $this->_getFixtureAppBaseDir(), 'arg1' => 'value 1', 'arg2' => 'overridden value 2', 'arg3' => 'custom value 3', 'jmeter.save.saveservice.output_format' => 'xml']; $this->assertEquals($expectedArguments, $scenario->getArguments()); $expectedSettings = ['setting1' => 'setting 1', 'setting2' => 'overridden setting 2', 'setting3' => 'setting 3']; $this->assertEquals($expectedSettings, $scenario->getSettings()); $expectedSettings = ['setting1' => 'setting 1', 'setting2' => 'overridden setting 2', 'setting3' => 'setting 3']; $this->assertEquals($expectedSettings, $scenario->getSettings()); $expectedFixtures = [realpath(__DIR__ . '/_files/fixture.php'), realpath(__DIR__ . '/_files/fixture2.php')]; $this->assertEquals($expectedFixtures, $scenario->getFixtures()); }
/** * Compose optimal order of scenarios, so that Magento reinstalls will be reduced among scenario executions * * @return array */ protected function _getOptimizedScenarioList() { $optimizer = new \Magento\TestFramework\Performance\Testsuite\Optimizer(); $scenarios = $this->_config->getScenarios(); $fixtureSets = array(); foreach ($scenarios as $scenario) { /** @var $scenario \Magento\TestFramework\Performance\Scenario */ $fixtureSets[] = $scenario->getFixtures(); } $keys = $optimizer->optimizeFixtureSets($fixtureSets); $result = array(); foreach ($keys as $key) { $result[] = $scenarios[$key]; } return $result; }