Monday, November 14, 2016

Web Performance Testing with Visual Studio - JSON Extraction rules

Introduction

Visual Studio Enterprise 2015 or Visual Studio Ultimate 2013, gives you the possibility to test the performance of your application. In this article we'll show you how to use extraction rules in order to take information from a JSON response that is later used in a performance recorded test. It is required that you already know how to create a new performance test/record it, etc. If you don't, you can inspect MSDN documentation here.

Access token

In our application, we have a login form. After submitting, we receive a JSON response that contains variable access token that is used to authenticate in the application. In order to use this information, we need to use an extraction rule, to later use it in other requests.





Visual studio comes with some predefined rules, but, none of them is capable to extract information from a JSON. That is why we need to create a custom extraction rule.

What are the steps for creating a custom extraction rule:
  1. Open a Test Project that contains your Web performance test
  2. Create a separate class library project, e.g. ExtractionRule
  3. In the Class library project, add a reference to the Microsoft.VisualStudio.QualityTools.WebTestFramework dll
  4. Create a class that derives from the ExtractionRule class. Implement the Extract and RuleName members, e.g. JSONExtractionRuleClass (see below, the code for this)
  5. Build the new Class library project
  6. In the Test Project, where your performance test is, add a reference to the Class library project that contains the custom extraction rule  
  7. In the Test Project, open a Web performance test in the Web Performance Test Editor
  8. To add the custom extraction rule, right-click a Web performance test request and select Add Extraction Rule.
    The Add Extraction Rule dialog box appears. You will see your custom validation rule in the Select a rule list, together with the predefined validation rules. Select your custom extraction rule and then choose OK   
  9. Use this context parameter extracted from a JSON to later authenticate your requests. To do this, add a header to your request with name = Authorization and value = Bearer {{loginToken}}  
  10. Run your Web performance test
JSONExtractionRuleClass

The code for extracting the rule, necessary to pass step 4 is the following




Happy testing and... make it green, becomes a dream :)

No comments:

Post a Comment

Popular Posts