Passer au contenu principal

Comment utiliser une connexion enregistrée dans un cas de test ?

Utiliser les étapes Injection de profil et Capture de profil, choisir les paramètres avancés, se connecter autrement quand la session échoue, et composer le nom à partir d'une variable.

Écrit par Ines

Deux types d'étapes relient un cas de test à un Profil authentifié. Injection de profil charge une session enregistrée pour que l'exécution démarre connectée, et Capture de profil enregistre la session courante en cours d'exécution. La plupart des cas de test n'ont besoin que de l'injection, tout en haut, à la place des étapes de connexion que vous auriez écrites.

Les deux étapes identifient un Profil par son nom, c'est pourquoi les noms de profil comptent et pourquoi renommer l'un d'eux casse les étapes qui pointent vers lui. Pendant une exécution, le nom se résout comme une variable : le Profil de l'Environnement de l'exécution l'emporte sur le Profil du projet qui porte le même nom.

Injecter une session enregistrée

  1. Ouvrez le cas de test et ajoutez une étape.

  2. Choisissez Injection de profil, et placez-la en premier, avant tout ce qui suppose un utilisateur connecté.

  3. Dans Profil ou pool, choisissez un profil ou un pool enregistré dans la liste, ou saisissez un nom.

  4. Enregistrez l'étape.

L'exécution commence désormais avec votre application déjà connectée, et vos étapes suivantes peuvent aller droit à l'écran testé.

Sous le champ, une ligne indique ce que l'étape utilise sur l'Environnement sélectionné dans l'éditeur, par exemple « Sur Staging, cette étape injecte le profil admin. » Si rien ne correspond au nom, l'éditeur vous avertit d'emblée : « Aucun profil ni pool ne s'appelle "admin". Une étape de capture précédente peut le créer. » C'est un avertissement et non une erreur, car une étape Capture de profil plus haut dans le même test est une façon légitime de le créer.

Choisir les paramètres avancés

Ouvrez Paramètres avancés dans l'étape pour voir trois options.

  • Renouveler la session enregistrée : une fois le navigateur arrivé connecté, Thunders enregistre la session renvoyée par l'application. Les applications qui prolongent une session à chaque visite gardent alors le Profil fonctionnel plus longtemps. L'option est activée pour chaque nouvelle étape Injection de profil. Les étapes existantes gardent leur réglage.

  • Exclusif : réserve le Profil à cette exécution. Voir ci-dessous.

  • Si la session injectée échoue (expirée, rejetée, …) : choisissez Faire échouer le test, le réglage par défaut, ou Continuer avec un avertissement. Avec un avertissement, l'étape signale la session en échec comme un problème et l'exécution continue, pour que les étapes suivantes puissent se connecter autrement. Ce choix s'applique aussi quand aucun profil ni pool ne porte ce nom. Un délai de verrou ou de pool dépassé fait toujours échouer le test.

Réserver un profil avec Exclusif

L'Injection de profil dispose d'une option Exclusif. Elle réserve le profil à cette exécution : les autres exécutions qui l'injectent attendent la fin de celle-ci, puis reprennent. Une exécution qui attend plus de 15 minutes échoue.

Utilisez-la quand le cas de test modifie un état appartenant à l'utilisateur connecté, par exemple les paramètres de cet utilisateur ou un élément à usage unique. Deux exécutions qui font cela en même temps sur le même compte se gênent, et les échecs paraissent aléatoires.

Laissez-la désactivée pour les cas de test qui ne font que lire. Réserver un profil que beaucoup de tests partagent transforme des exécutions parallèles en file d'attente, ce qui explique souvent qu'une suite prenne soudain beaucoup plus de temps. Quand chaque exécution parallèle a besoin de son propre compte, injectez plutôt un pool : voir Comment donner à chaque exécution parallèle son propre compte ?

Se connecter autrement quand la session ne fonctionne plus

Un cas de test peut d'abord essayer la session enregistrée, puis se connecter avec ses propres étapes quand elle ne fonctionne plus. Il réussit alors seul comme dans un groupe de test.

  1. Ajoutez une étape Injection de profil, et réglez Si la session injectée échoue (expirée, rejetée, …) sur Continuer avec un avertissement.

  2. Ajoutez une étape conditionnelle qui exécute les étapes de connexion uniquement quand l'utilisateur n'est pas connecté.

  3. À l'intérieur, écrivez les étapes de connexion, et terminez-les par une étape Capture de profil sous le même nom, pour que les exécutions suivantes obtiennent une session neuve.

Quand la session enregistrée fonctionne, les étapes de connexion ne s'exécutent pas.

Enregistrer une session pendant une exécution

Capture de profil enregistre la session de navigateur courante sous un nom que vous choisissez. Placez-la après les étapes qui se connectent.

Utilisez-la quand la connexion doit avoir lieu dans le test, par exemple quand le compte est créé plus haut dans la même exécution, et que vous voulez que des cas de test ultérieurs en réutilisent le résultat.

Par défaut, l'étape écrit dans le Profil de ce nom sur l'Environnement de l'exécution s'il existe, et sinon dans le Profil du projet. Quand aucun des deux n'existe, elle crée un Profil du projet. Activez Enregistrer par environnement pour que chaque exécution enregistre la session dans le Profil de son propre Environnement, et crée ce Profil s'il n'existe pas. Un cas de test de connexion exécuté une fois sur chaque Environnement remplit alors tous les Environnements sans enregistrement manuel.

Une étape Capture de profil cible un seul Profil. Elle ne peut pas nommer un pool.

Composer le nom à l'exécution

Les deux étapes acceptent une variable dans le nom du profil, un même cas de test peut donc atteindre un profil différent selon l'Environnement ou la ligne de données.

Écrivez le nom avec une variable dedans, par exemple acme-[ENVIRONMENT_NAME], et Thunders la résout au moment où l'étape s'exécute. La variable se résout d'abord, puis la règle des Environnements s'applique. Un nom de profil ne peut pas contenir le caractère |. Pour utiliser un autre compte par Environnement, un Profil d'Environnement du même nom est en général plus simple qu'une variable dans le nom. Voir Comment faire démarrer mes tests déjà connectés ?

Questions fréquentes

Où placer l'étape Injection de profil ?

En premier, avant toute étape qui suppose un utilisateur connecté. Injecter après avoir déjà navigué signifie que les étapes précédentes se sont exécutées déconnectées.

Quand activer Exclusif ?

Quand le cas de test écrit un état appartenant à l'utilisateur connecté, pour que deux exécutions ne se heurtent pas sur le même compte. Laissez-la désactivée pour les cas de test en lecture seule, car elle sérialise toutes les exécutions qui injectent ce profil et une attente de plus de 15 minutes fait échouer l'exécution.

Comment garder mes étapes Injection de profil fonctionnelles dans la durée ?

Gardez le nom du profil stable, puisque les étapes identifient un profil par son nom, et laissez Renouveler la session enregistrée activé. Quand un Profil affiche Session rejetée dans la liste des Profils authentifiés, enregistrez-le à nouveau sous le même nom. Pour qu'un cas de test continue de réussir en attendant, réglez l'étape sur Continuer avec un avertissement et ajoutez des étapes de connexion derrière une étape conditionnelle.

Puis-je utiliser le même profil dans plusieurs cas de test en même temps ?

Oui, tant que Exclusif est désactivé. Avec Exclusif activé, les exécutions s'enchaînent les unes après les autres.

Qu'est-ce qui remplace mes étapes de connexion ?

Une seule étape Injection de profil en tête du cas de test. C'est tout l'intérêt : elle retire la partie d'un test qui casse le plus facilement sur une double authentification ou une redirection, et elle fait démarrer chaque exécution plus vite.

Puis-je utiliser une variable pour le nom du profil ?

Oui. Les deux étapes en acceptent une, donc acme-[ENVIRONMENT_NAME] se résout à l'exécution. Le nom ne peut pas contenir |.

Comment exécuter un même cas de test sur Staging et Production avec des comptes différents ?

Gardez un seul nom de profil dans l'étape, et donnez à Production son propre Profil avec Remplacer pour cet environnement dans les paramètres de son Environnement. Une exécution sur Production injecte le Profil de Production, et une exécution sur tout autre Environnement injecte le Profil du projet.

Que se passe-t-il quand l'étape Injection de profil échoue ?

Avec Faire échouer le test, le réglage par défaut, l'exécution s'arrête à cette étape. Avec Continuer avec un avertissement, l'étape signale un problème et l'exécution continue : elle réussit si les étapes suivantes réussissent. Une exécution qui a attendu trop longtemps un Profil réservé ou un pool échoue dans les deux cas.

Avez-vous trouvé la réponse à votre question ?