Home > Net >  Passing token to Locust request
Passing token to Locust request

Time:09-07

I am trying to pass the Oauth token generated into a @task request

This is resulting in a 401 error

from locust import HttpUser, constant, task
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)


class ProcessRequests(HttpUser):

    def on_start(self):

        tenant_id = "tenant123"
        client_id = "client123"
        secret = "secret123"
        scope = "api://123/.default"

        body ="grant_type=client_credentials&client_id="   client_id   "&client_secret="   secret   "&scope="   scope

        tokenResponse = self.client.post(
                f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token",
                body,
                headers = { "ContentType": "application/x-www-form-urlencoded"} 
            )

        response = tokenResponse.json()
        responseToken = response['access_token']
        

        self.headers = {'Authorization': 'Bearer'   responseToken}


    @task
    def get_labware(self):
        self.client.get("https://url/123", name="Labware",headers=self.headers)

    @task
    def get_instruments(self):
        self.client.get("https://url/456", name="Instruments", headers=self.headers)

I got this to work in K6/javascript so I know the parameters are correct. I just must not be parsing or passing them correctly here in python.

CodePudding user response:

You need a space between Bearer and your token. Try this:

self.headers = {'Authorization': 'Bearer '   responseToken}
  • Related