Load Testing SharePoint with Visual Studio Online

I recently discovered that Visual Studio Online includes 15000 "Virtual User Minutes" for load testing each month for free. I've never used the load test feature of Visual Studio before, so I decided to try it to simulate high user loads on our SharePoint farm. Here is a step-by-step guide.

Requirements

  • A Visual Studio Online account
  • Visual Studio 2013 Ultimate (Performance and Load Testing is not included in any other edition)
  • SharePoint Site which is accessible via Internet

Setup

In Visual Studio 2013 go to File->New->Project and select "Web Performance and Load Test Project" in category "Test":

image

This will create an empty "Web Performance Test". To start recording what the test should do, click "Record" and an IE Browser window will open.

image image

Now open your SharePoint site and click around to simulate some browsing. After that click "Stop" to come back to Visual Studio where you will see all requests in your Web Performance Test.

You might not want to record some "SharePoint" noise, so there is a settings page to exclude some stuff. Go to Visual Studio Tools->Options->Web Performance Test Tools->SharePoint:

image

To execute this Web Performance Test as a load test with simulated users, you have to add a "Load Test" to your project:

image

The wizard will guide you through some configuration options. Set the load to 250 users as shown below for a test running one minute will cost you 2500 virtual user minutes. So keep in mind that the free plan of Visual Studio Online gives you 15000 virtual user minutes per month. Be careful with the constant loads settings, because all virtual users will submit the first request as fast as possible, so the result may not reflect real usage scenarios. For more users use the "Step" pattern to start with a few users. They will automatically increase over time.

image

I set the test mix model to "Based on sequential test order" because there is only one test in my project which every virtual user should run. In the next step add the existing test to the load test.

I leave Network Mix, Browser Mix and Counter Sets untouched. In Run Settings I set the "Load test duration" to 10 which means, every virtual user will execute the test in a loop for 10 minutes.

image

With these settings, your "Virtual User Minute" budget of 15000 in Visual Studio Online will decrease by 2500 (250 user * 10 minutes).

Run in the Cloud

Now add a .testsettings file (Local.testsettings already exists) via Add->New Item and search for test:

image

Give it a name like "CloudTestSettings". A wizard will open where you can select "Run tests using Visual Studio Team Foundation Service" (what is now "Visual Studio Online" as of November '13).

image

Make sure, your newly created .testsettings file is the active one by right click on it and select "Active Load and Web Test Settings":

image

Ok, that's basically all you have to do. If you already know some values and want to visualize threshold violations, you can open the load test and add threshold rules to one ore more counters. For example to the average page load time.

image

To run the load test, just click "Run Load Test":

image

After the test is completed the result panel show all the details about the test. You can add counters to graphs and see a summary and details. I'm interested in the page response times, so I switch to only one graph layout. Here you can see all the different pages and there response times.

image

You can download the report to Excel to analyze it even further.

SPC12: Tag 1

Heute morgen ging es ab 7:30(!) mit dem Frühstück in einer Halle los, in der sonst wahrscheinlich Flugzeuge oder Raketen gebaut werden.

CIMG0079

CIMG0091

 

 

 

 

 

CIMG0088

CIMG0086

 

 

 

 

 

Dann anschließend in einer ähnlich großen Halle gab es die Keynote mit u.a. Jared Spataro, Jeff Teper und Scott Guthrie. Neben den bereits bekannten Dingen wurden auch die Windows 8 Apps für SharePoint und Yammer gezeigt. Insgesamt ist die Yammer Integration aber noch nicht wirklich eine Integration. Man springt klar von einer Anwendung zur nächsten, was das ganze in meinen Augen ziemlich User-Unfreundlich macht. Was aber klar wird: Microsoft setzt ganz extrem auf die Cloud. Dazu wurde z.b. gesagt, dass sie sich von dem 3-Jahres Releasezyklus verabschieden und in Office365 alle 90 Tage Updates einspielen.

Anschließend war ich dann in der Session "What's new for Developers in Office 2013 and SharePoint 2013". Dort gab es leider nicht viel Neues, sondern nur noch mal einen Überblick über die Möglichkeiten der Apps, die dann in Office, SharePoint und Outlook laufen.

Nach dem Mittag ging es weiter mit "What's new in Search for SharePoint 2013". Sehr interessant und insgesamt super mächtig was die Suche nun für Möglichkeiten bietet. Sei es beim Ranking, bei der Präsentation oder den Query Rules. Vor allem wichtig: Um die Suchergebnis-Seite und das Hover-Panel zu bearbeiten ist kein XSLT mehr notwendig sonder nur noch HTML/Javascript.

Danach war ich noch bei der Session "Building end-to-end apps for SharePoint with Windows Azure and Windows 8". Dort wurde eine Lösung gezeigt die fast alle neuen Technologien vereint und von Public Sites bis Windows 8 Toast/Tile Notifications alles hatte. Sehr cool. Allerdings fehlte leider die Zeit wirklich in alle Details zu schauen.

CIMG0099Heute abend dann noch bei der ClubSPC Party gewesen. Und Mr. Gangnam Style persönlich war da (oder zumindest einer der genauso aussah ;-)

Und zum Schluß noch ein Lacher: Woran merkt man, dass man auf einer SharePoint- (oder Allgemein einer IT-) Konferenz ist? An diesen Schildern.