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-42cab17334adPom-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.orgVerwenden 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=trueDieses 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.127HTTPS-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.127Format 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]
}