Categories

Regular expressions

Regular expressions are very powerful for performing operations on data, extracting subsets or recognizing patterns.

We allow their usage in several places in Agilitest:

Component recognition

In Capture mode, when you have selected a component by pressing the CTRL key, you can then click on the attribute of interest to select its value.

Comment faire matcher un UUID ?

Dans le cas présenté ci-dessus, nous n'avons qu'un attribut cd_frame_id_ dont la valeur va pouvoir éventuellement changer avec le temps puisqu'il s'agit d'un UUID.

Nous pouvons permettre à Agilitest de le reconnaitre simplement en cliquant sur la coche "Expression régulière" et en saisissant l'expression régulière suivante dans la valeur de propriété :

[0-9a-fA-F]{32}

Cette expression régulière indique que nous allons chercher une chaine de 32 caractères, composés uniquement de caractères hexadécimaux.

Saisie d'une expression régulière

Par la suite, une demande de statistique permet de reconnaitre l'élément de façon unique dans la page:

L'uuid est reconnu

Grâce à l'expression régulière, la valeur de l'uuid pourra être modifiée, mais du moment où cela reste un uuid, Agilitest le reconnaitra.

Cette astuce permet de reconnaitre des éléments dont les valeurs d'attributs sont fortement volatiles, mais qui conservent une structure constante avec le temps : un préfixe ou un suffixe identique, un nombre incrémenté, etc.

Vérifications

Il est possible d'utiliser les expressions régulières dans l'action de vérification de propriétés d'un objet ou de valeurs de variables.

Dans le cas ci-dessous, nous utilisons la même expression régulière que précédemment pour vérifier que le format de la propriété cd_frame_id_ est bien celui d'un uuid. Evidemment, nous utilisons un autre moyen d'identification pour retrouver l'élément (ici id = exemples-iframe).

Vérification du format d'un uuid

Manipulations de variables

Enfin, il est possible d'utiliser les expressions régulières pour réaliser des opérations sur les variables, dans l'objectif de récupérer certaines sous-parties de celles-ci. Nous utilisons la notion de parenthèse capturante, associée à un numéro de groupe : l'expression régulière complète est décomposée en sous-expressions entourées de parenthèses, il est ensuite possible de récupérer la partie de la variable qui nous intéresse par son numéro de groupe correspondant au numéro d'ordre de la parenthèse dans l'expression régulière globale.

Dans l'exemple ci-dessous, nous avons récupéré un texte complet qui comprend un prix que nous souhaitons vérifier

Récupération du texte brut contenant un prix à vérifier

En utilisant l'expression régulière suivante:

(\d),(\d)\ €(.*)

Nous pouvons récupérer successivement:

  • Le prix en euros correspondant au groupe 1
  • Les centimes après la virgule correspondant au groupe 2
  • Le texte additionnel correspondant au groupe 3
Récupération des centimes

Finalement à quoi ça sert ?

Vous l'aurez compris : l'utilisation des expressions régulières va vous permettre de cibler de façon chirurgicale les différents éléments de vos tests : composants, variables, valeurs et ajouter beaucoup de robustesse lors de leur exécution.

Pour les personnes qui ne les connaissent pas, passé les premières erreurs et la surprise de la découverte, cette technologie est finalement assez simple d'utilisation et permet de faire beaucoup de choses sans écrire une seule ligne de code.

Still require support?
Contact support