Ask a Question

Automating the process to get access token

SoapuiTeay
Occasional Contributor

Automating the process to get access token

I am working on a soap automation project on which I need access token.
We have to click on "Auth" tab

2. Click on "Get Access Token"

3. Click on "Get Access Token" again

4. Wait for SoapUI Browser to open to manually enter in the data and click "Login to Application "

From there we now can run all the Requests solution for the Automation section in the "Get Access Token" section > Automation... Button where you can put a page 1 or page 2 script. (none of the online examples worked for Salesforce)

or

or

b. A Groovy way to do the above

or

c. To Generalize - we don't want to have to manually do the above 1-4 steps
Please suggest me how to automate the above 1-4 steps.
12 REPLIES 12
mattb
Staff

Hi,

Can we directly leverage the Salesforce API instead? If we could ping the service and request authentication through an API call, I think it would provide more room for automation.  

SoapuiTeay
Occasional Contributor

It opens a web login page and we need to enter the credentials. So far I am entering the data manually. Could not automate this step. Do you have any idea on this?
aihnatsiuk
Occasional Contributor

I created the script for it. You need to know the email, password, login button element locators. Now the system automatically opens the login page> fill in all the info and click the login button when the token expired

aihnatsiuk_0-1639076949945.png

 

sonya_m
SmartBear Alumni (Retired)

Thank you so much @aihnatsiuk !

 

@SoapuiTeay Does the solution work for you? Please let us know!


Sonya Mihaljova
Community and Education Specialist

aaronpliu
Frequent Contributor

@SoapuiTeay 

If you have separate /token for oauth2, then you are able to create a scripts to dynamically get access_token.

 

FYI

import groovy.json.JsonSlurper

def data = new JsonSlurper().parseText(response) // get response of token
// set access token
def authProfileName = "LoginToken"
def project = testRunner.testCase.testSuite.project
def profile = project.getOAuth2ProfileContainer()

if (! (authProfileName in profile.getOAuth2ProfileList().name)) {
	profile.addNewOAuth2Profile(authProfileName) // add new oauth2
}
def auth = profile.getProfileByName(authProfileName)
auth.setAccessToken(data.access_token)  // set token
project.setAuthProfile(authProfileName) // applied in project level

 

Then you can select "LoginToken" for your request in test step or changed it in Auth manager

 

Thanks,

/Aaron

SoapuiTeay
Occasional Contributor

I have already tried this. But I could only enter username. Once I click on the next button to enter password, again it asks me to enter username. I am not able to click on next button using js. Is there any other way to enter credentials.
SoapuiTeay
Occasional Contributor

No, I have already tried this. But I could not enter the credentials using this method.
SoapuiTeay
Occasional Contributor

Thanks Aaron. But it opens a web login page in soapui. I need to provide the credentials. Right now I am providing manually. I tried to automate using js but it didn't work. Do you have any other workarounds for this?
aihnatsiuk
Occasional Contributor

Could you send the click button function in your code? my example

function click(){
document.querySelector("HERE YOUR CSS SELECTOR").click();
}

 

cancel
Showing results for 
Search instead for 
Did you mean: