Comment contrôler les données du tableau
Le titre est un peu complexe mais correspond à un cas que l'on rencontre souvent dans les tests logiciels automatisés :
Vous voulez contrôler les valeurs d'une cellule qui se trouve sur la même ligne qu'une autre cellule que vous connaissez.
Par exemple, dans le tableau ci-dessus, nous voulons contrôler que Chromium est bien disponible sur Android, c'est-à-dire qu'il y a Oui dans la colonne Android de la ligne Chromium.
Agilitest vous permet de le faire simplement par une astuce d'agrégation de texte: si vous sélectionnez la ligne TR correspondante de la table Chromium, vous pourrez récupérer un attribut TEXT qui est une concaténation de toutes les valeurs des cellules de la ligne.
La valeur textuelle de la ligne TR contenant le chrome est la suivante :
Chrome Oui Oui Oui Oui Oui Oui Non Non
La valeur que vous voulez contrôler est le 5ème Oui.
Pour récupérer la ligne qui correspond à Chromium sans supposer aucune des valeurs suivantes, votre locator ressemblera à ceci :
(?i)Chrome\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)
(?i) indique que le contrôle doit être insensible à la casse.
\s correspond à un espace
(.*) correspond à tout type de texte, en l'insérant avec des \, il correspond au texte avant un espace, le comportement "gourmand" des expressions régulières va alors essayer de correspondre à autant de caractères que possible.
Créez ensuite une variable qui récupérera la valeur spécifique de la colonne Android.
Utilisez l'expression régulière suivante :
(?i)(.*)\s(. *)\s(. *)\s(. *)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)
Le groupe correspondant est le 6ème
Il suffit alors de faire un contrôle de valeur :
Plusieurs commentaires sur ce tour :
Premièrement, vous devez maîtriser les données de vos tests, il peut donc être dangereux d'utiliser cette technique lorsque vous ne savez pas où se trouve la ligne Chrome dans le tableau. Vous pouvez vous retrouver avec un test un peu laxiste qui ne sait pas vraiment où se trouvent les données.
Adaptez donc cette technique au cas par cas, par exemple si vos données de test ne sont pas encore fixées et que vous ne voulez pas modifier votre test trop souvent.
Il est également possible de l'utiliser si vous faites du Data Driven Testing, les contrôles mis en place s'adapteront aux données que vous avez définies dans un fichier CSV. Dans ce cas, des précautions sont à prendre : par exemple "Internet Explorer" contient un espace qui sera utilisé par l'expression régulière et décalera toutes les données que vous voudrez contrôler.
Pour terminer avec cet exemple, vous pouvez utiliser une action "Vérifier les valeurs" pour contrôler toute la ligne de Chromium en une seule fois. Vous contrôlez d'un coup mais vous ne saurez pas en cas d'échec quelle valeur n'était pas conforme.