vPerformer has two recording modes, Web and HTTP. What is the difference between these modes? To explain this, I’ll first attempt to describe the HTTP traffic generated by your browser in response to a web page. Consider a web page, newpage.html where the HTML is as follows.

newspage.html:
<html>
<body>
<A HREF=”http://news.google.com”><IMG SRC=”news-32.png” ALT=”Google News” name=”img”></A>
</body>
</html>

When a browser is pointed this location, it will first load the page, newspage.html, process its HTML and then load the image news-32.png. This will translate from an HTTP context into two requests,
GET /news/newspage.html
GET /news/news-32.png

If this page is recorded in Web mode we will only record requests that relate to user actions.
WebSendRequest(“GET”, “http://localhost/news/newspage.html”, …

In HTTP mode we will record all HTTP requests.
HttpSendRequest(“GET”, “http://localhost/news/newspage.html”, …
HttpSendRequest(“GET”, “http://localhost/news/news-32.png”, …

In Web mode, when the script is executed the load agent will process the HTML and then load the image news-32.png. It doesn’t generate a function for this request, since it will parse and ‘discover’ this item at runtime. In HTTP mode, when the script is executed the agent will simply load whatever was recorded. It doesn’t need to process the page any further since the web page was already processed by the browser during the recording phase. This brings up the question, which mode should you use.

Web mode will tend to generate smaller and more concise scripts. It will also guard against the fact that the contents of the page can change from time to time, and this will not require you to rerecord the page if there is new request generating content in the page e.g. images, that need to be accounted for. Web mode may not however process requests that result from JavaScript since this processing is done during load execution and JavaScript processing is extremely load intensive. This is done to allow us to load a large number (thousands) of virtual users on each server. Otherwise we would not be able to run more than ten to twenty virtual users per server.

HTTP mode will account for every request, including those that result from JavaScript. This can be accomplished since all the processing is done during the recording phase and no processing is required during load execution. HTTP mode (like Web mode) will also be able to load a large number (thousands) of virtual users on each server. However, this mode will generate larger scripts and may require re-recording when faced with certain kinds of content change.

Share