Load testing a proprietary protocol
We need to do load testing of a system using some proprietary TCP-based protocol.
The protocol is not a typical client-server protocol, it's rather a peer-to-peer protocol where both sides can send requests to each other (sometimes asynchronously).
Another complication is that protocol is not connection-based: end-users' "sessions" are going to be multiplexed on top of other lower-level protocols (for example, on top of pure TCP/IP, on top of HTTP, on top of SMTP, etc.). What makes our life even more difficult, we need to test that "main" protocol's work on top of various stacks of underlying transport protocols. Finally, the challenge is that we have quite ambitious performance requirements for the SUT
(10,000+ transactions per second). So when simulating end-users' behavior (as it is projected to the protocol level), we want to make sure that QALoad's scalability
is not going to be destroyed by whatever extensibility mechanism we can use to support required protocol(s).
So the general question is: how suitable is QALoad for a testing project described above?
The more specific questions are:
- What extensibility mechanisms (scripting? add-ons? anything else) can we use to support a custom, very proprietary protocol?
- When simulating multiple simultaneous users, does QALoad create a separate OS process or thread for each simulated user? or does it use some pool of threads?
Are there any forums, sites, or other resources that offer more detailed technical information about extensibility of QALoad (more detailed than what the vendor offers on its site)?