If this is a unix server, processes will scale better than threads due to the memory savings from copy-on-write. POE would also be a good choice for testing network apps, if you can get your head around it. It is certainly the lightest on resources, but does require significant changes in the way you write your code. | [reply] |
If these tests don't have to interact with each other (and it doesn't like, from your description) I'd recommend processes.
They are implemented very robustly, and in general easier to handle than threads (IMHO). | [reply] |
As I would be testing the features like FTP,Email etc., So I would be using the Perl modules Net::FTP, Net::SMTP,POP3,IMAP etc in my script(s), which would be executing on a workstation (unix flavour) acting as a client and sending the request to server(unix flavour):
The scenario could be like this:
1) send 10 mails after every 2 mins
2) Try ftp for 10 users every 3 mins/5 mins>br>
3) Check if can access webpages (thru' Mechanize module) every 5 mins and other stuff (testing other features) which would be doing something every TIMEPERIOD.
Those would be independent of each other and will not need to communicate with each other and would be sending the requests to the server.
I may have to get the logs/reports after one iteration or after completion of some particular test , that I still need to figure out. But right now I am more concerned about the approach should I take related to threads or processes? | [reply] |
I would google 'http/ftp/email stress testing'. There's a lot already freely available, and some of it even may be written in perl. For starters, have a look at curl-loader.
| [reply] |