AutoTests

Dernière modification : -


// 2007/10/14 02:50 / 90.25.113.100
Il existe des tests automatiques de WiKiss :
* non régression
* fonctionnels

!! documentation
Ces tests sont basés sur le framework [PHP SimpleTest|http://simpletest.org/]
Voir :
* [doc en fr|http://onpk.net/php/simpletest/index.php]
* [api|http://simpletest.org/api/]

!! Utilisation
Les tests sont des fichiers php stockés dans le répertoire ''/tools/tests/'' du dépot svn.
On y trouve :
* index.php : fichier chapeau de lancement des tests
* pages_test.php : code commun et tests et vérif accessibilité de la page d'accueil
* auth_test.php : tests de l'authentification
* syntaxe_test.php : tests de la syntaxe wiki
* xhtml_test.php : test la conformité XHTML via le validator du W3C
* securite_test.php : tests de protection des entrées utilisateur
* wkp_Rss_test.php : test le plugin [wkp_Rss]

Pour lancer les tests :
* récupérer le code de ceux-ci. le répertoire tools doit être au même niveau que trunk :
{{svn co svn://svn.tuxfamily.org/svnroot/wikiss/svn/tools}}
* modifier les variables dans index.php
{{/* url to the WiKiss to be tested */
$wikiss_url = 'http://192.168.0.1/wiki_dev/svn/trunk/';
/* relative path to WiKiss to be tested */
$wikiss_path = '../../trunk/';
/* url of the w3c validator */
//~ $validator_url = 'http://validator.w3.org/'; // on-line validator
$validator_url = 'http://192.168.0.1/w3c-markup-validator/'; // local validator (recommended) }}
* installer SimpleTest 1.0.1beta2 dans le répertoire tests/simpletest
{{cd tools/tests
tar xvzf simpletest_1.0.1beta2.tar.gz}}
* Pour les tests d'images, il est nécessaire de [patcher|http://sourceforge.net/tracker/index.php?func=detail&aid=1806353&group_id=76550&atid=547457] la version 1.0.1beta2 (sinon ces tests seront désactivés) :
{{cd simpletest
wget -O addimage.patch "http://sourceforge.net/tracker/download.php?group_id=76550&atid=547457&file_id=248059&aid=1806353"
patch -p0 < addimage.patch}}
* lancer les tests en ligne de commande
{{php index.php
WiKiss Tests
TestOfAccueil->testHomepage
TestOfAccueil->testUnknown
TestOfAuthent->testBadPwd
TestOfAuthent->testCookie
TestOfAuthent->testRemovePage
TestOfAuthent->testNoPassword
TestOfSyntaxe->testLinks
TestOfSyntaxe->testSyntaxe
TestOfSyntaxe->testToc
TestOfSyntaxe->testLists
TestOfSyntaxe->testImages
TestXhtml->testHomepage
TestXhtml->testCss
TestOfSecurite->testPOST
TestOfSecurite->testGET
TestWkp_Rss->testRss
TestWkp_Rss->testValidity
OK
Test cases run: 6/7, Passes: 209, Failures: 0, Exceptions: 0 }}

!! Validation XHTML
On peux utiliser le [W3C Markup Validation Service|http://validator.w3.org/] en ligne, ou l'installer en local
Il existe un [guide d'installation|http://validator.w3.org/docs/install.html]. Mais avec une debian, il suffit d'un simple :
{{aptitude install w3c-markup-validator}}
Après avoir configuré apache pour empêcher l'accès depuis l'extérieur, modifiez le fichier /etc/w3c/validator.conf :
{{# Whether private RFC1918 addresses are allowed.
Allow Private IPs = yes}}
Il ne reste plus qu'a configurer la variable ''$validator_url'' de ''tools/tests/index/php'' pour la faire pointer vers l'url du validator.

!! Validation RSS
Pour valider le flux rss du plugin [wkp_Rss] on utilise le [feedvalidator|http://feedvalidator.org/] en ligne de commande.
Voir ici les [instructions d'installation|http://feedvalidator.org/docs/howto/install_and_run.html]
Il faut alors modifier la variable ''$feedvalidator_path'' dans le fichier ''tools/tests/index/php'' pour pointer sur le répertoire de l'utilitaire. Si cette variable est vide, le test est désactivé.

!! Tests de sécurité
Utilisation de [Wapiti 1.1.6|http://wapiti.sourceforge.net/]

Restaurer pages de base :
{{tar xvzf pages.tgz pages/
tar xvzf historique.tgz historique/
rm -Rf pages historiques
svn update pages historique
# donner si necessaire les droits en écriture}}
Effacer le mot de passe de _config.php
Lancer wapiti :
{{wapiti.py http://fc/wiki_dev/svn/trunk/ -u}}

!! Tests
* Validation XHTML (en ligne ou locale), CSS
* pour chaque plugin

!! Todo
* écrire les tests manquants (beaucoup)
* Trouver un outil pour des tests de charge et d'endurance.
voir http://www.opensourcetesting.org/ pour trouver les outils.