Forum Discussion
Hi Sriraj, I was also ran into similar issue and one of the community member helped with groovy method. In my example I have only one Auth profile but I could have multiple in future.
Implementation:
I used this in event handler - TestRunListener.beforeRun - by doing this, script is checking at the beginning of a testcase if token is expired or not. if expired then retrieves from the server.
Script:
import com.eviware.soapui.impl.rest.actions.oauth.OltuOAuth2ClientFacade
import com.eviware.soapui.support.editor.inspectors.auth.TokenType
import com.eviware.soapui.impl.rest.OAuth2Profile.*
//Get Project
def project = testRunner.testCase.testSuite.getProject()
//Get oAuth Profile Name
def oAuthProfilelist = project.getOAuth2ProfileContainer().getOAuth2ProfileNameList()
def oAuthProfileName
if(oAuthProfilelist.size() == 1){
oAuthProfileName = oAuthProfilelist[0]
log.info "oAuth Profile name is: $oAuthProfileName"
}
//Get Token Status
def oAuthProfile = project.getAuthRepository().getEntry("$oAuthProfileName")
def TokenStatus = oAuthProfile.accessTokenStatus.toString()
log.info "Access Token Status is: $TokenStatus"
//Get Access Token from the server if expired
if (TokenStatus != 'RETRIEVED_FROM_SERVER'){
def oAuthClientFacade = new OltuOAuth2ClientFacade(TokenType.ACCESS)
oAuthClientFacade.requestAccessToken(oAuthProfile, true)
log.info "Access Token Status is "+ oAuthProfile.accessTokenStatus
}
since you have multiple profiles, you could iterate through them and update token.
Hope this helps!
New2API Ideally if your script works at test step level , It must work for me as well. Let me give it a try.
- New2API8 years agoFrequent Contributor
Sriraj, give it a try. Currently it works like charm for me. Just one correction - this scripts runs just before a testcase as my event handler is TestRunListener.beforeRun.
thanks!
- Sriraj8 years agoContributor
i get the below error when i try it for one
ERROR:java.lang.NullPointerException: Cannot get property 'accessTokenStatus' on null object
- testhrishi7 years agoFrequent Contributor
The script provided in the help doc also leads me to the same error.
anyone else tried to get passed this step?
Related Content
- 2 years ago