Personnaliser vos tests
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
Attributs pom
Le tableau suivant décrit les options de personnalisation disponibles.
Nom | Type | Obligatoire ? | Défaut | Description |
---|---|---|---|---|
file | Fichier | Oui | Aucune valeur par défaut | 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 | Aucune valeur par défaut | Le nom de l'environnement à utiliser (assurez-vous qu'il a été exporté vers le fichier JSON). |
accountId | Chaîne de caractères | Oui | Aucune valeur par défaut | Un ID de compte valide. L'ID de votre compte se trouve dans la page Subscription de Talend Management Console. Si vous n'avez pas accès à cette page, contactez votre administrateur·trice. |
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 | Aucune valeur par défaut | 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 | Aucune valeur par défaut | URL vers laquelle une notification doit être envoyée avant le début d'un test. |
afterTest | URL | Non | Aucune valeur par défaut | URL vers laquelle une notification doit être envoyée après la complétion du test. |
begin | URL | Non | Aucune valeur par défaut | URL vers laquelle une notification doit être envoyée avant le début du premier test. |
end | URL | Non | Aucune valeur par défaut | 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>
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>
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 impactera 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 basique, le nom d'utilisateur ou d'utilisatrice de l'authentification |
http.proxyPassword | "" | Si le proxy utilise authentification basique, 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 basique, le nom d'utilisateur ou d'utilisatrice de l'authentification. |
http.proxyPassword | "" | Si le proxy utilise une authentification basique, 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] <- 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]
}