DZone
DevOps Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > DevOps Zone > Stress Testing the OIM Web (UI) Layer

Stress Testing the OIM Web (UI) Layer

Abhishek Gupta user avatar by
Abhishek Gupta
CORE ·
Feb. 19, 15 · DevOps Zone · Interview
Like (1)
Save
Tweet
2.46K Views

Join the DZone community and get the full member experience.

Join For Free

The default configuration in Oracle IDM reserves 20 threads dedicated for serving front end (UI) requests. This basically means that the application server has a pool of 20 threads which it can utilize to serve users who are accessing OIM via the web console (/identity or /sysadmin).

In case of Weblogic, this is how it is configured

oim-ui-thread-conf

What typically happens is

  • User accesses the OIM URL e.g. http://oimhost:14000/identity
  • Browser sends a simple (HTTP) GET request with some added HTTP request headers and other info of course
  • The application server (e.g. Weblogic) picks up a thread from the pool and uses it to process the request
  • OIM responds back and the browser renders the login page and the user is delighted .. well most of the time! ;-)
  • After the request is served, the thread on the application server is sent back to the pool (remember that pool of 20 threads I just mentioned about) and thus it can be reused by another request

I just wanted to play around with this and executed some simple tests via JMeter

Note: This is merely a front end/UI stress testing – not related to business logic

Steps

Well there are a few configurations you would need to setup in JMeter – they are pretty much standard and have nothing to do with OIM in specific

  • Set up a Thread Group (represents users)
  • Configure HTTP requests e.g. configure the OIM URL, context path, port (again – pretty basic)
  • Configure Result viewer – tree or table mode. This is for real time tracking of results

The JMeter configuration (.jmx) file is available for your reference – just import it in JMeter and you should be able to figure out the exact configuration parameters and tweak them if interested

jmeter-test-plan

Testing parameters

I tried testing with various permutations and combinations by changing the Number of Threads and Ramp-Up Period attributes in the Thread Group setup within JMeter

Number of Threads – equivalent to the number of users you want to simulate
Ramp-Up Period (seconds) – equivalent to the time period/range during which you want JMeter to trigger all the requests

e.g. Number of Threads = 100 and Ramp-Up Period = 20 seconds basically means simulating a scenario where 100 users are accessing your application (OIM in this case) over a period of 20 seconds.

  • Attempt 1: Number of Threads = 100 and Ramp-Up Period = 20 seconds
  • Attempt 2: Number of Threads = 200 and Ramp-Up Period = 20 seconds
  • Attempt 3: Number of Threads = 500 and Ramp-Up Period = 20 seconds
  • Attempt 4: Number of Threads = 1000 and Ramp-Up Period = 20 seconds
  • Attempt 5: Number of Threads = 2000 and Ramp-Up Period = 20 seconds

thread-group-config

What I was expecting

To be honest, I expected some delay/latency when 2000 threads (potential users) were fired in a space of 20 seconds. Looks like that did not happen.

Actual Result

All in all, the response was quite healthy.

  • Green results i.e. HTTP 200 (OK) response
  • Low latency and load times

result

To be noted

  • This was executed in a personal test VM (running OIM 11g R2 PS2) and hence there was not much load on the system
  • Can’t expect much latency when the server I am connecting to is just a guest VM ;-)

Still, this was fun and it would be interesting to execute the same test on a server which has running processes in the back end e.g scheduler, some access request processes etc.

If the out of the box configuration of 20 threads does not work for your environment, you can change it using the Weblogic Admin Console – rinse and repeat :-)

Until then.. Cheers !

Stress testing

Published at DZone with permission of Abhishek Gupta, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • 30 Common CI/CD Interview Questions (With Answers)
  • Python: A Befitting Approach to Develop AI Web Apps
  • Top Soft Skills to Identify a Great Software Engineer
  • Build Cloud-Native Apps with AWS App Runner, Redis, and AWS CDK

Comments

DevOps Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo