3.36 Procédures-test
Ce chapitre contient les procédures de test
3.36.1 - Campagnes de test
Pour tout tester, il est nécessaire de réaliser plusieurs campagnes de test :
- C1/ La vérification du build
- C2/ Les tests du système sur le poste local
- C2/ Les tests du système sur WSL
3.36.2 - C1 La vérification du build
Cette campagne vérifie que tous les éléments de build et de documentation sont présents :
- 1/ mettre à jour les sources sur votre poste
- 2/ supprimer le répertoire 1-conception\static\documentationgeneree
- 3/ recompiler l’ensemble du projet en exécutant, depuis la racine du dépôt, la commande
mvn clean install -P qualimetrie (sans skip ni -T 1C)
- 4/ vérifier la bonne génération du site avec les répertoires :
TODO à compléter
3.36.3 - C2 Les tests du système sur le poste local
Cette campagne vérifie le code Java pur à partir des scripts SH présents dans le répertoire 2-code/socle :
- 0/ prérequis : être en mesure d’appeler les APIs SP
- 1/ recompiler l’ensemble du code (répertoire 2-code)
- 2/ démarrer l’ensemble des applications en exécutant, depuis le répertoire 2-code/socle, les commandes
. ./outils.sh PROXY TRUE
. ./demarrerTout.sh
- 3/ exécuter tous les tests décrits au chapitre §3.36.5
- 4/ modifier les URLs des APIs dans le code des applicatifs construits :
- 5/ démarrer un serveur WEB simpliste exposant les applicatifs avec la commande
npm run http-start
- 6/ exécuter tous les tests décrits au chapitre §3.36.6
3.36.4 - C2 Les tests du système sur WSL
Cette campagne vérifie le code Java déployé via le projet IAS :
- 1/ recompiler l’ensemble du code (répertoire 2-code)
- 2/ démarrer les machines WSL (cf. §4.2.2)
- 3/ démarrer tous les applicatifs (cf. §4.2.2)
- 4/ mettre à jour la documentation des playbooks
- Créer les images SVG en exécutant, dans la machine UbuntuAnsible, depuis le répertoire 2-code/ias/ansible, la commande
for f in *.yml; do ansible-playbook-grapher --include-role-tasks $f; done
- Copier les images générées dans le répertoire 1-conception\static\documentationgeneree\ias
- Vérifier leur bon affichage dans la page
- 5/ exécuter tous les tests décrits au chapitre §3.36.5
- 6/ charger la base de données MongoDB en déclarant, avec l’application socle-admin toutes les démarches à tester
- 7/ exécuter tous les tests décrits au chapitre §3.36.6
- 8/ vérifier que la documentation est bien publiée et protégée par un mot de passe (compte lié au LDAP donc admin1/admin) quand on passe par le [https://admin.dev-psl.guillaumetalbot.com/documentation/](DNS d’administration)
3.36.5 - Tests du socle
Pour tester toutes les fonctionnalités importantes des services, il faut :
- services et administration (cf. liens) :
- service-registre :
- accéder à l’IHM du registre
- vérifier que 2 services sont présents (SERVICE-CONFIG et SERVICE-GATEWAY)
- vérifier que 10 socles sont présents (SOCLE-ADMINPSL, SOCLE-DBBROUILLON, SOCLE-DBCONFIGURATION, SOCLE-DBDOCUMENT, SOCLE-DBNOTIFICATION, SOCLE-REFERENTIEL, SOCLE-REFERENTIELEXTERNE, SOCLE-SECURITE, SOCLE-SOUMISSION, SOCLE-TRANSFERT)
- vérifier que les 12 composants ont un statut UP (colonne de droite)
- service-admin
- se connecter au service d’administration avec le compte admin1 (mot de passe admin)
- vérifier que les 10 instances sont bien UP (si socle-dbnotification est en alerte, vérifier que le serveur de mail est bien démarré)
- cliquer sur un applicatif socle-* (pas sur l’URL) pour afficher la liste des instances de cet applicatif
- cliquer sur l’unique instance disponible de cet applicatif pour afficher la page de détails de l’instance
- vérifier que la page Aperçus > Détails affiche bien la version de l’applicatif et les informations GIT (branche, commit et date)
- vérifier que les valeurs affichées dans les pages Aperçus > Environnement et Aperçus > Propriétés de configuration sont toutes masquées
- vérifier que la page Logging > Loggers permet bien de changer les niveaux de log (changer une valeur et vérifier qu’aucun message d’erreur n’apparaît)
- ouvrir les logs de l’instance sélectionnée (un tail -f par exemple)
- dans l’écran Aperçus > Environnement, cliquer sur le bouton Raffraîchir le contexte et confirmer
- attendre quelques secondes pour voir le libellé du bouton changer en Contexte rafraîchi
- vérifier que l’application a bien rechargé son contexte (logs Fetching config from server puis Discovery Client initialized)
- service-nosql
- démarrer MongoDBcompas et se connecter à la base de données NOsql
- service-redis
- éditer le fichier de configuration des logs de service-gateway (2-code\socle\services-cloud\service-gateway\src\test\resources\logback.xml dans les sources ou /psl/applicatifs/service-gateway/logback.xml dans WSL)
- modifier le niveau de log de la classe org.springframework.cloud.gateway.filter.ratelimit.RedisRateLimiter en debug
- arrêter puis redémarrer le service-gateway pour prendre en compte la modification de la configuration
- surveiller les logs de la gateway avec la commande suivante
tail -f log_service-gateway-1.log
- depuis une autre ligne de commande, exécuter 30 requêtes HTTPs d’authentification anonyme par paquets de 5 simultannées avec la commande
xargs -I % -P 5 curl -k -X 'POST' 'https://localhost:8080/socle/securite/public/authentificationAnonyme' -H 'accept: application/json' -d '' < <(printf '%s\n' {1..30})
- vérifier, dans les logs, que la valeur X-RateLimit-Remaining fluctue
- annuler (via git par exemple) la modification dans le fichier de configuration des logs
- service_gateway
- accéder à l’UI de swagger
- vérifier que l’écran s’affiche sans erreur pour chacun des composants sélectionnables depuis la liste déroulante en haut à droite de la page
- vérifier que la liste contient tous les micro-services du socle
- sélectionner le composant socle-securite
- exécuter une authentification anonyme
- service-config (non testable manuellement mais est testé dans la collection de tests HTTP)
- API :
3.36.6 - Tests des applications WEB
Pour tester les applicatifs WEB, il faut :
- administration (cf. liens) :
- socle-admin :
- connexion :
- accéder à l’IHM de l’application d’administration du socle
- se connecter avec le compte admin1 // admin
- Configuration démarche :
- cliquer sur l’onglet Configuration démarche
- sélectionner une démarche et une version
- cliquer sur le bouton Modifier
- modifier le JSON (un espace dans le titre de la démarche par exemple)
- saisir un commentaire
- cliquer sur le bouton Enregistrer
- vérifier la présence d’une nouvelle version avec le commentaire et le nom de l’utilisateur
- Configuration soumission :
- cliquer sur l’onglet Configuration soumission
- sélectionner une démarche, une version et configuration
- cliquer sur le bouton Modifier
- modifier le JSON (un x dans _nomFinalDuDocument par exemple)
- saisir un commentaire
- cliquer sur le bouton Enregistrer
- vérifier la présence d’une nouvelle version avec le commentaire et le nom de l’utilisateur
- transfert
- cliquer sur l’onglet Transfert
- vérifier la présence de télédossiers (sauf si l’environnement est vierge)
- tester les filtres en fonction des données disponibles (à minima, vérifier l’absence d’erreur au clic sur le bouton Rechercher)
- administration
- déconnexion :
- cliquer sur le login en haut à droite pour se déconnecter
- Applications WEB
- démarrer l’outil Cypress avec la commande
npm run cypress depuis le répertoire 2-code/front
- dans la fenêtre qui démarre, exécuter chaque campagne de test
- Pile Elastic
TODO
3.36.7 - FAQ
- Pourquoi l’applicatif service-redis ne démarre pas en local ?
- si la machine WSL UbuntuTest est démarrée, alors le package RPM Redis installé est déjà démarré (démarrage automatique).