Personnaliser vos tests - Cloud

Guide d'utilisation de Talend Cloud API Tester

Version
Cloud
Language
Français (France)
Product
Talend Cloud
Module
Talend API Tester
Content
Création et développement > Test d'API
Modifiez votre pom.xml pour personnaliser la configuration de votre test d'API.

Créez votre configuration de test personnalisée

Si vous souhaitez bénéficier des WebHooks ou personnaliser les exécutions des tests, vous pouvez configurer vous-même le pom.

Voici un exemple de pom.xml, les options configurables sont détaillées ci-dessous.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.talend.ci.api-tester</groupId>
    <artifactId>petstore_api</artifactId>
    <version>1.0.0</version>
    <build>
        <plugins>
            <plugin>

                <!-- The Talend maven plugin -->
                <groupId>org.talend.ci</groupId>
                <artifactId>api-tester-maven-plugin</artifactId>
                <version>1.0.0</version>

                <executions>
                    <execution>
                        <phase>test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                          <file>Petstore_API.json</file>
                          <selectedEnvironment>API Services's context</selectedEnvironment>

                          <!-- Put your Account ID here. Consult your Account Information in Talend Management Console Subscription page -->
                          <accountId>${account_id}</accountId>

                          <instance>us</instance>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <pluginRepositories>
        <!-- Put your plugin repository configuration here -->
    </pluginRepositories>
</project>

Configuration du pom

Les attributs suivants peuvent être ajoutés au pom pour adapter le comportement du plug-in. Ils peuvent être ajoutés de deux façons différentes :

  • dans le tag de la configuration du pom (consultez l'exemple ci-dessus avec le fichier d'attribut );
  • passés au plug-in via les arguments JVM.

Si l'attribut est défini avec une valeur ${attributeName} dans le pom, alors vous pouvez lui passer une valeur lorsqu'il exécute la commande mvn via un plug-in JVM. Dans le cas du accountId dans le pom ci-dessus, vous pouvez le passer comme suit :

mvn clean test -Daccount_id=492b2ecd-888d-4087-8ab5-42cab17334ad
Remarque : La seconde option est recommandée pour des informations sensibles comme l'ID du compte, pour s'assurer qu'elles ne soient jamais commitées avec le pom vers un emplacement public par erreur.

Attributs pom

Le tableau suivant décrit les options de personnalisation disponibles.

Nom Type Obligatoire ? Défaut Description
file Fichier Oui X Chemin d'accès du fichier pointant vers le fichier d'export Talend Cloud API Tester à partir de l'emplacement du pom.
selectedEnvironment Chaîne de caractères Non X Le nom de l'environnement à utiliser (assurez-vous qu'il a été exporté vers le fichier JSON).
accountId Chaîne de caractères Oui X

Un ID de compte valide.

L'ID de votre compte se trouve dans la page Subscription de Talend Cloud Management Console.

stopOnFailure Booléen Non false Stoppe le build si une erreur/un échec survient.
httpclientTimeoutInMs Entier Non 60000 Temps restant avant l'expiration d'HTTP en millisecondes.
variables Propriétés Non X Variables personnalisées.
xhrEmulation Booléen Non true Mimique le comportement de l'extension Chrome en ajoutant les en-têtes que le navigateur ajoute automatiquement, comme accept-*.
followRedirects Chaîne de caractères Non NONE Indique si le plug-in Maven doit, ou non, suivre les redirections comme cela est possible via les paramètres de l'extension Chrome du navigateur. Les valeurs possibles sont NONE ou ALL.
beforeTest URL Non X URL vers laquelle une notification doit être envoyée avant le début d'un test.
afterTest URL Non X URL vers laquelle une notification doit être envoyée après la complétion du test.
begin URL Non X URL vers laquelle une notification doit être envoyée avant le début du premier test.
end URL Non X URL vers laquelle une notification doit être envoyée après la complétion du dernier test.
useMavenProxies Booléen Non false Indique si le proxy configuré dans ~/.m2/settings.xml doit être utilisé pour vos appels de tests HTTP ou non.

Consultez l'exemple de configuration en entier ci-dessous :

<configuration>
    <file>/path/to/json/configuration/file.json</file>
    <selectedEnvironment>QA</selectedEnvironment>
    <accountId>${account_id}</accountId>
    <stopOnFailure>true</stopOnFailure>
    <httpclientTimeoutInMs>30000</httpclientTimeoutInMs>
    <xhrEmulation>false</xhrEmulation>
    <followRedirects>ALL</followRedirects>
    <beforeTest>https://my-ci-api.com/api1/notifications</beforeTest>
    <afterTest>https://my-ci-api.com/api1/notifications</afterTest>
</configuration>

Écraser les variables d'environnement

Vous pouvez écraser une variable d'environnement en ajoutant un tag variables dans la configuration du plug-in.

Dans le cas où vous devez exécuter une API sur un port différent d'une machine spécifique, même si l'environnement est réglé sur 443 via une variable d'environnement host, il vous faudra l'exécuter sur un port à 1337. Vous pouvez faire cela en écrasant la variable d'environnement port comme illustré ci-dessous.

<configuration>
    <file>test.json</file>
    <selectedEnvironment>localhost</selectedEnvironment>
    <variables>
        <!-- The variable port's value will be overwritten to 1337 -->
        <property>
            <name>port</name>
            <value>1337</value>
        </property>
        <!-- The variable apiEndpoint's value can be set when invoking Maven -->
        <property>
            <name>apiEndpoint</name>
            <value>${api.endpoint}</value>
        </property>
    </variables>
</configuration>
Vous pouvez configurer les propriétés Maven en tant que variables d'environnement lors du lancement du plug-in. Par exemple, vous pouvez paramétrer la valeur de apiEndpoint à ${api.endpoint} et la définir avec la commande suivante :
mvn test -Dapi.endpoint=https://httpbin.org

Utiliser un proxy

Votre API peut n'être accessible que par le biais d'un proxy. Dans ce cas, Talend vous propose une façon simple de configurer un proxy pour tous les appels HTTP réalisés par le plug-in Maven.

Configuration du proxy du système

Si le proxy est configuré pour l'ensemble du système sur l'ordinateur de test, alors exécutez simplement le plug-in avec un simple :

mvn test -Djava.net.useSystemProxies=true

Cet argument est disponible sur les système Windows récents et sur les systèmes Gnome 2.x. Pour plus d'informations, consultez Networking Properties (en anglais).

Configuration du proxy Maven

Le plug-in Maven peut réutiliser la configuration du proxy d'installation, définie dans settings.xml, simplement en utilisant la configuration suivante :

<configuration>
  <file>/test.json</file>
  <useMavenProxies>true</useMavenProxies>
</configuration>
Remarque : Pour le moment, l'attribut nonProxyHosts n'est pas supporté.

Pour plus d'informations sur la configuration du proxy Maven, consultez Configuring a proxy (en anglais).

Configuration du proxy JVM

La configuration du proxy peut également être configurée au moment de l'exécution à l'aide d'arguments JVM standards.

Pour plus d'informations, consultez Networking Properties (en anglais).

La configuration du proxy JVM sera appliquée à tous les JVM, ce qui affectera les requêtes exécutées, même celles d'autres plug-in Maven et/ou cibles.

Configuration du proxy HTTP

Si votre proxy utilise le protocole http, alors les arguments suivants sont disponibles.

Nom Défaut Description
http.proxyHost "" Le nom de l'hébergeur, ou l'adresse, du serveur proxy
http.proxyPort 80 Le numéro de port du serveur proxy
http.proxyUser "" Si le proxy utilise une authentification simple, le nom d'utilisateur ou d'utilisatrice de l'authentification
http.proxyPassword "" Si le proxy utilise authentification simple, le mot de passe de l'authentification
http.nonProxyHosts localhost|127.*|[::1] Non supporté. Indique l'hôte auquel vous souhaitez accéder, sans passer par le proxy

En prenant en compte les arguments précédents, le plug-in Maven peut être utilisé :

mvn test -Dhttp.proxyHost=192.168.1.127

Configuration du proxy HTTPS

Si votre proxy utilise le protocole https, alors les arguments suivants sont disponibles.

Nom Défaut Description
https.proxyHost "" Le nom de l'hébergeur, ou l'adresse, du serveur proxy.
https.proxyPort 443 Le numéro de port du serveur proxy.
http.proxyUser "" Si le proxy utilise une authentification simple, le nom d'utilisateur ou d'utilisatrice de l'authentification.
http.proxyPassword "" Si le proxy utilise une authentification simple, le mot de passe de l'authentification.
http.nonProxyHosts localhost|127.*|[::1] Non supporté. Indique les hébergeurs qui doivent être accédés sans passer par le proxy

Étant donnés les arguments précédents, le plug-in Maven peut être utilisé.

mvn test -Dhttps.proxyHost=192.168.1.127

Format de notifications

Notifications de test avant/après

Vous pouvez demander au plug-in Maven d'envoyer des notifications à l'URL de votre choix avant et/ou après chaque test. Si vous configurez les paramètres beforeTest et afterTest dans le pom, une requête POST est envoyée à l'URL que vous avez spécifié lors de la configuration au début et à la fin de chaque test.

Le corps de la requête ressemblera à ça :

{
  "name":[test name],
  "event":[BeforeTest|AfterTest],
  "result":[Ok|Failure|Error] &Tab;<- present only if event=afterTest
}

Notifications de début/fin

Vous pouvez demander au plug-in Maven d'envoyer des notifications à l'URL de votre choix à son démarrage et à son arrêt. Si vous configurez les paramètres begin et end dans le pom, une requête POST est envoyée à l'URL que vous avez spécifié lors de la configuration lorsque l'exécution du plug-in démarre et se termine.

Le corps de la requête ressemblera à ce qui suit :

{
  "event":[Begin|End]
}