Exemple #1
0
 /**
  * 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));
 }