Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2845 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Quel langage pour intérroger des pages web?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Quel langage pour intérroger des pages web?

n°2265322
the_skwi
Posté le 04-09-2015 à 13:54:04  profilanswer
 

Bonjour,
 
Je suis aujourd'hui à la recherche d'un langage me permettant de tester si une page web répond bien, et dans certains cas regarder sur la page si un champ a une valeur particulière.
Aujourd'hui ces étapes sont réalisées manuellement, ceci prend du temps et n'apporte aucune valeur ajoutée.
 
Je "maitrise" le VBA, et j'avais précédemment réalisé une fonction permettant d'injecter du contenu sur une page html, en VBA, en analysant l'arborescence de la page.  
Cependant, je suis certain qu'il existe des langages plus appropriés pour réaliser ce type de manipulations.
 
J'avais vu quelques langages utilisant une syntaxe SQL pour interroger les différentes balises avec les noeuds parents et enfants, mais je ne me souviens plus de leurs noms.
 
Si quelqu'un a un langage à me proposer me permettant de réaliser ceci, je suis preneur! Et si en prime il y a quelques exemples, ça serait merveilleux :)
(et pour abuser, si possible quelque chose de "léger" niveau installeur, que je puisse limite coder avec notepad++, car les usines genre Eclipse, j'aime pas :3)
 
 
Merci.

mood
Publicité
Posté le 04-09-2015 à 13:54:04  profilanswer
 

n°2265330
kao98
...
Posté le 04-09-2015 à 15:03:01  profilanswer
 

Selenium est un outil complet qui permet d'automatiser des tests d'IHM (un plugin simple à utiliser pour Firefox existe). C'est très complet.
 
Casper.js propose une approche différente, programmable à l'aide de JavaScript. Je l'apprécie beaucoup.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°2265340
rufo
Pas me confondre avec Lycos!
Posté le 04-09-2015 à 17:12:16  profilanswer
 

Tu peux tester les libs PHP du genre Snoopy ou SimpleTest. SimpleTest permet de faire des tests unitaires et d'intégration ;)
 
http://simpletest.org/fr/start-testing.html
 
Avec, tu peux manipuler des formulaires web, vérifier la présence d'une chaîne de caractère dans la page, te connecter à une BD (enfin ça, c'est PHP de base)... Moi, je m'en suis servi pour faire du développement piloté par les tests (test driven).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2265466
philippe06
Posté le 07-09-2015 à 13:18:57  profilanswer
 

the_skwi a écrit :

Bonjour,

 

Je suis aujourd'hui à la recherche d'un langage me permettant de tester si une page web répond bien,

 

Une simple librairie http peut faire l'affaire. Ou cURL ou wget (sous linux).

 
the_skwi a écrit :


et dans certains cas regarder sur la page si un champ a une valeur particulière.

 

Une librairie type mechanize (http://wwwsearch.sourceforge.net/mechanize/ pour python et perl) ou simpledrom (http://simplehtmldom.sourceforge.net/ pour php) peut venir à bout des cas difficiles.

 

D'expérience pour faire du monitoring, la simple recherche d'une chaîne de caractère sans parsing html est très souvent suffisant.

 
the_skwi a écrit :


Aujourd'hui ces étapes sont réalisées manuellement, ceci prend du temps et n'apporte aucune valeur ajoutée.

 

Je "maitrise" le VBA, et j'avais précédemment réalisé une fonction permettant d'injecter du contenu sur une page html, en VBA, en analysant l'arborescence de la page.
Cependant, je suis certain qu'il existe des langages plus appropriés pour réaliser ce type de manipulations.

 

J'avais vu quelques langages utilisant une syntaxe SQL pour interroger les différentes balises avec les noeuds parents et enfants, mais je ne me souviens plus de leurs noms.

 

Si quelqu'un a un langage à me proposer me permettant de réaliser ceci, je suis preneur! Et si en prime il y a quelques exemples, ça serait merveilleux :)
(et pour abuser, si possible quelque chose de "léger" niveau installeur, que je puisse limite coder avec notepad++, car les usines genre Eclipse, j'aime pas :3)

 


Merci.

 

Sur un serveur linux/unix, un script perl ou python lancé en crontab serait à mon sens la meilleure solution.

 

J'avais aussi réalisé un petit parser en php qui récupérait les images d'un fil hfr y a pas si longtemps et les répertoriait dans une table. J'avais choisi le php car j'avais un hébergeur gratuit qui supportait le php et simpledom nécessitait un simple "include" sans installation particulière.

 

En gros la "trame" était:

 


Code :
  1. include ("../lib/simple_html_dom.php" );
  2. foreach($tab_cpt as $cpt) //pour toutes les pages à controler ...
  3. {
  4. echo "$url_de_base$cpt.htm"; //url de la page hfr à parser
  5. $html = file_get_html("$url_de_base$cpt.htm" );
  6. foreach($html->find('table') as $e)
  7. {
  8.  $poste=array();
  9.  $poste['page']=$cpt;
  10.  $poste['url']="";
  11.  $poste['posteur']="";
  12.  $poste['post']='';
  13.  if($e->class=="messagetable" )
  14.  {
  15.   $part1=$e->find("td" );
  16.   foreach ( $part1 as $p)
  17.   {
  18.    if ($p->class=="messCase1" )
  19.    {
  20.     $e2=$p->find("b" );
  21.     foreach ($e2 as $e3)
  22.     {
  23.      if ($e3->class=="s2" )
  24.      {
  25.       $auteur=str_replace("​","",$e3->innertext);
  26.       $poste['posteur']=$auteur;
  27.      }
  28.     }
  29.    }
  30.    else if ($p->class=="messCase2" )
  31.    {
  32.     //echo "messCase2";
  33.     $poste['post']="";
  34.     $part2=$p->find("div" );
  35.      foreach ( $part2 as $p)
  36.      {
  37.      if ($p->class=="toolbar" )
  38.      {
  39.       //echo "on recupere la date du post";
  40.       $e2=$p->find("div" );
  41.       foreach ($e2 as $e3)
  42.       {
  43.        if ($e3->class=="left" )
  44.        {
  45.         $tmp=preg_match_all("/(\d+)-(\d+)-(\d+)[^0123456789]*(\d+):(\d+):(\d+)/",$e3->innertext,$out);
  46.         if ($tmp)
  47.         {
  48.          $date_post=sprintf("%04d-%02d-%02d %02d:%02d:%02d ",$out[3][0],$out[2][0],$out[1][0],$out[4][0],$out[5][0],$out[6][0]);
  49.          $poste['date_post']=$date_post;
  50.         }
  51.         //Post顬e 10-05-2011 ࠱2:52:59
  52.        }
  53.       }
  54.      }
  55.      else
  56.      {
  57.       $content = str_replace($baadchar,$goodchar,strtolower($p));
  58.       $poste['post'].=$content;
  59.       $images=$p->find("img" );
  60.       foreach( $images as $img)
  61.       {
  62.        $poste['url']=$img->src;
  63.        if (strstr($poste['url'],"forum-images.hardware.fr" )===FALSE)
  64.        {
  65.         $sqltest2="select * from images2 where `url`='".mysql_real_escape_string($poste['url'])."' and `date_post`='".mysql_real_escape_string($poste['date_post'])."'";
  66.         $recordstest2=select_records($sqltest2);
  67.         if (!$recordstest2)
  68.         {
  69.          $sqltest="select * from images2 where url='".mysql_real_escape_string($poste['url'])."'";
  70.          $recordstest=select_records($sqltest);
  71.          $poste['#date_insertion']='now()';
  72.          $poste['post']=nettoietag($poste['post']);
  73.          if (!$recordstest)
  74.          {
  75.           $poste['repost']=0;
  76.           insert_record("images2",$poste);
  77.          }
  78.          else
  79.          {
  80.           $poste['repost']=1;
  81.           insert_record("images2",$poste);
  82.          }
  83.         }
  84.        }
  85.       }
  86.      }
  87.      }
  88.      if (!isset($poste['repost']))
  89.      {
  90.       //post sans image
  91.       $poste['url']="";
  92.       $poste['repost']=2;
  93.       $poste['post']=nettoietag($poste['post']);
  94.       insert_record("images2",$poste);
  95.      }
  96.    }
  97.   }
  98.   echo "<br/><br/>";
  99.  }   
  100. }
  101. }


Message édité par philippe06 le 07-09-2015 à 13:19:43

---------------
Aimer les femmes intelligentes est un plaisir de pédéraste. (Charles Baudelaire) - Vous vulgarisez :o (Jean-Kevin Dubois)
n°2265496
the_skwi
Posté le 08-09-2015 à 09:41:24  profilanswer
 

Merci pour vos réponses. J'ai oublié de préciser que je suis sur un poste Windows.
 
J'ai regardé côté Selenium en mode plugin firefox, ça semble faire l'affaire mais ça reste "basique". Un peu galère rien que pour vérifier une date. De plus c'est du séquentiel, c'est donc dommage de tester les différents liens les uns à la suite des autres au lieu de tout faire en simultané.
 
Je reviens sur ma décision de coder avec le bloc note, vu que je ne connais aucune fonction en javaScript ça serait pratique d'avoir un outil permettant de montrer les fonctions possibles :3

n°2265498
rufo
Pas me confondre avec Lycos!
Posté le 08-09-2015 à 11:30:15  profilanswer
 

Et SimpleTest, ça te branche pas ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2265501
the_skwi
Posté le 08-09-2015 à 13:35:43  profilanswer
 

rufo a écrit :

Et SimpleTest, ça te branche pas ?


 
Oui et non :D
Oui car je préfèrerai développer dans un langage "propre", sur le plugin Selenium le code que j'ai ressemble à une succession de balises HTML, je ne peux pas (ou alors je n'ai pas trouvé comment) faire une belle fonction mais obligé de décomposer chaque étape. Exemple :

Code :
  1. <tr>
  2. <td>clickAndWait</td>
  3. <td>link=Services</td>
  4. <td></td>
  5. </tr>
  6. <tr>
  7. <td>storeEval</td>
  8. <td>tabJours=['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Venderdi', 'Samedi','Dimanche'];</td>
  9. <td></td>
  10. </tr>
  11. <tr>
  12. <td>storeEval</td>
  13. <td>tabMois=['janvier', 'février', 'mars', 'avril', 'mai', 'juin','juillet','août','septembre','octobre','novembre','décembre'];</td>
  14. <td></td>
  15. </tr>
  16. <tr>
  17. <td>storeEval</td>
  18. <td>d=new Date();d=tabJours[d.getDay()-1]+&quot; &quot;+(&quot;0&quot; + d.getDate()).slice(-2)+&quot; &quot;+tabMois[d.getMonth()]+&quot; &quot;+d.getFullYear()</td>
  19. <td>realDate</td>
  20. </tr>
  21. <tr>
  22. <td>verifyText</td>
  23. <td>id=today</td>
  24. <td>${realDate}</td>
  25. </tr>


 
Et le non car je ne sais absolument pas comment "commencer". De plus je n'utiliserais même pas 1% des capacité de ce langage, c'est globalement pour simuler des clics sur une page et vérifier que la page s'affiche bien.
 
Si tu as un tuto pour expliquer ce que je dois installer sur mon poste et comment exécuter le shmilblick, je suis preneur! Je pourrai réaliser une solution plus "propre" et ça m'apprendra quelque chose.

n°2265502
rufo
Pas me confondre avec Lycos!
Posté le 08-09-2015 à 14:05:19  profilanswer
 

Pour la prise en main rapide de SimpletTest : http://www.simpletest.org/fr/start-testing.html
Je te suggère de regarder l'ex intitulé "Tester une page web" :whistle:  
 
Sinon, vu que tu connais VBA, tu peux regarder l'outil AutoIT ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2265533
the_skwi
Posté le 09-09-2015 à 11:49:13  profilanswer
 

Je préfère apprendre un nouveau langage que de réutiliser du VBA.
 
Avec Selenium les actions de bases sont réalisées, mais je préfère aller plus loin. SimpleTest semble pas mal pour ça. Vu que je ne connais pas spécialement le PHP, ni les outils pour développer efficacement, si vous en avez je suis preneur.  
Pour l'instant je suis un tuto sur un autre site, j'vais avoir besoin de notepad++ pour le code, et WampServer pour tester.

n°2265543
rufo
Pas me confondre avec Lycos!
Posté le 09-09-2015 à 15:36:36  profilanswer
 

Notepad++ et Wampserver effectivement.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Quel langage pour intérroger des pages web?

 

Sujets relatifs
Formulaire de devis en PHP sur plusieurs pages web ?Probleme exercice de Langage machine
projet Conway's Game of Life en langage CProgrammer un dictionnaire bilingue en langage C
Quel langage choisir ?[Res]Problème d'encodage sous fvwm des pages de manuels Gnu/Linux.
choisir un langageExtraction VBA de données depuis pages HTML
[algo] Glissando de lien (num.) de pagesLangage Mobil Portabilité
Plus de sujets relatifs à : Quel langage pour intérroger des pages web?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR