/** * @dataProvider onScenarioFirstRunDataProvider * * @param PHPUnit_Framework_MockObject_Stub $handlerReturnStub */ public function testOnScenarioFirstRun(PHPUnit_Framework_MockObject_Stub $handlerReturnStub) { $this->_handler->expects($this->any())->method('run')->will($handlerReturnStub); $notifications = array(); $this->_object->onScenarioFirstRun(function ($scenarioFile) use(&$notifications) { $notifications[] = $scenarioFile; }); $this->_object->run('scenario_one.jmx', $this->_scenarioArgs); $this->assertEquals(array('scenario_one.jmx'), $notifications); // scenario has been already processed, no notification should occur $this->_object->run('scenario_one.jmx', $this->_scenarioArgs); $this->assertEquals(array('scenario_one.jmx'), $notifications); // new scenario, notification should happen $this->_object->run('scenario_two.jmx', $this->_scenarioArgs); $this->assertEquals(array('scenario_one.jmx', 'scenario_two.jmx'), $notifications); // both scenarios have been already processed, nothing should be done $this->_object->run('scenario_one.jmx', $this->_scenarioArgs); $this->_object->run('scenario_two.jmx', $this->_scenarioArgs); $this->assertEquals(array('scenario_one.jmx', 'scenario_two.jmx'), $notifications); }
* versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * * @category Magento * @package performance_tests * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** @var $bootstrap Magento_Performance_Config */ $config = (require_once __DIR__ . '/framework/bootstrap.php'); $shell = new Magento_Shell(true); $scenarioHandler = new Magento_Performance_Scenario_Handler_Statistics(new Magento_Performance_Scenario_Handler_Aggregate(array(new Magento_Performance_Scenario_Handler_Jmeter($shell), new Magento_Performance_Scenario_Handler_Php($shell)))); $scenarioTotalCount = count($config->getScenarios()); $scenarioCount = 1; $scenarioHandler->onScenarioFirstRun(function ($scenarioFile) use(&$scenarioCount, $scenarioTotalCount) { echo "Scenario {$scenarioCount} of {$scenarioTotalCount}: '{$scenarioFile}'" . PHP_EOL; $scenarioCount++; }); $scenarioHandler->onScenarioFailure(function ($scenarioFile, Magento_Performance_Scenario_FailureException $failure) { echo "Scenario '{$scenarioFile}' has failed!" . PHP_EOL . $failure->getMessage() . PHP_EOL . PHP_EOL; }); $testsuite = new Magento_Performance_Testsuite($config, new Magento_Application($config, $shell), $scenarioHandler); $testsuite->run(); $scenarioFailures = $scenarioHandler->getFailures(); if ($scenarioFailures) { $scenarioFailCount = count($scenarioFailures); echo "Failed {$scenarioFailCount} of {$scenarioTotalCount} scenario(s)" . PHP_EOL; exit(1); } else { echo 'Successful' . PHP_EOL; }