Skip to content
| Marketplace
Sign in
Visual Studio>Templates>SharePoint Load Generation Tool
SharePoint Load Generation Tool

SharePoint Load Generation Tool

SharePointTemplates

|
6,864 installs
| (2) | Free
The package is to provide the most commonly used load tests against SharePoint.
Download

Introduction

This guide helps SharePoint Farm admins to use the Load Generation Tool.

It describes how to write and execute these Load tests: 

  • CSOM List Read and Write load test
  • MySite Read and Write load test
  • MySiteHost Read and Write load test

It also tells Farm admins how to:

  • Provision Synthetic users for Load testing
  • Clean up the Load testing site collections and synthetic users post test execution

Technical & System Requirements 

Load Generation Tool Visual Studio Template can be installed forVisual Studio 2013 Ultimate and Visual Studio 2015 Enterpriseeditions. The tool can be used to test load for SharePoint Server 2013 and SharePoint Server 2016 farms.

Before You Read This Document

Familiarize yourself with the Load Testing feature of Visual Studio. 

Initialization Steps

 Before running any test cases, initialization steps need to be performed: 

  • Create Visual Studio load test project and configure your settings
  • Provision synthetic users on SharePoint farm

 Create Visual Studio load test project and configure settings

a. Create new Visual Studio project based on SharePoint Load Test template. 

   
 b. Following the wizard to fill load generation settings, you can also change it later in app.config under the project after the wizard is completed.

  i. If you want to use existing active directory users to test your SharePoint farm, choose windows Authentication; if you want to use synthetic users to test your SharePoint farm, choose Forms Authentication.

        

       ii. After you choose one of the Authentication Mode, Click Next.

       iii. (Forms base authentication only) Specify how many synthetic users you want to create for testing and type thecommon password for those synthetic users. By default the password is “P@ssword!” (No quotes).

       iv. Click “Next”,

      • Specify frontend servers to be used, it will collect perf counters data from those servers. If you have multiple frontend servers, they should be mentioned comma separated.
      • Specify frontend server port, the default port is 11207 which is the port that will run a test SharePoint site. 
      • Specify SQL servers that hosts your SharePoint databases, it will collect the perf data from those SQL servers. If you have multiple SQL servers, they should be mentioned comma separated. 
      • Specify Test controller server, this will distribute the test cases to different test agents, make sure you have already configured your test controller and test agents. If you choose a remote test controller, make sure you are running the load test with the same acount as the one that is running test controller service and test agent services. 
      • Specify load balancer server if you have, then all requests will be routed via load balancer firstly. If you don’t have load balancer, it will send the requests to frontend server directly and evenly.
      • (Forms based authentication only) Enable cookie caching, it will avoid authentication issuing requests for already visited pages.

       v. Click “Finish”, it will launch two windows to set up Local.testsettings and Remote.testsettings, since you have specified the controller server in previous step, just click close to dismiss the two windows.

        

      Local.testsettings


       

      Remote.testsettings

         vi. (Windows authentication only) Open users.csv file, follow the format of this file to fill your existing active directory account, for example: 

         Domain1\John,John,123456 

         Domain1\Tom,Tom,123456

        vii. Set either of the test setting files (local.testsettings or remote.testsettings ) as the Active Load and Web setting by right clicking the local.testsettings or remote.testsettings file and choosing the Active Load and Web Settings menu option as shown below.


        Provision synthetic users on SharePoint farm

          If you choose the Forms Authentication, you need to follow the below steps to provision synthetic users.

           a. Find corresponding LoadGenerationSharePointSolution.wsp from the project (For SharePoint 2013, it is under directory wsp\15; For SharePoint 2016, it is under directory wsp\16) and put the LoadGenerationSharePointSolution.wsp to one of the servers in SharePoint Farm. For example: C:\Solutions\LoadGenerationSharePointSolution.wsp.

         b.  Open SharePoint Management Command and run the following commands:

          Add-SPSolution -LiteralPath C:\Solutions\LoadGenerationSharePointSolution.wsp

          Install-SPSolution -Identity LoadGenerationSharePointSolution.wsp –GACDeployment

          c. Open new SharePoint Management Command:

         cd "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\<15 or 16>\LoadGeneration"(for SharePoint 2013, it is 15, for SharePoint 2016, it is 16)

         .\Initialize-SPFarmLoadTest.ps1 -url "http://<your-host>" -count 200

          Where count parameter indicates number of synthetic users to be created.  

        Execute the load tests  

        Your load test project needs to be built before you can run the load test. To run one load test against your farm, open the load test and click on the Run button (the leftmost button on the toolbar) as in the picture below. In this Beta release, we have 3 out of box scenarios: CSOMListRW, MySiteRW and MySiteHostRW.

           

        What those load tests doing?  

        CSOMListRW.loadtest 

        This load test contains two coded web tests: CSOMAddListCoded and CSOMDeleteListCoded.  

        CSOMAddListCoded: Add a document library list to personal site, you can find it in site content page:http://frontendserver:11207/my/personal/loadtestuser1/_layouts/15/viewlsts.aspx. The list name looks like CSOM_15195bb3-40ed-4795-be34-864665d6a1c7. 

        CSOMDeleteListCoded: Delete a document library list whose title starts with “CSOM_” from personal site, if there is none, just bypass the delete document request.  

        MySiteHostRW.loadtest 

        This load test contains two coded web tests: GetActivityFeedCoded and EditProfileCoded. 

        GetActivityFeedCoded: Get ActivityFeed.aspx page.

        EditProfileCoded: Edit “About me” in EditProfile.aspx page, it will be changed to “Test by Load Generation Tool attimestamp”. 

        MySiteRW.loadtest 

        This load test contains two coded web tests: GetMySiteCoded and AddDocumentCode.

         GetMySiteCoded: Get All Documents page.

        AddDocumentCoded: Add a document to document library of personal site.

        Reading your Results 

        The following tables contain general guidelines when it comes to key performance counters you get out of running load tests. 

        CPU                         

         

        Counter

         
         

        Threshold

        General Recommendation

        Description

        Processor\% Processor Time\_Total

        >80%-85% over 3 intervals

        Add CPUs if utilization is consistently High

        The total percentage of processor usage for a server.

        System\Processor Queue Length\(N/A)

        >#CPU's + 1

        Add Faster CPU's

        Exceeding the threshold indicates that the processors are not fast enough to process requests as they occur and that you are running out of processor power.

        Processor\Interrupts\Sec

        >1000

        May indicate Hardware Issue

          

         

        Memory                           

        Counter

        Threshold

        General Recommendation

        Description

        Memory\Pages/sec\(N/A)

        >200

        Increase RAM

          

        Memory\Pages Faults/sec\(N/A)

        > (Drives x 4096)

        Increase RAM

        A high rate of page faults indicates a lack of physical memory.

        Memory\Available Mbytes\(N/A)

        <10% Available

        Increase RAM

        The amount of physical memory in MBs, immediately available for allocation to a process or for system use on the server.

        Memory\Pool Nonpaged Bytes\(N/A)

        <10%

        Increase RAM

          

        PagingFile\%Usage

        >70%

        Faster Disks/Better Controller/Add Disks/Increase RAM

        Review this value in conjunction with memory—available megabytes and page faults per second—to understand paging activity on the server. 

         

        Disk 

        Counter

        Threshold

        General Recommendation

        Description

        PhysicalDisk\% Disk Time\DriveLetter

        >80%

        Controller or RAM

          

        PhysicalDisk\Current Disk Queue Length\DriveLetter

        >2

        Faster Disks/Better Controller/Add Disks

          

        LogicalDisk\%Idle Time\DriveLetter

        >20%

        Faster Disks/Better Controller/Add Disks

        Reports the percentage of time during the sample interval that the disk was idle. If this value is very low, the logical disk is very busy.

         

        Network

        Counter

        Threshold

        General Recommendation

        Description

        Network interface\BytesTotalPer2ndInterface

        >50% Avail Network Speed

        Add Faster NICs/Check Switch

        The rate at which bytes are sent and received over each network adapter 

         

        ASP.NET

        Counter

        Threshold

        General Recommendation

        Description

        ASP.NET\Requests per second_total

          

        This is a great monitor for capacity as we will look at in a different part of this series

        The rate at which bytes are sent and received over each network adapter.  

         

        MOSS WFE

        Object

        Counter

        Threshold

        Description

        Web service*

        Get requests per second_total or individual portal or per Windows SharePoint Portal Services site

        Through ongoing monitoring, trends begin to emerge that equate get requests per second with CPU consumption.

        Generally speaking, this is the rate at which clients are requesting information from the front-end Web servers.

         

        Clean up Steps

        Follow these steps to restore your farm to the state prior to provisioning synthetic users and contents: 

        1. Open SharePoint Management Shell and go to "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\<15 or 16>\LoadGeneration"

        2. Run ".\Uninitialize-SPFarmLoadTest.ps1"

        3. Run ".\Uninstall-SPSolution -Identity LoadGenerationSharePointSolution.wsp"

        4. Run ".\Remove-SPSolution -Identity LoadGenerationSharePointSolution.wsp"

        Troubleshooting

        1. Problem: When choose localhost as test controller, it raises error “The load test results database could not be opened.”

          Resolution: Follow the following link to create loadtest2010.https://msdn.microsoft.com/en-us/library/ms182600.aspx

        Howhave the aboveload tests been picked?

        We have chosen the most frequently used scenarios as per SharePoint online data in Microsoft and recommended them for broad usage and also as a reference.


         

         

         

         

         

         

         

         

         

         

           

           

          • Contact us
          • Jobs
          • Privacy
          • Manage cookies
          • Terms of use
          • Trademarks
          © 2025 Microsoft