Anpassen der Tests
Erstellen einer benutzerspezifischen Testkonfiguration
Wenn Sie Webhooks nutzen oder die Testausführungen anpassen möchten, können Sie die pom-Datei entsprechend konfigurieren.
Nachstehend eine pom.xml-Beispieldatei, die konfigurierbaren Optionen werden weiter unten detailliert beschrieben.
<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>
Pom-Konfiguration
Die nachfolgend aufgeführten Attribute können der pom-Datei hinzugefügt werden, um das Verhalten des Plug-Ins zu optimieren. Für das Hinzufügen der Attribute stehen Ihnen zwei Möglichkeiten zur Auswahl:
- Hinzufügen im Konfigurations-Tag der pom (siehe obiges Beispiel mit der Attributdatei)
- Übergeben an das Plug-In über JVM-Argumente
Wenn ein Attribut in der pom mit dem Wert ${attributeName} definiert wird, kann bei der Ausführung des mvn-Befehls über ein JVM-Plug-In ein Wert an das Attribut übergeben werden. Im Fall von „accountId“ in der pom oben kann der Wert folgendermaßen übergeben werden:
mvn clean test -Daccount_id=492b2ecd-888d-4087-8ab5-42cab17334ad
Pom-Attribute
In der folgenden Tabelle werden die verfügbaren Anpassungsoptionen beschrieben.
Name | Typ | Obligatorisch | Standard | Beschreibung |
---|---|---|---|---|
file (Datei) | Datei | Ja | Kein Standardwert | Dateipfad der Exportdatei von Talend Cloud API Tester ausgehend vom Speicherort der pom. |
selectedEnvironment (Ausgewählte Umgebung) | String (Zeichenfolge) | Nein | Kein Standardwert | Name der zu verwendenden Umgebung (stellen Sie sicher, dass dieser in die JSON-Datei exportiert wurde). |
accountId (Konto-ID) | String (Zeichenfolge) | Ja | Kein Standardwert | Gültige Konto-ID. Sie finden Ihre Konto-ID auf der Seite Subscription (Subskription) von Talend Management Console. Wenn Sie nicht auf diese Seite zugreifen können, wenden Sie sich an Ihren Administrator. |
stopOnFailure (Bei Fehler anhalten) | Boolescher Wert | Nein | false | Die Verarbeitung der Generierung wird angehalten, sobald ein Fehler bzw. eine Störung auftritt. |
httpclientTimeoutInMs (Timeout für HTTP-Client in ms) | Integer (Ganzzahl) | Nein | 60000 | Zeit bis HTTP-Timeout in Millisekunden. |
variables (Variablen) | Eigenschaften | Nein | Kein Standardwert | Benutzerdefinierte Variablen. |
xhrEmulation (XHR-Emulation) | Boolescher Wert | Nein | true | Imitiert das Verhalten der Chrome-Erweiterung, indem die vom Browser automatisch hinzugefügten Header hinzugefügt werden, z. B. „accept-*“. |
followRedirects (Weiterleitungen folgen) | String (Zeichenfolge) | Nein | NONE (KEINE) | Gibt an, ob das Maven-Plug-In Weiterleitungen folgen soll, da diese Möglichkeit über die Einstellungen der Chrome-Erweiterung im Browser besteht. Mögliche Werte sind NONE (KEINE) oder ALL (ALLE). |
beforeTest (Vor Test) | URL | Nein | Kein Standardwert | URL, an die vor dem Start eines Tests eine Benachrichtigung gesendet werden soll. |
afterTest (Nach Test) | URL | Nein | Kein Standardwert | URL, an die nach Abschluss eines Tests eine Benachrichtigung gesendet werden soll. |
begin (Beginn) | URL | Nein | Kein Standardwert | URL, an die vor der Ausführung des ersten Tests eine Benachrichtigung gesendet werden soll. |
end (Ende) | URL | Nein | Kein Standardwert | URL, an die nach der Ausführung des letzten Tests eine Benachrichtigung gesendet werden soll. |
useMavenProxies (Maven-Proxies verwenden) | Boolescher Wert | Nein | false | Gibt an, ob der in ~/.m2/settings.xml konfigurierte Proxy für die HTTP-Aufrufe Ihres Tests verwendet werden soll oder nicht. |
Siehe nachstehendes Beispiel für eine vollständige Konfiguration:
<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>
Überschreiben von Umgebungsvariablen
Sie können eine Umgebungsvariable überschreiben, indem Sie ein variables-Tag in der Konfiguration des Plug-Ins hinzufügen.
Wenn Sie Ihre API über einen anderen Port auf einem bestimmten Gerät ausführen müssen, obwohl die Umgebung über die Umgebungsvariable host auf 443 festgelegt wurde, muss die API-Ausführung über den Port 1337 erfolgen. Überschreiben Sie dazu einfach die Umgebungsvariable port, wie nachstehend gezeigt.
<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
Verwenden eines Proxy
Ihre API ist ggf. über einen Proxy zugänglich. In diesem Fall ermöglicht Ihnen Talend die Konfiguration eines Proxy für alle vom Maven-Plug-In ausgegebenen HTTP-Aufrufe anhand überaus einfacher Verfahren.
Systemspezifische Proxy-Konfiguration
Wenn der Proxy auf dem Testcomputer für das gesamte System konfiguriert ist, starten Sie das Plug-In ganz einfach über den folgenden einfachen Befehl:
mvn test -Djava.net.useSystemProxies=true
Dieses Argument ist in neueren Windows- sowie in Gnome 2.x-Systemen verfügbar. Weitere Informationen finden Sie unter Netzwerkeigenschaften.
Maven-spezifische Proxy-Konfiguration
Das Maven-Plug-In kann die in settings.xml definierte Proxy-Konfiguration der Maven-Installation heranziehen. Dazu wird ganz einfach die folgende Konfiguration verwendet:
<configuration>
<file>/test.json</file>
<useMavenProxies>true</useMavenProxies>
</configuration>
Weitere Informationen zur Maven-spezifischen Proxy-Konfiguration finden Sie unter Konfigurieren eines Proxy.
JVM-spezifische Proxy-Konfiguration
Die Proxy-Konfiguration kann ebenfalls zur Laufzeit mithilfe der JVM-Standardargumente vorgenommen werden.
Weitere Informationen zu JVM-Netzwerkargumenten finden Sie unter Oracle-Netzwerkeigenschaften.
Die JVM-Proxy-Konfiguration wird auf alle JVMs angewendet, d. h. sie gilt für alle Requests, selbst wenn diese von anderen Maven-Plug-Ins und/oder Zielen durchgeführt werden.
HTTP-spezifische Proxy-Konfiguration
Wenn der Proxy das http-Protokoll verwendet, stehen die folgenden Argumente zur Verfügung.
Name | Standard | Beschreibung |
---|---|---|
http.proxyHost | "" | Hostname oder Adresse des Proxy-Servers. |
http.proxyPort | 80 | Portnummer des Proxy-Servers. |
http.proxyUser | "" | Wenn der Proxy die Basisauthentifizierung verwendet: Benutzername der Authentifizierung. |
http.proxyPassword | "" | Wenn der Proxy die Basisauthentifizierung verwendet: Passwort der Authentifizierung. |
http.nonProxyHosts | localhost|127.*|[::1] | Nicht unterstützt. Gibt an, dass der Zugriff auf die Hosts nicht über den Proxy erfolgen soll. |
Unter Berücksichtigung der vorhergehenden Argumente kann das Maven-Plug-In verwendet werden:
mvn test -Dhttp.proxyHost=192.168.1.127
HTTPS-spezifische Proxy-Konfiguration
Wenn der Proxy das https-Protokoll verwendet, stehen die folgenden Argumente zur Verfügung.
Name | Standard | Beschreibung |
---|---|---|
https.proxyHost | "" | Hostname oder Adresse des Proxy-Servers. |
https.proxyPort | 443 | Portnummer des Proxy-Servers. |
http.proxyUser | "" | Wenn der Proxy die Basisauthentifizierung verwendet: Benutzername der Authentifizierung. |
http.proxyPassword | "" | Wenn der Proxy die Basisauthentifizierung verwendet: Passwort der Authentifizierung. |
http.nonProxyHosts | localhost|127.*|[::1] | Nicht unterstützt. Gibt an, dass der Zugriff auf die Hosts nicht über den Proxy erfolgen soll. |
Unter Berücksichtigung der vorhergehenden Argumente kann das Maven-Plug-In verwendet werden.
mvn test -Dhttps.proxyHost=192.168.1.127
Format der Benachrichtigungen
Benachrichtigung vor/nach Tests
Sie können veranlassen, dass das Maven-Plug-In vor und/oder nach jedem Test Benachrichtigungen an eine URL Ihrer Wahl sendet. Wenn Sie die Parameter beforeTest (Vor Test) und afterTest (Nach Test) in der pom-Datei konfigurieren, wird an die in der Konfiguration angegebene URL zu Beginn und am Ende jedes Tests ein POST-Request gesendet.
Der Body des Requests sieht folgendermaßen aus:
{
"name":[test name],
"event":[BeforeTest|AfterTest],
"result":[Ok|Failure|Error] <- present only if event=afterTest
}
Beginn/Ende-Benachrichtigungen
Sie können veranlassen, dass das Maven-Plug-In zu Beginn und am Ende seiner Ausführung Benachrichtigungen an eine URL Ihrer Wahl sendet. Wenn Sie die Parameter begin (Beginn) und end (Ende) in der pom-Datei konfigurieren, wird an die in der Konfiguration angegebene URL beim Start sowie beim Ende der Plug-In-Ausführung ein POST-Request gesendet.
Der Body des Requests sieht folgendermaßen aus:
{
"event":[Begin|End]
}