Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Anpassen der Tests

Bearbeiten Sie die Datei pom.xml, um Ihre API-Testkonfiguration bedarfsgerecht anzupassen.

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
InformationshinweisAnmerkung: Die zweite Option wird für sensible Informationen wie die Konto-ID empfohlen, um sicherzustellen, dass sie nie versehentlich gemeinsam mit der pom an einen öffentlich zugänglichen Ort übergeben werden.

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>
Beim Start des Plug-Ins können Sie Maven-Eigenschaften als Umgebungsvariablen festlegen und sie definieren. So können Sie beispielsweise über den folgenden Befehl den Wert apiEndpoint auf ${api.endpoint} einstellen und definieren:
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>
InformationshinweisAnmerkung: Vorerst wird das nonProxyHosts-Attribut nicht unterstützt.

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]
}

Hat diese Seite Ihnen geholfen?

Wenn Sie ein Problem mit dieser Seite oder ihrem Inhalt feststellen, sei es ein Tippfehler, ein ausgelassener Schritt oder ein technischer Fehler, informieren Sie uns bitte!