Python-based Internet Load Testing

Any internet application targeted towards hundreds or thousands of online users must respond to the logistical demands of handling many simultaneous client/server exchanges. Load testing answers critical questions such as: Successful load testing depends primarily upon the accuracy of user load emulation and successful emulation, we feel, depends primarily upon the strength of the script language.

Implementing Python's powerful programming model and its extensive internet protocol libraries, NVSoft offers a direct and versatile approach to sophisticated load emulation. User input, the server's response, and the user's delay in accepting the response all contribute to the load which the application must handle. Delays in closing a connection (for instance, in the case of a slow modem) place a burden on the server, just like eceiving input or generating output. Other testing methods that involve keystroke recording produce a user load by repeating a fixed pattern of instructions but this only begins to approximate an online application's real working environment.

Our Python scripts eliminate the recording/playback approach altogether: instead, we replicate the functional capabilities of an instrumented web browser. Just like a browser, the scripts interact with a server through internet protocols HTTP/HTTPS, NNTP, SMTP, POP3, etc. We can therefore simulate the browser's complete functionality, as well as every aspect of client/server communication.

Scripts running on a single machine produce a statistically controlled diversity of user behavior, including think-time, error conditions and random hang-up. Users are not represented as clones: we expect the unexpected, so that testing can cover every situation that the server might encounter.

At NVSoft we provide solutions for online performance and scalability. Our Python-based load testing is ideal for implementations including:

registration
Registering a single user typically involves processing and entire sequence of online forms, and the burden on the server increases when this includes some sort of verification (for instance, verifying a chosen username or password and, possibly, suggesting a default). NVSoft's scripts take advantage of Python's versatility in parsing and generating HTML. Using the HTTP and HTTPS protocols, we account for all aspects of a registration session including establishing a secure connection (SSL) and sending cookies.

Updating existing accounts is also an important function of any registration server. Our testing covers all account services available to registered users. In addition, Python scripting offers an effective means for globally updating all registered accounts if, for instance, a field needs to be added to every user profile. Python scripting is ideal for populating, maintaining, and reconfiguring accounts.

e-mail
Incorporating the POP3 and SMTP protocols, we offer a range of options for testing and maintaining both post office and mail host servers. Python scripts can perform any of the large-scale tasks called for in administering e-mails accounts. This includes displaying the post office contents for each user, verifying the existence of accounts based on a user list, and deleting messages that exceed an allotment. The typical user functions of reading, deleting, and sending messages can all be emulated to test the message handling capacity of the mail host. It is important in such testing to work with a representative distribution of message lengths.

news
NVSoft's scripts for testing news servers implement the NNTP protocol to emulate a user load that comprises requests for browsing, reading and posting articles. Randomized article selection, within the guidelines of controlled article and group reading preferences, simulates individualized user behavior. This behavior is further quantified by such parameters as reading rate, article count, session duration, and the frequency of article posting. The lengths of articles vary for both reading and posting.

E-mail us or call (650) 592 3321.

Home