18 KiB
- Test paheko
- Notes
- 01 Installation
- 02 Connexion
- Membres
- virer commandes d'affichage
- 03 créer un membre
- données de la fiche membre
- standard
- standard, version mobile
- autre pays
- Catégorie « Ancien membre »
- Inscrit à la lettre
- date bizarre
- attaché à un autre membre (choix unique)
- attaché à un autre membre (plusieurs choix)
- numéro différent de celui proposé par défaut
- numéro en double
- date antérieure min
- date postérieure max
- nom en double refusé
- nom en double accepté
- 04 lister les membres
- 05 rechercher des membres
- 06 supprimer un membre
- 07 modifier un membre
- 08 importer des membres
- 09 exporter des membres
- 10 configuration membres Préférences
- 11 configuration membres Fiche
- ajouter un champ à la fiche membre
- 11-01 ajout année naissance
- 11-02 ajout champ perso texte libre
- 11-03 ajout champ perso texte choix multiple
- 11-04 ajout champ perso texte multilignes
- 11-05 ajout champ perso calculé
- 11-06 ajout champ perso email
- 11-07 ajout champ perso url
- 11-08 ajout champ perso case à cocher
- 11-09 ajout champ perso date
- 11-10 ajout champ perso date et heure
- 11-11 ajout champ perso année
- 11-12 ajout champ perso fichier
- 11-13 ajout champ perso mot de passe
- 11-14 ajout champ perso nombre
- 11-15 ajout champ perso nombre à virgule
- 11-16 ajout champ perso numéro téléphone
- 11-17 ajout champ perso Sélecteur à choix unique
- 11-18 ajout champ perso Sélecteur à choix multiple
- 11-19 ajout champ perso pays
- 11-20 ajout champ perso mois et année
- 11-30 ajout ancienneté
- 11-31 ajout date naissance
- 11-32 ajout pays
- saisir un champ avec un identifiant déjà existant
- ¿ saisir une donnée erronée dans chaque champ ?
- modifier un champ de la fiche membre
- changer l'ordre des champs de la fiche membre
- supprimer un champ dans la fiche membre
- ajouter un champ à la fiche membre
- 12 configuration membres Catégories et Droits
- journal d'audit
- prise en main
- exemples
Test paheko
Notes
problème avec instruction conditionnelle dans 4-09 et 4-10
if (${nb_parents} >= 2)
{ ... }
else if (${nb_total_membres} > 2)
// ce bloc est exécuté même si nb_parents >= 2
{ ... }
Contournement
if (${nb_parents} >= 2)
{ ... }
else if ${nb_parents} < 2 && ${nb_total_membres} > 2
{ ... }
problème avec apostrophe
- pas d'apostrophe dans les éléments de tableau, sinon problème
- si apostrophe dans une chaîne => lors de l'appel d'un script : problème avec l'IDE mais pas avec le runner
erreur timeout
Il y a un bug, référenceé ici : https://github.com/SeleniumHQ/selenium-ide/issues/1819 qui affiche un message d'erreur après une longue pause :
Jest did not exit one second after the test run has completed.
'This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with `–detectOpenHandles` to troubleshoot this issue.
l'ajout de « detectOpenHandles » est strictement sans effet… D'où la tentative de contournement dans runtest
comparer des nombres
Les valeurs récupérées sur une page sont des chaînes => à convertir en nombre avec Number pour faire une comparaison numérique (ex : numéro de membre)
display:none
Impossible de sélectionner un élément avec l'attribut display:none ; il faut préalablement lui mettre l'attribut display:block
numéro de téléphone
- Attention, un numéro qui commence par 0 est formatté avec un espace entre les paires de chiffres !!
Version mobile
- les libellés des boutons du menu principal n'apparaissent pas et ne sont donc pas trouvés, ni par un chemin xpath, ni par un chemin css ; il faut donc utiliser un chemin qui s'arrête à l'url du lien correspondant.
- les sous-menus n'apparaissent pas => pas d'accès direct => il faut procéder par étape : menu puis sous-menu
-
lors de l'ajout d'un membre, le bouton Enregistrer n'est pas visible et ne peut être cliqué ; pour le rendre visible, il faut passer d'une rubrique à l'autre avec la touche Tab ou avec PageDown, par exemple après avoir saisi la date…. mais :
- avec navigateur chrome : pas de sélecteur de date ! => il faut ruser :(
- même ainsi, il se peut que le bouton ne puisse recevoir le clic (voir ci-dessous) ; apparemment le webdriver firefox ne réagit pas à PageDown et celui de chrome réagit à Tab, mais ça ne suffit pas à rendre cliquable le bouton Enregistrer
Bref, ce qui marche pour le driver chrome ne marche pas pour celui de firefox et vice-versa..
> selenium-side-runner -c "browserName=firefox" -f "mobile" paheko_v4.side
Element <button class="main icn-btn" name="save" type="submit"> is not clickable
at point (125,633) because another element <ul> obscures it
Objet javascript
- Syntaxe accès aux objets : ${objet}.attribut ou ${objet}.methode
// refusé par le runner
return ${membre.nom}
// accepté
return ${membre}.nom;
input type="checkbox
Pour activer un <input type="checkbox", il vaut mieux utiliser check car le runner (de chrome ?) n'aime pas click
TODO Membres
DONE 03 créer un membre
données de la fiche membre
- Catégorie : choisir parmi les possibilités
- Rattacher à un membre : non / choisir un membre
- Numéro : par défaut ou à saisir
- Nom & prénom (oblig)
- Adresse E-Mail
- Pays
- Adresse postale
- Code postal
- Ville
- Numéro de téléphone
- Inscription à la lettre d'information
- Date d'inscription
DONE 04 lister les membres
DONE tri par différents critères
DONE nom : idem
Le nouveau tri est comme ceci : colonne IS NULL DESC, colonne DESC, numero DESC (DESC est remplacé par ASC pour un tri croissant) Autre changement du coup : les champs non-vides sont placés en dernier pour un tri croissant, en premier pour un tri décroissant.
DONE ville : idem
Tri par ville
- ville (dé)croissant, numéro membre (dé)croissant
- ville vide en fin(début), numéro membre (dé)croissant
DONE rattaché à : idem
Pour la colonne "rattaché à" : on met un tri sur la qualité de parent, puis le nom du parent en premier, puis le nom du membre, puis son numéro :
-
id_parent IS NULL ASC, nom_parent DESC, nom_membre DESC, numero DESC
- parent (dé)croissant, nom membre (dé)croissant, numéro (dé)croissant
- parent vide à la fin, nom membre (dé)croissant, numéro (dé)croissant
DONE 05 rechercher des membres
Remarques :
- si la recherche trouve un seul résultat, elle affiche directement la fiche du membre
- s'il y a plusieurs résultats, la recherche affiche l'onglet « Recherche avancée » avec les résultats
- s'il n'y a aucun résultat, la recherche affiche l'onglet « Recherche avancée » avec une liste de résultats vide
DONE 07 modifier un membre
DONE modifier caractéristiques « simples »
- si un seul membre => en créer un deuxième
- chercher le premier numéro disponible
- chercher puis modifier le premier membre de numéro différent de 1
-
modifier les différents champs
- numéro
- catégorie
- nom, prénom
- courriel
- adresse
- code postal
- ville
- téléphone
- lettre info
- date inscription
- enregistrer
- vérifier les infos
DONE définir le mot de passe du membre
- sélectionner un membre actif (pas ancien, car pas le droit de se connecter)
- cliquer Définir mdp
- saisir deux fois un mdp généré
- mémoriser nom et adresse courriel
- déconnecter
-
connexion avec
- adresse courriel
- mdp
- vérifier Nom présent page accueil
- vérifier numéro membre sur fiche membre
DONE 08 importer des membres
Remarques
- Si déjà tu peux tester qu'un fichier CSV donné s'importe bien, c'est déjà génial je pense
- ¿ Tester les possiblités d'ignorer certains champs ?
DONE 09 exporter des membres
Je ne sais pas ce que permet Selenium, mais si déjà tu peux tester que ça produit bien un fichier de plus de 0 octets ça sera bien.
-
avec le runner :
- avec fenêtre, fichier exporté placé dans le répertoire par défaut ~/Downloads
- sans fenêtre, le fichier est enregistré dans le répertoire de travail… pas toujours !
- MAIS l'ajout d'une opération après le déclenchement de l'enregistrement permet la bonne terminaison de l'enregistrement
- avec l'IDE sous chrome : la version 107 de chrome ne supporte plus l'IDE ….
DONE 10 configuration membres Préférences
TODO 11 configuration membres Fiche
DONE ajouter un champ à la fiche membre
PB : le bouton de suppression finale du champ est pris en compte par l'IDE mais pas toujours par le runner
DONE 11-12 ajout champ perso fichier
- utilise les fichiers /tmp/cv.pdf et /tmp/cv2.pdf
- PB : dans la fiche membre, le nom du fichier comporte un « ­ » avant le point
DONE 11-13 ajout champ perso mot de passe
- question : ce mot de passe ne sert pas à se connecter, donc à quoi sert-il ?
-
pour vérifier le mot de passe, il faut :
- connecter le membre
- modifier les infos personnelles
- afficher le mot de passe :
- NB : le mdp qui s'affiche (en fonctionnement interactif) est celui enregistré par le navigateur pour l'admin !!
-
NB : en mode runner, le champ est vide =>impossible de vérifier le mdp
- Remarque : la modification du mot de passe est prise en compte mais on ne peut le voir qu'en exportant les données de la fiche membre
DONE 11-19 ajout champ perso pays
- Pour définir le pays par défaut, il faut indiquer son code à deux lettres et non son nom complet => à documenter ou à changer
DONE 11-20 ajout champ perso mois et année
-
avec le driver de chrome :
- saisir le mois
- envoyer le code de la touche de tabulation
- saisir l'année
fonctionne avec runner et le driver dechrome mais probalement pas avec celui de firefox
DONE saisir un champ avec un identifiant déjà existant
- Ce nom de champ est déjà utilisé par un autre champ : adresse, code_postal, ville, telephone, lettre_infos_1, date_inscription
- numero : Aucun champ de numéro de membre n'existe
- nom : Aucun champ de nom de membre n'existe
- email : Aucun champ d'identifiant de connexion n'existe
TODO changer l'ordre des champs de la fiche membre
-> vérifier ensuite que les champs membre ajoutés fonctionnent bien dans la fiche du membre (et ce pour chaque type de champ ?) et apparaissent dans la liste des membres
- Autres éléments de config des membres :
-> modifier l'identifiant de connexion -> modifier les champs pour l'identité du membre
prise en main
DONE test installation
Exemple de test (après avoir installé un Paheko sur sa machine, sur le vhost "paheko.localhost", sans base de données) :
- se rendre à l'adresse http://testpaheko.local.bzh
- remplir le formulaire d'installation
- valider le formulaire (cliquer sur le bouton en bas de page)
- sur la page suivante cliquer ensuite sur "configuration" dans le menu
- vérifier que les informations de l'association indiquées lors l'installation se retrouvent exactement dans les champs de la configuration
- cliquer sur le menu "Membres"
- vérifier que le membre par défaut est bien dans la liste
- cliquer sur la fiche du membre
- vérifier que l'adresse e-mail et autres infos remplies à l'installation sont bien là
interpeller noircir colis allumer
TODO Démarrer la comptabilité
-
cas normal
- choix du PC
- dates exercice
-
vérifications
- nombre d'écritures
- PC
- dates exercice
- tester erreur saisie dates
- tester modif pays
TODO test saisie recette
Un autre test pour la compta :
- se rendre à l'adresse http://testpaheko.local.bzh/admin/ (après avoir été connecté dans un test précédent, que je ne détaille pas ici)
- cliquer sur le menu "Saisie" dans la compta
- cliquer sur "recette"
- renseigner un libellé, un montant, les comptes, autres champs etc.
- valider le formulaire
- sur la page de détail de l'écriture, vérifier que toutes les mentions, comptes et montants correspondent à ce qui a été saisi
- se rendre sur la page compte de résultat
- vérifier que le montant de la recette apparaît bien dans les produits, que le nom du compte est bon, etc.
exemples
parcours table
Voir /home/engel/outils/selenium/tuto.side : lister membres
- compter le nombre d'éléments de la table => nb_elem
- itérer avec un compteur (while) => num
- accéder à l'élément courant grâce au compteur //tr[${num}]
Command | Target | Value |
---|---|---|
storeXpathCount | xpath=//table[@class=\"list\"]/tbody/tr/th//span | nb_elem |
executeScript | return 1 | num |
while | ${num} <= ${nb_elem} | |
storeText | xpath=//table[@class=\"list\"]/tbody/tr[${num}]/th//span | nom |
echo | ${nom} | |
execute script | return ${num} + 1 | num |
end |
données structurées
- les objets ne sont pas acceptés par le runner (voir https://github.com/SeleniumHQ/selenium-ide/issues/1603)
- voir /home/engel/outils/selenium/tuto.side forEach
envoi fichier
Voir /home/engel/devel/recusDons/test/recusDons.side Ne fonctionne qu'avec chrome
- insérer (type) le chemin du fichier dans le champ de saisie du nom
- cliquer le bouton d'envoi