The best place to start is by writing test cases based on the Proxy functionality. The major functionalities to focus are:
- Proxy server for HTTP, HTTPS, FTP (via HTTP)
- Native FTP proxy
- Gateway for SMTP, POP3 and IMAP4
- IP address security filtering of connections
- Remote-proxy utilization (ISP caching proxy)
- Time-out or Connection establishment.
Here's an example of FTP Proxy functionality, which can be used as a test:
When a browser is told to use a server/port for FTP proxy, it bundles its FTP request in an HTTP stream and forwards it on to the proxy. The browser expects all communication with the proxy to take place in HTTP/HTML. The proxy then translates the request into FTP commands
When no proxy is specified, the browser issues FTP commands directly to the server. This differs from the HTTP proxy stream, which is a "simple" passthrough mechanism:
In the case of HTTP proxy, only the initial proxy header directive is manipulated and then a virtual circuit is formed between the browser and the server for all subsequent communication. The stream ends when either side fails to communicate within the Network Read Timeout duration configured in the server.
In the FTP proxy case, the server must translate HTML requests into FTP requests (effectively writing an FTP client for the middle tier).
Scripts can help you in load testing, connection limits and timeouts, caching and logging the results. Also, for your help there are some tools available for testing Proxy server and its functionalities. You can use the link below to learn about them and maybe try them out. http://www.stayinvisible.com/index.pl/testing_software
Hope this helps. Please write back if you need any more information.
This was first published in February 2004