I am designing automation scripts using the Cucumber BDD framework for REST APIs using RestAssured. I have one API which generates the "Token" and then there is another API for order creation which requires this "Token" in the authorization parameter. Here is my feature file:
Feature: Create Order API
@Background:
Scenario Outline: Generate Access token With Valid Details
Given Query param for request
| grant_type |
| client_credentials |
Given Basic Auth keys for request "<userName>" and "<key>"
When Build request for baseurl "PAYPAL_BASE_URI" and endpoint "ENDPOINT_GET_AUTH_KEY"
# And Set global "access_token" in "token"
And Perform "POST" request using
Then status code is 200
And response contains "scope"
Examples:
| userName | key |
| AWnCbuv9Bee0_6 | EMWowD696LqfznidhQ2RT_jZL2ys |
Now the response of the above API is as follows:
{
"scope": "https://uri.pppaypal.com/services/invoicing https://uri.pppaypal.com/services/applications/webhooks",
"access_token": "ALs1szFnv2TJ19Zf3vq",
"token_type": "Bearer",
"app_id": "APP-284543T",
"expires_in": 311286,
"nonce": "2022-05-31T03:41:41ZWs9dpOQ"
}
Now I need this "access_token" as in the "Create Order API" Authorization parameter with Bearer. The "Create Order API" feature file is below:
Scenario: Verify create order api using valid auth
Given Generate request
And Build request for baseurl "PAYPAL_BASE_URI" and endpoint "ENDPOINT_CREATE_ORDER_API"
And Set header values as
| Content-Type | Authorization |
| application/json | Bearer <token> |
When Perform "POST" request using "FILE_PATH_ORDER_JSON"
Then status code is 201
How can I set "access_token" in "token" as a global variable from the feature file so that I can use it anywhere in this feature file using the following step?
And Set global "access_token" in "token"