{{announcement.body}}
{{announcement.title}}

OAuth API Testing With JMeter

DZone 's Guide to

OAuth API Testing With JMeter

This article talks about how to test OAuth API's using JMeter 5.1. There are two major steps involved in OAuth testing. Find out more!

· Performance Zone ·
Free Resource

For Installing and Overview of JMETER. Please check

https://dzone.com/articles/jmeter-tutorial-for-beginners-jmeter-load-testing

This article talks about how to test OAuth API's using JMeter 5.1

There are two major steps involved in OAuth testing:

1. Request for Token.

2. Use that token in Subsequent API as Bearer Token in the Header.

Assumption

You already reviewed the above Article before proceeding to the next steps.

Step 1: Request for a Token.

a) Right-Click the "Test Plan" and Add a new thread group. Name it as "Demo Group"

test plan

b) Right-Click the "Thread Group" --> Add --> Sampler --> HttpRequest

http request

c) Add Request details and "Save"

host name

d) Add "View Result Tree" & "JSON Token Extrator"

view results tree

json extractor

e) Now add the JSON Path Expression where you can find the token (from View Result tree --> Response).

This is my response in "View Result Tree".

JSON
 




x


 
1
{"user_context":null,"return_type":"json","access_token":"qubyczsmjbttg49rtwvbka","token_type":"bearer","expires_in":3600,"refresh_token":"cjpam8qgsd3kkbyypkfrvq6e","scope":null,"state":null,"uri":null,"extended":null}



So I added $.access_token path to the variable C_Token.

S_access_token

Step 2: Pass that Token to the Subsequent API's

a) Follow the same Step above to create an HTTP Request and add the second API

parameters

b) Add "HTTP Message Header" and "View Result Tree"

http header manager

c) Now Add the token value which you got in Step 1 - e as ${C_Token}

C_token

Follow similar steps for the remaining API.

Happy testing!

Topics:
api access tokens, jmeter, jmeter 5.1, load api testing, oauth, performance

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}