Overview
The thought for load testing is to create N user accounts with known passwords and then in N parallel processes attempt to access services protected by Crowd.
Atlassian has already performed
some tests. I may be possible to get them.
User Account Creation
Using the SOAP API a script will create N predictably named user accounts (user000001, user000002...) with random passwords. If successful the username and password will be stored in a persistent manner for later reuse. If implemented in python an acceptable solution would be a dictionary of username:password pairs that is pickled to a file.
Load Testing
Ideally an application could just launch N threads that feed off of the user account creation file but if N is large that will cause problems. This approach is the simpliest and may still be an effective test. The code should be reusable so it wouldn't be a loss either way.
Alternatively an application running across multiple servers could feed off of a subset of the user account file so that each server only ran M tests where N = M*(number of worker servers).
Worker
The worker thread/process should accept a single user or a small number of user credentials and attempt to access Crowd protected resources. If the user is not authenticated the worked will attempt to authenticate, otherwise the worker will delay for a short time and attempt to access the next resource. Performance metrics should be gathered such as access time and access success and failure. Metrics should be written to a persistent location in a form that can be reported off of.
Control
The control thread/process should instantiate workers and feed user credentials to the workers. Additionally the control thread should receive metrics back from the workers and consolidate the information.
--
ChristopherPepe - 10 Apr 2009