View Issue Details

IDProjectCategoryView StatusLast Update
0001059Common[All Projects] Generalpublic2016-04-08 21:08
ReporterXenostomAssigned ToXenos 
PrioritynormalSeverityfeatureReproducibilityN/A
Status CloseResolutionfixed 
Product Version 
Target VersionFixed in Version1.2.0 
Summary0001059: Ajouter les tests Selenium au Common
DescriptionIl faudrait que je centralise le système de tests de Selenium dans le projet Common.
L'intérêt serait de me permettre d'ajouter des tests Selenium à n'importe quel projet, rapidement. Cela n'obligera pas à faire tous les projets en tests driven, mais au moins, j'aurai un seul endroit où la structure de tests sera définie (plutôt que 6 actuellement...)
TagsNo tags attached.
Attach Tags

Relationships

child of 0001058 CloseXenos Ajouter un code coverage aux tests Selenium 

Activities

Xenos

Xenos

2016-03-20 18:14

administrator   ~0001626

C'est en place. Cela requiert d'indiquer l'URI de base du projet, pour que Selenium sache quel hôte contacter.

Du coup, c'est opérationnel sur tous les projets: il suffit de créer un dossiers sources/tests/selenium dans lequel on mets les différentes suites de tests à exécuter.
Une suite de test est un dossier avec un nom un peu explicite (genre "gamebook" pour les tests du gamebook dracca) contenant un "TestsSuite.html" qui liste les tests à exécuter. Chaque test est alors stocké dans un .html dédié, dans ce même dossier. Toutes les suites de tests sont alors lancées par le run-selenium-tests.sh
Chaque test suite a son propre rapport HTMl, dans tmp/selenium.

Les tests sont lancés lors d'un déploiement. Si l'un des tests foire, alors le rapport est automatiquement ouvert et on peu voir ce qui a foiré. Le déploiement est également stoppé.

J'ai choisi de faire des tests au format HTML car c'est le format de Selenium IDE, et que je peux facilement l'éditer avec NetBeans.
Xenos

Xenos

2016-03-20 18:15

administrator   ~0001627

Last edited: 2016-04-08 21:08

Egalement, comme ce ticket ajoute les options "--skip-selenium" mais surtout "-u baseURI" permettant d'indiquer l'URI de base du projet pour Selenium, je vais en profiter pour refactorer un peu le ApacheBenchmark (0001066): au lieu d'indiquer la base URI dans le XML, on utilisera directement celle donnée par l'option -u.
Xenos

Xenos

2016-04-01 14:47

administrator   ~0001658

Last edited: 2016-04-08 21:08

Suite à l'utilisation des tests Selenium sur Dracca, je m'aperçois de quelques défauts dans mon système, que j'ai corrigés. Maintenant:

• Un fichier www.xml déclare tous les fichiers qui peuvent se trouver dans le dossier www/ via des regex (grep pattern). Ainsi, le système liste tous les fichiers et dossier de www/ et vérifie que chacun d'eux est bien autorisé par ce www.xml et si non, le système stoppe les tests Selenium.
Cela m'a évité de déployer des fichiers cassés ("p.html" au lieu de "p0.html" dans Dracca) ou mal nommés ("img/Large-planete.png" au lieu d'être en minuscules). Ce sera donc intéressant à long terme car cela m'assure de ne pas avoir des "merdes" qui traînent dans le www. De plus, si une règle de ce www.xml ne correspond à aucun fichier, alors une alerte est levée (= peut-être manque--t-il un fichier? Ou bien cette règle est inutile)

• Les tests Selenium sont exécutés

• S'ils réussissent, on vérifie TOUT ce que Apache a dû traiter. Si une URI demandée à Apache n'est pas déclarée dans uris.xml alors une erreur est levée, car le système ne sait pas quelle réponse HTTP était attendue. Ainsi, il faut déclarer toutes les URIs que Apache doit traiter dans uris.xml, en indiquant le fichier qui doit avoir été servi (@file) pour chaque uri (@uri) ainsi que le statut HTTP correspondant (@status) et le poids de cette uri (@weight) qui permet de savoir quelle page a le plus d'importance en termes de performances.
Si une même URI peut être liée à plusieurs fichiers ou status, alors il faudra autant de lignes dans uris.xml que de fichier/status différents.

Donc, www.xml me permet de dire ce qui peut se trouver dans www/ alors que uris.xml dit ce qu'Apache doit avoir répondu aux différentes requêtes.

Le premier m'a déjà permis de repérer des fichiers qui n'avaient pas à être dans www/ alors que le second m'a déjà permis de voir qu'une page répondait une HTTP 404 au lieu d'une HTTP 200.

Issue History

Date Modified Username Field Change
2016-03-11 11:01 Xenostom New Issue
2016-03-11 11:01 Xenostom Status New => Understood
2016-03-11 11:02 Xenostom Relationship added child of 0001058
2016-03-20 15:39 Xenos Assigned To => Xenos
2016-03-20 15:39 Xenos Status Understood => In progress
2016-03-20 18:14 Xenos Note Added: 0001626
2016-03-20 18:14 Xenos Status In progress => Close
2016-03-20 18:14 Xenos Resolution open => fixed
2016-03-20 18:15 Xenos Note Added: 0001627
2016-04-01 14:47 Xenos Note Added: 0001658
2016-04-01 17:34 AutoUpdater Fixed in Version => 1.0.7
2016-04-08 21:08 AutoUpdater Fixed in Version 1.0.7 => 1.2.0