Test utilisateur haut niveau à l'aide de sélénium
Go to file
Jean-Marie Place 0d860f2406 blackify 02 2021-08-18 15:55:30 +02:00
.envmodel add http schema to settings 2021-07-24 08:41:26 +02:00
.gitignore maj gitignore 2021-06-24 15:42:34 +02:00
01_creation_departement_test.py tests 02 (formation) ok 2021-08-09 18:14:10 +02:00
02_creation_formation_test.py blackify 02 2021-08-18 15:55:30 +02:00
03_etudiant_test.py tests 02 (formation) ok 2021-08-09 18:14:10 +02:00
04_creation_absence_test.py tests 02 (formation) ok 2021-08-09 18:14:10 +02:00
05_saisie_note_test.py tests 02 (formation) ok 2021-08-09 18:14:10 +02:00
06_test_moyenne.py tests 02 (formation) ok 2021-08-09 18:14:10 +02:00
07_test_admission.py tests 02 (formation) ok 2021-08-09 18:14:10 +02:00
Script.txt addtest creation eval 2021-05-10 20:52:18 +02:00
UserStoryNew.yaml changement d'id 2021-06-25 02:12:04 +02:00
createDepartement.py amélioration des rapports & création de scripts pour l'indépendance des jeux de tests 2021-06-24 15:04:22 +02:00
creationSiteDepartement.py tests 02 (formation) ok 2021-08-09 18:14:10 +02:00
deleteDepartement.py amélioration des rapports & création de scripts pour l'indépendance des jeux de tests 2021-06-24 15:04:22 +02:00
geckodriver ajout test creation interrogation 2021-05-07 15:37:34 +02:00
importFormationXml.py tests 02 (formation) ok 2021-08-09 18:14:10 +02:00
lancement_de_tout_les_tests.sh maj readme, test pour les id & script generate report page pour éviter de lire les anciens résumés 2021-06-25 16:44:00 +02:00
readme.md tests 02 (formation) ok 2021-08-09 18:14:10 +02:00
requirements.txt maj requirements.txt & readme 2021-06-23 15:28:07 +02:00
scriptCreationDepartement.sh ajustement des script de gestioin des depts via flask 2021-08-18 15:53:44 +02:00
scriptCreationUtilisateurs.sh tests 02 (formation) ok 2021-08-09 18:14:10 +02:00
scriptDeleteDepartement.sh ajustement des script de gestioin des depts via flask 2021-08-18 15:53:44 +02:00
scriptExecution.sh ajustement chemins vers scodoc 2021-08-06 11:35:06 +02:00
scriptGenerateReportPage.sh maj readme, test pour les id & script generate report page pour éviter de lire les anciens résumés 2021-06-25 16:44:00 +02:00
scriptImportFormation.sh tests 02 (formation) ok 2021-08-09 18:14:10 +02:00
setting.py tests 02 (formation) ok 2021-08-09 18:14:10 +02:00
suppressionSiteDepartement.py tests 02 (formation) ok 2021-08-09 18:14:10 +02:00

readme.md

#Tests E2E du logiciel Scodoc

Ces jeux de tests ont été conçus pour tester automatiquement Scodoc d'un point de vue E2E (End to End). Ils sont en théorie indépendants les uns des autres. Ils ont étés développés en python 3.

I Configuration

Dans cette partie je vais détailler les prérequis pour l'environnement de développement

Prérequis Module

Ces prérequis peuvent être trouvés dans requirements.txt qui se trouvent à la base du projet. Vous devez avoir pip d'installé, normalement il est fourni avec les versions de python3, sinon vous trouverez les étapes d'installation ici Les modules suivant sont nécessaire :

selenium==3.141.0 python-dotenv==0.17.1 HtmlTestRunner==0.8.0

Vous pouvez les installer manuellement avec pip avec la commande suivante :

pip install selenium

ou alternativement avec

pip install -r requirements.txt

Environnement de test

Un modèle de .env est fourni dans ce projet, pour que les tests soient fonctionnel vous devez le remplir et le renommer en .env. Ce dernier servira à remplir différentes informations spécifiques concernant votre environnement Scodoc. Nous allons le voir ici en détail

.env

SCHEMA="http" BASE_URL = "scodoc_server:5000" NOM_DPT = "TEST01" SCODOC_ADMIN_ID = "admin_id" SCODOC_ADMIN_PASS = "admin_password" SCODOC_ENS_ID = "enseignant_id" SCODOC_ENS_PASS = "enseignant_password@10" SCODOC_CHEF_ID = "chef_id" SCODOC_CHEF_PASS = "p@ssword42@" LINK_SCODOC_SERVER = "scodoc_server" BASE_SSH_URL = "scodoc_server:5000/" NAVIGATEUR = "firefox"

Ici sera le lien vers la page d'accueil de votre Scodoc

NOM_DPT = "test01"

Le nom du département surlequel vous allez effectuer vos tests, il est FORTEMENT conseillés de mettre ici un nom de département qui n'existe pas, sous risque de perte de données.

SCODOC_ADMIN_ID = "admin_id"

Le nom d'utilisateur d'un Admin Scodoc.

SCODOC_ADMIN_PASS = "admin_password"

Le mot de passe d'un Admin Scodoc.

SCODOC_ENS_ID = "enseignant_id"

Le nom d'utilisateur d'un enseignant lambda qui servira pour rentrer des notes, soit qui existe, soit qui sera créé.

SCODOC_ENS_PASS = "enseignant_password@10"

Le mot de passe de l'utilisateur précédent, si l'utilisateur précédent n'existe pas, veillez à avoir un mot de passe suffisamenent compliqué pour la création de ce dernier.

SCODOC_CHEF_ID = "chef_id"

Le nom d'utilisateur d'un enseignant lambda qui se verra attribué le rôle de résponsable d'un module afin de créer des interrogations , soit qui existe, soit qui sera créé.

SCODOC_CHEF_PASS = "p@ssword42@"

Le mot de passe de l'utilisateur précédent, si l'utilisateur précédent n'existe pas, veillez à avoir un mot de passe suffisamenent compliqué pour la

LINK_SCODOC_SERVER = "root@ssh_server_scodoc"

Le lien vers votre serveur Scodoc, ce dernier servira à lancer des scripts de mise en place sur le serveur. Veillez donc à avoir une connexion avec les droits root sur votre serveur, de préférences avec échange de clef ssh.

BASE_SSH_URL = "scodoc-dev-iutinfo.univ-lille.fr/"

Le lien vers la page de choix de département, avec le format précisé.

NAVIGATEUR = "firefox"

Ici vous pouvez choisir entre firefox et chrome,choisissez le navigateur dans lequel vous voulez que vos tests se déroulent. Cette ligne permettra au programme de choisir le webdriver correspondant.

Explications du fonctionnement des tests

Les tests sont prévus pour fonctionner avec firefox ou chrome les webdrivers sont intégrés dans le projet pour éviter de devoir les installer manuellement. Ces webdrivers servent à faire la connexion entre python et le navigateur.

##Lancement des tests

Pour lancer les tests, assurez vous d'avoir une connexion possible avec votre serveur. Positionnez vous à la racine de ce projet et il suffit donc de lancer la commande par exemple pour le premier jeux de tests

python3 01_creation_departement_test.py

Alternativement vous pouvez lancer l'ensemble des tests avec la commande

./lancement_de_tout_les_tests.sh

L'option --c ou --cleanup est disponible si vous souhaitez effacer tout les rapports précédents

###Resultats des tests

Les tests sont présentés sur une page HTML qui se trouve dans le dossier ResultatTest, il y a une page HTML par jeux de tests créée. Un récapitulatif est également créé par le biais du script

./scriptGenerateReportPage.sh

Celui ci est lancé automatiquement à la fin du script

./lancement_de_tout_les_tests.sh

Vous y retrouverez les liens menant au détails de chaque rapport ainsi qu'un résumé du nombre de test passés/échoués

##Correctifs

  • Modifier le PATH pour que geckodriver soit executable export PATH=".:$PATH"

  • pip install HtmlTestRunner-Python3

  • Créer un utilisateur Nom:BACH Prenom:Test User:Bach TODO: utiliser enseignant_id à la place