Students and developers at Google Inc. have jointly created an open-source tool designed to better predict the effect on real-world Web site performance if changes are made to things like network infrastructure.
Called Monkey, the tool first captures data from actual client sessions, inferring various network and client conditions — what its creators call the “monkey see” portion of its work. It then attempts to emulate those conditions for server tests — a process called “monkey do.”
Source code for the tool is available at http://ramp.ucsd.edu/projects/monkey/.
Monkey is aimed at helping solve a dilemma of Web testing: Trying out network or server changes on even a small portion of actual user traffic is risky, but simulations are often unrealistic because they don’t accurately reflect users’ network conditions, said Yu-Chung Cheng, a graduate student at the University of California, San Diego, who worked on the project during an internship at Google.
Cheng presented a paper about Monkey on Monday at the Usenix Annual Technical Conference.
Cheng admitted that the tool, which is optimized for Google’s specific search application, might not be as accurate at predicting server response for other types of applications. In response to audience questions, he said Monkey also doesn’t attempt to model how user behaviour might change as server response speeds or slows (for example, more search requests might come in if server response improves).
“In the end, we believe it is unrealistic to build a generic one-for-all TCP replay tool,” the paper, Monkey See, Monkey Do: A Tool for TCP Tracing and Replaying, concludes. “But it is possible to build replay tool(s) for specific applications.”