Einrichtung der API OAuth2-Authentifizierung in Katalon Studio
Um API-Tests auf Salesforce mit Katalon Studio durchzuführen, müssen Sie sich authentifizieren, um auf die REST-API von Salesforce zugreifen zu können. Obwohl Sie Ihre eigene verbundene App erstellen und sich damit authentifizieren können, ist ein einfacherer Ansatz für Testzwecke die Verwendung eines Zugriffstokens, das über externe Tools oder Methoden erhalten wurde. Hier erfahren Sie, wie Sie die Authentifizierung für Salesforce API-Tests in Katalon Studio einrichten.
Ein Zugriffstoken für Salesforce erhalten
Bevor Sie API-Anfragen an Salesforce senden, müssen Sie ein Zugriffstoken sichern, um Ihre Anfragen zu authentifizieren. Dieses Token, oft als “Bearer-Token” bezeichnet, ist für die Autorisierung unerlässlich. Salesforce CLI ist eine gängige Methode, um dieses Token zu erhalten, und es ist eine der einfachsten Möglichkeiten für Tests. So geht’s:
Ein Zugriffstoken mit Salesforce CLI erhalten
Verwenden Sie die Salesforce CLI, um das Zugriffstoken (Bearer-Token) für die Authentifizierung von API-Anfragen zu erhalten.
-
Salesforce CLI installieren oder aktualisieren:
- Wenn Sie Salesforce CLI bereits installiert haben, aktualisieren Sie es gemäß den Anweisungen in der Dokumentation.
- Wenn nicht, installieren Sie die neueste Version von Salesforce CLI für Ihr Betriebssystem.
- Überprüfen Sie Ihre Installation.
-
Melden Sie sich bei Ihrer Developer Org an:
sf org login web
Ein Browserfenster öffnet sich zur Salesforce-Anmeldeseite. Melden Sie sich mit Ihren Anmeldedaten bei Ihrer Developer Org an und erlauben Sie den Zugriff.
-
Erhalten Sie das Zugriffstoken: Nach dem Anmelden, rufen Sie das Zugriffstoken und die Instanz-URL mit dem folgenden Befehl ab:
sf org display
Notieren Sie sich im Befehlsausgabe das Zugriffstoken und die Instanz-URL. Sie benötigen diese für die Durchführung von API-Anfragen.
Integration der Salesforce API mit Katalon Studio
Jetzt, da Sie Ihr Zugriffstoken haben, erfahren Sie hier, wie Sie Katalon Studio für API-Tests mit Salesforce konfigurieren.
Schritte zur Einrichtung der Authentifizierung in Katalon Studio
-
Katalon Studio für API-Tests konfigurieren:
- Starten Sie Katalon Studio und erstellen oder öffnen Sie Ihr Projekt.
- Navigieren Sie zum Objekt-Repository und erstellen Sie ein neues RESTful-Anfrageobjekt. Konfigurieren Sie die Anfrage-URL, Methode und andere Parameter für die Salesforce API, die Sie testen möchten.
-
Authentifizierung einrichten:
- In der Konfiguration des Anfrageobjekts gehen Sie zum Tab Autorisierung.
- Wählen Sie Bearer-Token aus dem Typ-Dropdown.
- Geben Sie das Zugriffstoken ein, das Sie von Salesforce CLI erhalten haben, in das Tokenfeld ein.
-
API-Anfragen senden:
- Nachdem Sie die Autorisierung eingerichtet haben, konfigurieren Sie den Rest Ihrer API-Anfrage, einschließlich Header, Body-Inhalt (falls zutreffend) und Abfrageparameter.
- Verwenden Sie die integrierten Funktionen von Katalon, um die Anfrage zu senden und die Antwort zu überprüfen.
-
Token-Aktualisierung automatisieren (Optional):
- Wenn Ihre Testsitzung länger dauert als die Ablaufzeit des Tokens, können Sie einen Mechanismus in Katalon implementieren (z.B. mit Test-Listenern oder benutzerdefinierten Schlüsselwörtern), um das Token automatisch zu aktualisieren.
-
Einrichtung überprüfen:
- Führen Sie Ihre konfigurierte API-Anfrage aus, um sicherzustellen, dass die Authentifizierung korrekt eingerichtet ist und dass Sie erfolgreich mit der API von Salesforce kommunizieren können.
-
Best Practices für die Sicherheit:
- Speichern Sie sensible Informationen wie Zugriffstoken sicher (vermeiden Sie das Hardcoding). Verwenden Sie Umgebungsvariablen für diesen Zweck, insbesondere in CI/CD-Pipelines.
- Behalten Sie die API-Limits von Salesforce im Auge, um sie während des Tests nicht zu überschreiten.
Best Practices für OAuth Flow API in der Testautomatisierung
Für die Testautomatisierung können Sie einen OAuth API-Flow einrichten, um dynamisch Tokens für Ihre Tests abzurufen. Hier ist eine Schritt-für-Schritt-Anleitung zur Implementierung eines benutzerdefinierten OAuth-Flows in Katalon Studio:
1. Benutzerdefinierte .env Loader-Funktion
Diese Funktion lädt Umgebungsvariablen aus einer .env
-Datei, in der Sie sensible Informationen wie Client-IDs, Geheimnisse, Benutzernamen und Passwörter speichern können.
package environment
import com.kms.katalon.core.annotation.Keyword
import java.nio.file.Files
import java.nio.file.Path
import java.nio.file.Paths
import java.io.IOException
public class EnvironmentLoader {
@Keyword
static Map<String, String> loadEnvironmentVariables(String filename = ".env") throws IOException {
Map<String, String> envVars = new HashMap<>()
Path path = Paths.get(new File(".").getAbsolutePath()).getParent()
boolean found = false
while (path != null && Files.exists(path) && !found) {
Path possibleEnvPath = path.resolve(filename)
if (Files.exists(possibleEnvPath)) {
found = true
Files.readAllLines(possibleEnvPath).each { line ->
if (!line.startsWith("#") && line.contains("=")) {
def parts = line.split("=")
if (parts.length == 2) {
envVars.put(parts[0].trim(), parts[1].trim())
}
}
}
}
path = path.getParent()
}
System.getenv().each { key, value ->
if (!envVars.containsKey(key)) {
envVars.put(key, value)
}
}
if (envVars.isEmpty()) {
throw new IllegalStateException("No environment variables found.")
}
return envVars
}
}
Diese Funktion liest Umgebungsvariablen aus einer .env
-Datei und greift bei Bedarf auf Systemvariablen zurück. Verwenden Sie sie, um sensible Daten wie API-Anmeldeinformationen sicher zu speichern.
2. Benutzerdefinierte Funktion zum Abrufen von OAuth2-Tokens
Diese Funktion holt dynamisch ein OAuth2-Token für API-Tests:
package oauthflowapi
import com.kms.katalon.core.annotation.Keyword
import com.kms.katalon.core.testobject.RequestObject
import com.kms.katalon.core.testobject.RestRequestObjectBuilder
import com.kms.katalon.core.testobject.TestObjectProperty
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import groovy.json.JsonSlurper
class OAuth2 {
@Keyword
def getOAuth2Token(String clientId, String clientSecret, String url) {
String body = "grant_type=client_credentials&client_id=${clientId}&client_secret=${clientSecret}"
List<TestObjectProperty> headers = Arrays.asList(
new TestObjectProperty("Content-Type", ConditionType.EQUALS, "application/x-www-form-urlencoded")
)
RequestObject requestObject = new RestRequestObjectBuilder()
.withRestUrl(url)
.withRestRequestMethod("POST")
.withHttpHeaders(headers)
.withTextBodyContent(body)
.build()
def response = WS.sendRequest(requestObject)
if (response.getStatusCode() == 200) {
def jsonResponse = new JsonSlurper().parseText(response.getResponseText())
return jsonResponse.access_token
} else {
println("Failed to retrieve OAuth2 token: HTTP Status = ${response.getStatusCode()}")
return null
}
}
}
Diese Funktion sendet eine POST-Anfrage, um das OAuth2-Token dynamisch abzurufen. Durch die Verwendung beider benutzerdefinierten Funktionen können Sie Tokens für API-Tests sicher speichern und verwenden.
Schlussfolgerung
Indem Sie diesen Schritten folgen, können Sie effektiv die OAuth2-Authentifizierung in Katalon Studio für das Testen von Salesforce APIs einrichten. Darüber hinaus wird die Integration der benutzerdefinierten Umgebungs-Loader- und OAuth2-Token-Abruffunktionen Ihre Sicherheit und Flexibilität während des Tests verbessern.