repo for jmeter scripts to demonstrate jmeter capabilities.
The following test suites have been created as demonstration
- UAA only - complex auth code flow
- Login, Authorize, Logout - authcode flow simple-auth-code-test.jmx
- Login, Repeat Authorize with third party app, Logout - complex authcode flow
- Client Credentials simple-client-credentials.jmx
- Password Grant simple-password-grant.jmx
In this test run we introduce the concept of throttling traffic to better suite the UAA's concurrency profile. We set maxThreads="30". We also remove the third party application so that we only test the UAA performance, not sharing resources with the application.
We currently have four different kinds of tests added
- client_credentials - simple client_credentials grant type
- password - simple password grant type
- login and authorize - login and authorize then logout
- login then repeat authorize - login once, then repeat oauth/authorize with the authenticated session
This repository has everything, with the exception for Java VM, you need to run Apache Jmeter
We use .envrc
to automatically configure your path.
If you do not use direnv you have to run a bash shell and run the command
source .envrc
Verify that jmeter is on your path by typing which jmeter
Our load test assumes that the user has already approved necessary scopes. The load test just test the login/authorize actions.
- launch UAA in a separate window using the command
./gradlew run
- Go to the sample app, http://localhost:8080/app
- Login using
marissa/koala
and accept all scopes
Define test
jmeter -t uaa/simple-auth-code-test.jmx
Press the Play
button or use the menu Run->Start to launch the test
Define test
jmeter -t uaa/login-then-auth-code-test.jmx
Press the Play
button or use the menu Run->Start to launch the test
UAA is up and running and has the admin
client with the password adminsecret
jmeter -t uaa/simple-client-credentials.jmx
UAA is up and running and has the cf
client with the password <empty string>
and user marissa
with password koala
.
jmeter -t uaa/simple-password-grant.jmx
Test Logic - Each user
- Logs in to the UAA
- Logs into third party app using authorization code flow
- Logs out of third party app
- Repeat step 2) and 3) 1000 times
- Logs out of UAA
Endpoints Exercised - in order
- /uaa/login.do
- /app/
- /uaa/oauth/authorize
- /app/?code=
- /uaa/oauth/token
- /uaa/userinfo
- /app/logout
- /uaa/logout.do
In this test run we introduce the concept of throttling traffic to better suite the UAA's concurrency profile. We set maxThreads="30"