Contactez-nous

Exploration d'autres librairies utiles (ex: RequestsLibrary pour les APIs)

Découvrez comment aller plus loin avec Robot Framework en explorant des librairies externes. Focus sur RequestsLibrary pour l'automatisation des tests d'API REST et aperçu d'autres librairies utiles.

Elargir l'horizon de l'automatisation : l'écosystème des librairies Robot Framework

L'une des forces majeures de Robot Framework réside dans son architecture extensible, qui permet d'intégrer une multitude de librairies pour couvrir des besoins d'automatisation variés. Si `SeleniumLibrary` est la pierre angulaire pour les tests d'interfaces utilisateur web, elle n'est que la partie émergée de l'iceberg. De nombreuses autres librairies, développées par la communauté ou par des tiers, ouvrent des perspectives pour tester des APIs, des bases de données, des applications mobiles, des applications de bureau, et bien plus encore. Ce chapitre vous invite à explorer cet écosystème, avec un focus particulier sur `RequestsLibrary`, un outil puissant pour l'automatisation des tests d'API.

Savoir identifier, installer et utiliser ces librairies additionnelles est une compétence clé pour devenir un automaticien polyvalent et efficace. Cela vous permet d'adapter Robot Framework à des contextes techniques divers et de répondre à des exigences de test complexes qui vont au-delà de la simple interaction avec un navigateur web.

Nous commencerons par une présentation détaillée de `RequestsLibrary`, en illustrant son utilisation pour interagir avec des services RESTful. Ensuite, nous évoquerons brièvement d'autres librairies populaires qui pourraient s'avérer utiles dans vos futurs projets d'automatisation, vous donnant ainsi des pistes pour continuer votre exploration.

Focus sur RequestsLibrary : l'automatisation des tests d'API REST

Dans l'architecture logicielle moderne, les APIs (Interfaces de Programmation d'Application), et plus particulièrement les APIs REST, jouent un rôle central. Elles permettent la communication entre différents services, microservices, applications web et mobiles. Tester ces APIs est donc crucial pour assurer la fiabilité et la robustesse globale d'un système. `RequestsLibrary` est une librairie pour Robot Framework qui facilite grandement l'automatisation de ces tests.

Basée sur la populaire librairie Python `Requests`, `RequestsLibrary` offre un ensemble de keywords simples et intuitifs pour envoyer des requêtes HTTP (GET, POST, PUT, DELETE, etc.), vérifier les réponses (codes de statut, headers, contenu JSON ou XML), et gérer des sessions.

Installation :
Comme la plupart des librairies Robot Framework, `RequestsLibrary` s'installe via pip :
pip install robotframework-requests
Utilisation de base :
Une fois installée, vous pouvez l'importer dans la section `*** Settings ***` de vos fichiers de test Robot Framework :
*** Settings ***
Library    RequestsLibrary
Library    Collections    # Souvent utile pour manipuler les données JSON

*** Variables ***
${BASE_URL}    https://jsonplaceholder.typicode.com  # Un site d'API de test public

*** Test Cases ***
Récupérer la liste des utilisateurs
    Create Session    typicode_session    ${BASE_URL}
    ${response}=    GET On Session    typicode_session    /users
    Should Be Equal As Strings    ${response.status_code}    200
    ${json_data}=    To JSON    ${response.content}
    Length Should Be    ${json_data}    10  # S'attend à 10 utilisateurs

Vérifier les détails d'un utilisateur spécifique
    Create Session    typicode_session    ${BASE_URL}
    ${response}=    GET On Session    typicode_session    /users/1
    Should Be Equal As Strings    ${response.status_code}    200
    ${json_data}=    To JSON    ${response.content}
    Dictionary Should Contain Item    ${json_data}    username    Bret
    Should Be Equal As Strings    ${json_data}[email]    Sincere@april.biz

Créer un nouveau post
    Create Session    typicode_session    ${BASE_URL}
    &{headers}=    Create Dictionary    Content-Type=application/json; charset=utf-8
    &{payload}=    Create Dictionary    title=Mon titre de test    body=Contenu de mon post    userId=1
    ${response}=    POST On Session    typicode_session    /posts    json=${payload}    headers=${headers}
    Should Be Equal As Strings    ${response.status_code}    201  # 201 Created
    ${json_data}=    To JSON    ${response.content}
    Should Be Equal As Strings    ${json_data}[title]    Mon titre de test
    Dictionary Should Contain Key    ${json_data}    id

Dans cet exemple :
1. `Create Session` initialise une session HTTP avec une URL de base et un alias. C'est utile pour les appels répétés au même service.
2. `GET On Session` et `POST On Session` envoient les requêtes HTTP. D'autres keywords comme `PUT On Session`, `DELETE On Session`, `PATCH On Session` existent.
3. `response.status_code` permet de vérifier le code de statut HTTP.
4. `response.content` contient le corps de la réponse, que l'on peut convertir en JSON avec `To JSON` (de la librairie `BuiltIn` ou `RequestsLibrary` elle-même) pour des assertions plus faciles en utilisant les keywords de la librairie `Collections` ou `JSONLibrary`.
5. Les headers et le corps (payload) des requêtes POST peuvent être facilement construits à l'aide de dictionnaires.

`RequestsLibrary` offre également des fonctionnalités pour gérer l'authentification (basique, OAuth), les cookies, les timeouts, les proxies, et bien plus. Consulter sa documentation officielle est indispensable pour découvrir toute sa puissance.

Aperçu d'autres librairies Robot Framework potentiellement utiles

L'écosystème de Robot Framework est riche et en constante évolution. Voici quelques autres librairies qui pourraient vous être utiles en fonction de vos besoins spécifiques d'automatisation :

  • `DatabaseLibrary` : Permet d'interagir avec des bases de données relationnelles. Vous pouvez exécuter des requêtes SQL, vérifier le contenu des tables, ou encore préparer des données de test directement en base. Indispensable pour des tests end-to-end qui impliquent une validation de données persistées.
  • `AppiumLibrary` : Pour l'automatisation des tests d'applications mobiles (iOS et Android), natives, hybrides ou web mobiles. Elle s'appuie sur le serveur Appium et offre des keywords pour interagir avec les éléments des interfaces mobiles.
  • `SSHLibrary` : Si vos tests nécessitent d'exécuter des commandes sur des serveurs distants via SSH ou de transférer des fichiers (SCP/SFTP), cette librairie est faite pour vous. Utile pour des tâches de configuration d'environnement ou de récupération de logs.
  • `FTPLibrary` : Pour interagir avec des serveurs FTP, par exemple pour uploader ou télécharger des fichiers dans le cadre de vos scénarios de test.
  • `SeleniumTestability` (plugin pour SeleniumLibrary) : Aide à gérer les problèmes de synchronisation avec les applications web modernes (Angular, React, Vue.js) qui chargent du contenu de manière asynchrone, en ajoutant des attentes intelligentes.
  • `FlaUILibrary` (via Remote Server) ou `SikuliLibrary` (basée sur la reconnaissance d'image) : Pour l'automatisation d'applications de bureau (desktop), en particulier sous Windows. Ces librairies offrent des approches différentes pour interagir avec les éléments graphiques des applications natives.
  • `RPA Framework` (qui inclut de nombreuses librairies) : Bien que plus orienté Robotic Process Automation (RPA), ce framework propose des librairies très utiles pour l'automatisation de tâches variées, y compris l'interaction avec des applications bureautiques (Excel, Outlook), des navigateurs, etc., qui peuvent compléter vos tests.
  • Librairies personnalisées en Python : N'oubliez jamais que si vous ne trouvez pas de librairie existante pour un besoin très spécifique, Robot Framework vous permet de créer facilement vos propres librairies de keywords en Python. C'est une voie puissante pour étendre ses capacités à l'infini.

Pour découvrir d'autres librairies, le site officiel de Robot Framework (robotframework.org) et le Python Package Index (PyPI) sont d'excellentes ressources. Une recherche avec des mots-clés comme "robot framework library" suivi de la technologie que vous souhaitez automatiser donne souvent de bons résultats. L'exploration et l'expérimentation avec ces librairies enrichiront considérablement votre boîte à outils d'automaticien.