Poster automatiquement un texte dans un formulaire

Il suffit en fait de consulter la documentation de Python 18.5 urllib -- Open arbitrary resources by URL. La bibliothèque urllib fournie en standard avec Python permet d'échanger des données avec un serveur web quelconque. Les exemples, bien que succincts, montre rapidement comment faire. On peut ainsi facilement écrire dans le bac à sable d'un wiki installé localement :

$ python
Python 2.4.4 (#2, Jan 13 2007, 17:50:26)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> params = urllib.urlencode({'page': "BacASable/edit", 'content': "test Python...", 'submit': 'save'})
>>> f = urllib.urlopen("http://localhost/wiki/index.php?page=BacASable/edit", params)

Donc urllib.urlencode prépare les paramètres à envoyer dans le formulaire et urllib.urlopen le poste. On peut difficilement faire plus simple !

NB: les champs Html utilisés sont volontairement bidon, adaptez à votre cas !

Tester le serveur web

Avec la même bibliothèque, on peut évidemment récupérer le contenu renvoyé par le serveur web :

>>> print f.read()

Il est alors simple de valider la conformité du résultat par une petite recherche de caractères par exemple. Et s'il fallait tester l'envoi de fichiers sur le serveur (upload), alors il faut utiliser le module urllib2_file qui étend les possibilités de urllib. Plus aucune raison pour ne pas écrire des tests unitaires sur les sites web en développement ou les outils de gestion de contenu ?

Non, plus aucune raison, d'autant plus qu'il existe des outils Python plus aboutis que la simple bibliothèque explorée plus haut :

Je n'ai pas pris le temps d'explorer mais il y a vraisemblablement de quoi mettre en place des procédures poussées de test des sites web. Il va vraiment falloir apprendre Python...