Udostępnij za pośrednictwem


Simulation of browser caching in VSTS load tests and Web tests

In a VSTS load test that contains Web tests, the load test attempts to simulate the caching behavior of the browser. Here are some notes on how that is done:

· There is a property named on each request in a Web test named “Cache Control” in the Web test editor (and named “Cache” on the WebTestRequest object in the API used by coded Web tests).

· When the Cache Control property on a request in the Web test is false, the request is always issued.

· When the Cache Control property is true, the VSTS load test runtime code attempts to emulate the Internet Explorer caching behavior (with the “Automatically” setting).

(This includes reading and following the HTTP cache control directives.)

· The Cache Control property is automatically set to true for all dependent requests (typically for images, style sheets, etc embedded on the page).

· In a load test, the browser caching behavior is simulated separately for each user running in the load test.

· When a virtual user in a load test completes a Web test and a new Web test session is started to keep the user load at the same level, sometimes the load test starts simulates a “new user” with a clean cache, and sometimes the load test simulates a return user that has items cached from a previous session. This is determined by the “Percentage of New Users” property on the Scenario in the load test. The default for “Percentage of New Users” is 100 in which case all user sessions are started with a clean cache. This is probably not correct for most applications where there are return users, so users should consider the most appropriate value to use for this setting depending on the actual usage of the application being load tested.

 

Important Note: When running a Web test by itself (outside of the load test), the Cache Control property is automatically set to false for all dependent requests so they are always fetched; this is so that they can be displayed in the browser pane of the Web test results viewer without broken images.

Update for VSTS 2008: The Web test API enhancement in VSTS 2008 now allow you to write a WebTestPlugin that disables caching of all dependent requests. See this blog post: https://blogs.msdn.com/billbar/archive/2008/06/06/disabling-caching-of-all-dependent-requests.aspx.

Comments

  • Anonymous
    January 25, 2007
    The comment has been removed
  • Anonymous
    March 22, 2007
    The comment has been removed
  • Anonymous
    December 19, 2007
    Visual Studio Team System for Testers Content Index for Web Tests and Load Tests Getting Started Online
  • Anonymous
    June 06, 2008
    In a previous blog post here: http://blogs.msdn.com/billbar/archive/2007/01/22/simulation-of-browser-caching-in-vsts-load-tests-and-web-tests.aspx
  • Anonymous
    December 29, 2008
    Hello,I am running a load test using a rig that includes the following:3 agent3 server application (that are under load balanceralteon)1 machine VSTS 2008 (and where my code is)I am running a load test that includes fetching images from an outside machine.as you know this images are gathered by sending following requests (requests that i didn't write a code for it ) to a server and fetching it.The problem is that certain images that are sent are causing my tests to fail.Is there any way that i can exclude some of the requests that are send (images) by invoking an event handler??Thanks,Daniel
  • Anonymous
    August 10, 2015
    While Executing Scripts in web Performance testing These are all issues coming if any one please help me 1: Request failed: Context parameter '$HIDDEN1.ctl00$MainContent$TabContainer_Payout$TabPanel_payout$Drop_Docname$DDD$L' not found in test context 2: Request failed: Context parameter '$HIDDEN1.DXScript' not found in test context 3:Request failed: Context parameter '$HIDDEN1.__LASTFOCUS' not found in test context 4:Request failed: Context parameter '$HIDDEN1.ctl00$MainContent$WorkOrderDetails_dxGrid$DXSelInput' not found in test context 5:Request failed: Context parameter '$HIDDEN1.MainContent_SMSMarketing_TabContainer_ClientState' not found in test context Thanking You Shruthi