WSTest Architecture for Dummies
By now, You might have heard and seen class diagrams, sequence diagrams from UML/OOD/OOM blah blah... I just thought, whats the fun in doing same things you already know. So here i am with a WSTest (Web Services workload) Architecture from a creative perspective. I hope, you get the gist of it!
The following diagram illustrates the main components in the WSTest:
1. Configuration
This component is responsible for reading the configuration from INI file.
2. Driver
This is the main component which reads the configuration and controllers the Agents.
3. Agents
Agent does what driver asked it to do, like what usecase to invoke, how long to run etc.
4. Reports
Finally, this component generates the report for you, namely, average response time and transactions per second.
I must tell you, I really like Star Office (For a number of reasons, talk for another day) and these cartoon images are from star office. Yea!
WSTest is a very simple and yet powerful benchmark to simulate the real world use cases for web services. For example, if you have an online bank system, which you have decided to implement using web services. At one point in time, you will start thinking about how many users this system can serve in a given moment? What is my peak system performance? How many transactions system can execute in a second ie. throughput? and the list goes on...The performance benchmarks answers these type of questions before your system goes to production. Isn't that information nice to have prior to going to production? Absolutely!
Lets see what WSTest can do for these requirements. First, Map your usecases into transactions.
Let T1 = User logs in to the online system = Login()
T2 = Views the account summary = GetAccountSummary()
T3 = Pay my bill = BillPay()
T4 = User logs out of the online system = Logout()
Lets think for a moment and come up with a frequency for these usescases for a certian number of users.
T1 = 25% (Meaning 25% of the time, users log into the system)
T2 = 40% (Meaning 40% of the time, users view account summary)
T3 = 10% (Meaning 10% of the time, users pay bills online)
T2 = 25% (Meaning 25% of the time, users log out of the system)
We call this a 'Transaction Mix'. This is pretty much configurable based on your application preference in WSTest. Each agent (which you can treat as an user in the real world) performs this mix for the predefined period and finally results are gathered in the report for the run.
Come, share and join our web services performance forum.