Ich versuche, die RequestsLibrary auf eine API, das ist die Authentifizierung mit dem OAuth2 zu verwenden.Robot Framework api Test mit OAuth2 Authorization Request-Header
Authentifizierung wird über OAuth2 mit Anmeldeinformationen an den/versorgt wird v1/authToken Endpunkt. Nachfolgende Aufrufe an den API müssen das Token als "Bearer" in der Kopfzeile "Authorization" der HTTP-Anfragen enthalten.
Also unten ist der Testfall. Der Fehler, den ich bekomme, ist: 401! = 200
Die Anmeldeinformationen funktionieren in jmeter ok und eine Liste der Konten wird zurückgegeben. Ich kann das RF-Skript jedoch nicht ausführen. Jede Hilfe wird geschätzt.
Im Skript
- Log-Konsole
${accessToken}
das Zugriffstoken zurückgibt: 8ETFXTZOWQLrgsMj7c_KuCEeypdj-eO1r ... - Log
${token}
kehrt zur Konsole: Bearer 8ETFXTZOWQLrgsMj7c_KuCEeypdj-eO1r ...
*** Test Cases ***
Get authToken
Create Session hook http://xxxx.azurewebsites.net verify=${True}
${data}= Create Dictionary grant_type=client_credentials client_id=yyy-zzzz client_secret=xxxxxxxxxxxxxxx
${headers}= Create Dictionary Content-Type=application/x-www-form-urlencoded
${resp}= post request hook /v1/authtoken data=${data} headers=${headers}
Should Be Equal As Strings ${resp.status_code} 200
Dictionary Should Contain Value ${resp.json()} bearer
${accessToken}= evaluate $resp.json().get("access_token")
Log to Console ${accessToken}
${Bearer}= Set Variable Bearer
${token}= catenate Bearer ${accessToken}
Log to Console ${token}
${headers}= Create Dictionary Authorization=${token}
${resp1}= get request hook /v1/integration/accounts headers=${headers}
Should Be Equal As Strings ${resp1.status_code} 200
#Log to Console ${resp1.json()}
@ sandeep @Bryan Hast du Antwort auf Ihre Frage finden, wie ich gleichen Fehler bin. bitte teilen Sie die Antwort –
Sorry, ich war weg. Habe gerade diese Diskussion gesehen .... Ich werde es versuchen. –
Ja, das scheint jetzt für mich zu funktionieren. Vielen Dank. Allerdings ist meine reine Python-Methode, um das Auth2-Token zu generieren, ich muss sagen viel prägnanter! –