Usage:
./manyclients.sh [-v] [-w seconds] 100 http(s)://host/ inputfile
-v will show you the received responses.
-w (seconds) will spawn a new process only every (seconds) seconds, instead of all at once
100 will spawn one hundred socket.io clients at once.
http(s)://host/ should be set to your socket.io server address.
inputfile should be a json list with the exact requests the browser would send to your backend:
[
"5:::{\"name\":\"login\",\"args\":[{\"user\":\"michaeljackson\",\"password\":\"beatit\"}]}",
"5:::{\"name\":\"poke\",\"args\":[{\"target\":\"prince\",\"sessionid\":\"%1%\"}]}",
"0::"
]
the stresstest will execute all these requests in that order and ignore the responses, except in one special case.
Notice the %1% in the second request? That will be replaced with the sessionid
returned in the first request. Modify _parse_session_id inside
SocketIOHandler.cpp to parse it correctly from you login response.
You can probably make the client click through most of your site this way.
Always send 0:: as the last message.
You need to have BOOST installed on your system. I included the other
dependencies in the parts directory because I developed this in svn.
This software was tested on mac osx and ubuntu.