/** * Méthode permettant de générer le jeu de test. * * @param sfWebRequest $request * @return sfView */ public function executeGenerateTestSet(sfWebRequest $request) { $this->getResponse()->setContentType('application/json'); $this->setLayout(false); $chronometre1 = new Chronometre(); $chronometre2 = new Chronometre(); $chronometre3 = new Chronometre(); $chronometre4 = new Chronometre(); $chronometre5 = new Chronometre(); $keyword = "PERFORMANCE JDT - "; // Début mesure. $chronometre1->lancerChrono($keyword . "LANCEMENT GENERATION DU JEU DE TEST"); /** @var EiCampaignExecutionGraphTable $tableExecutionGraph */ $tableExecutionGraph = Doctrine_Core::getTable("EiCampaignExecutionGraph"); /** @var EiTestSetTable $tableTestSet */ $tableTestSet = Doctrine_Core::getTable("EiTestSet"); // Récupération des éléments relatifs à la campagne (si existe). $executionId = $request->getParameter("execution_id"); $stepId = $request->getParameter("graph_id"); try { $this->getUrlParameters($request); // Choix du navigateur. $deviceChoice = $request->getParameter("device"); $testSet = new EiTestSet(); $testSet->setEiScenarioId($this->ei_scenario->getId()); $testSet->setEiVersionId($this->ei_version->getId()); $testSet->setProfileId($this->profile_id); $testSet->setProfileRef($this->profile_ref); $testSet->setModeByIde($request->getParameter("exec_mode")); $testSet->setAuthorId($this->user->getGuardId()); $testSet->setDevice($deviceChoice == null || !DevicesConst::isValid($deviceChoice) ? DevicesConst::SELENIUM_IDE : $deviceChoice); $testSet->setEiIteration($this->getRequestActiveIteration()); if ($this->ei_data_set instanceof EiDataSet) { $testSet->setEiDataSetId($this->ei_data_set->getEiDataSetTemplate()->getEiDataSetRefId()); // Début mesure. $chronometre2->lancerChrono($keyword . "COMPLETION JDD"); // Complétion du jeu de données. $testSet->getEiDataSet()->completeDataSet(); // Fin mesure $chronometre2->arreterEtAfficherChrono(); } $testSet->save(); $tableTestSet->searchRelatedEiExecutionStackAndTaggedIt($testSet, $this->ei_project); $this->getLogger()->info("----- Jeu de données à créer."); //*******************************************************************// //********** AFFECTATION TEST SET ID A LA CAMPAGNE **********// //*******************************************************************// if ($executionId != null && $stepId != null && $executionId != 0 && $stepId != 0) { /** @var EiCampaignExecutionGraph $executionGraph */ $executionGraph = $executionId != null ? $tableExecutionGraph->findOneByExecutionIdAndGraphId($executionId, $stepId) : null; // On vérifie que l'étape de l'exécution a bien été trouvée et que l'id du scénario correspond à l'ID // du scénario du JDT. if ($executionGraph != null && $executionGraph->getEiScenario()->getId() == $testSet->getEiScenarioId()) { $executionGraph->setEiTestSetId($testSet->getId()); $executionGraph->save(); } } // Génération du jeu de données pour le jeu de test. // Début mesure. $chronometre3->lancerChrono($keyword . "GENERATION JDD"); $testSet->generateTestSetDataSet(); // Fin mesure $chronometre3->arreterEtAfficherChrono(); $this->getLogger()->info("----- Jeu de données créé."); $this->getLogger()->info("----- Paramètres de blocks à créer."); // Début mesure. $chronometre5->lancerChrono($keyword . "GENERATION PARAMS BLOCK"); // Fin mesure $chronometre5->arreterEtAfficherChrono(); $this->getLogger()->info("----- Paramètres de blocks créés."); // Fin mesure. $chronometre1->arreterEtAfficherChrono(); $JSONResponse['ei_test_set_id'] = $testSet->getId(); $JSONResponse['ei_data_set_id'] = $testSet->getEiDataSetId() != "" ? $testSet->getEiDataSetId() : 0; } catch (Exception $e) { $JSONResponse['error'] = $e->getMessage(); } return $this->renderText(json_encode($JSONResponse)); }