Stel API OAuth2 Authenticatie in Katalon Studio in
Om API-testing op Salesforce uit te voeren met behulp van Katalon Studio, moet je authenticeren om toegang te krijgen tot de REST API van Salesforce. Hoewel je je eigen verbonden app kunt creëren en ermee kunt authenticeren, is een eenvoudigere benadering voor testdoeleinden het gebruik van een toegangstoken dat is verkregen via externe tools of methoden. Hier is hoe je authenticatie instelt voor Salesforce API-testing in Katalon Studio.
Een toegangstoken verkrijgen voor Salesforce
Voordat je API-verzoeken naar Salesforce stuurt, moet je een toegangstoken beveiligen om je verzoeken te authenticeren. Dit token, vaak aangeduid als een “bearer token”, is cruciaal voor autorisatie. Salesforce CLI is een gebruikelijke methode om dit token te verkrijgen, en het is een van de gemakkelijkste manieren voor testen. Hier is hoe:
Verkrijg een toegangstoken met Salesforce CLI
Gebruik de Salesforce CLI om het toegangstoken (bearer token) te krijgen voor het authenticeren van API-verzoeken.
-
Installeer of update Salesforce CLI:
- Als je Salesforce CLI al hebt geïnstalleerd, update het dan volgens de instructies in de documentatie.
- Zo niet, installeer dan de nieuwste versie van Salesforce CLI voor je besturingssysteem.
- Verifieer je installatie.
-
Log in op je Developer Org:
sf org login web
Er wordt een browservenster geopend naar de Salesforce loginpagina. Log in op je Developer Org met je inloggegevens en sta toegang toe.
-
Verkrijg het toegangstoken: Na het inloggen, haal je het toegangstoken en de instance URL op met het volgende commando:
sf org display
Maak in de commando-uitvoer een notitie van het Toegangstoken en de Instance URL. Je hebt deze nodig voor het maken van API-verzoeken.
Integratie van Salesforce API met Katalon Studio
Nu je je toegangstoken hebt, is hier hoe je Katalon Studio configureert voor API-testing met Salesforce.
Stappen om authenticatie in te stellen in Katalon Studio
-
Configureer Katalon Studio voor API-testing:
- Start Katalon Studio en maak een nieuw project aan of open een bestaand project.
- Navigeer naar Object Repository en maak een nieuw RESTful verzoekobject aan. Configureer de verzoek-URL, methode en andere parameters voor de Salesforce API die je wilt testen.
-
Stel authenticatie in:
- Ga in de configuratie van het verzoekobject naar het tabblad Autorisatie.
- Selecteer Bearer Token uit het type dropdown-menu.
- Voer het toegangstoken in dat je hebt verkregen van Salesforce CLI in het tokenveld.
-
Stuur API-verzoeken:
- Na het instellen van de autorisatie, configureer je de rest van je API-verzoek, inclusief headers, body content (indien van toepassing) en queryparameters.
- Gebruik de ingebouwde functies van Katalon om het verzoek te sturen en de reactie te verifiëren.
-
Automatiseer tokenvernieuwing (optioneel):
- Als je testsessie langer duurt dan de vervaltijd van het token, kun je een mechanisme in Katalon implementeren (bijv. met behulp van Test Listeners of aangepaste trefwoorden) om het token automatisch te vernieuwen.
-
Verifieer de instellingen:
- Voer je geconfigureerde API-verzoek uit om ervoor te zorgen dat de authenticatie correct is ingesteld en dat je succesvol kunt communiceren met de API van Salesforce.
-
Best Practices voor Beveiliging:
- Bewaar gevoelige informatie zoals toegangstokens veilig (vermijd hardcoding). Gebruik omgevingsvariabelen voor dit doel, vooral in CI/CD pipelines.
- Houd rekening met de API-limieten van Salesforce om te voorkomen dat je deze tijdens het testen overschrijdt.
Best Practices voor OAuth Flow API in Testautomatisering
Voor testautomatisering kun je een OAuth API-flow instellen om dynamisch tokens voor je tests te halen. Hier is een stap-voor-stap handleiding voor het implementeren van een aangepaste OAuth-flow in Katalon Studio:
1. Aangepaste .env Loader Functie
Deze functie laadt omgevingsvariabelen uit een .env
bestand waar je gevoelige informatie zoals client-ID’s, geheimen, gebruikersnamen en wachtwoorden kunt opslaan.
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("Geen omgevingsvariabelen gevonden.")
}
return envVars
}
}
Deze functie leest omgevingsvariabelen uit een .env
bestand en valt terug op systeemvariabelen indien nodig. Gebruik het om gevoelige gegevens zoals API-inloggegevens veilig op te slaan.
2. Aangepaste functie voor het ophalen van OAuth2-tokens
Deze functie haalt dynamisch een OAuth2-token op voor API-testing:
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("Mislukt om OAuth2-token op te halen: HTTP-status = ${response.getStatusCode()}")
return null
}
}
}
Deze functie stuurt een POST-verzoek om het OAuth2-token dynamisch op te halen. Door beide aangepaste functies te gebruiken, kun je tokens veilig opslaan en gebruiken voor API-testing.
Conclusie
Door deze stappen te volgen, kun je effectief OAuth2-authenticatie in Katalon Studio instellen voor het testen van Salesforce API’s. Bovendien zal de integratie van de aangepaste omgevingslader en OAuth2-token ophaalfuncties je beveiliging en flexibiliteit tijdens het testen verbeteren.