Last week I was given the opportunity to meet the Visual Studio Team System Group in Durham, NC. We discussed the current dynaTrace integration into VSTS and how it can be raised to the next integration level. I also had the chance to let Ed’s Team discover the benefits of the existing Integration by using dynaTrace and the available Integrations on their current projects. You might be interested in this blog post from Ed.

dynaTrace Integration with Visual Studio Team System

There are multiple integration scenarios into Visual Studio Team System available right now offering great support for your development and testing teams

  • CodeLink plugin: offers a developer/architect the ability to lookup the problematic source code line in Visual Studio – triggered from the different views in the dynaTrace Client
  • Unit Testing: enables Continuous Performance Integration on your Unit Tests by automatically enabling dynaTrace to manage your unit test executions
  • Web Testing: enables Continuous Performance Integration on your Web based Unit/Integration test by automatically enabling dynaTrace to trace each single web request through the executed code in your web application
  • Load Testing: enables the same capabilites as for the Web Testing Integration in your load/staging environment. Allows you to analyse the root cause of slow pages under heavy load and with that making “Black Box Applications” to “White Box Applications” for your QA engineers

CodeLink Plugin – Lookup the problematic Source Code Line in your IDE

The CodeLink Plugin is available for all Visual Studio .NET versions as well as for Eclipse. Once you have analyzed the captured data in the dynaTrace Client and pinpointed the problematic component/class/method you can simply lookup the problematic source code in your IDE with one mouse click. The following illustration shows the lookup feature in action – one click from the PurePath to your code in your IDE:

dynaTrace CodeLink Plugin
dynaTrace CodeLink Plugin

Unit Testing – dont just get a GREEN signal for your test – verify performance & architecture

On the dynaTrace Community Portal you will find additional KSPs and Plugins to diagnose Microsoft Unit Tests as well as NUnit tests.  Using dynaTrace in the early development LifeCycle to analyze your Unit/Integration Tests opens up an additional dimension of verifying your components. With dynaTrace you can now verify if your components fulfill your performance criterias and if they stick to your architectural rules, e.g.: dont do too many roundtrips to the database or remote services.
The following screenshot shows the details of an executed unit test method analysed with dynaTrace:

PurePath of a Microsoft Unit Test Method
PurePath of a Microsoft Unit Test Method

Web& LoadTesting Integration – get insight into your slow pagesThe Web&LoadTesting Plugin for Visual Studio Team System allows you to tag each individual web request that is executed during a simple Web or full LoadTest. Your analysis now no longer needs to stop with the LoadTest Report telling you about your slowest pages. The next step with dynaTrace is to analyze the individual slow requests starting from the Tagged WebRequests view.
The following screenshots show a Visual Studio Web Test that is executed as part of Load Test. We can then trace those pages that failed or were slow by using the dynaTrace Tagged Web Requests View seeing all the requested pages with the same Timer Names as defined in the Visual Studio Web Test.

Web-, LoadTesting & Tagged Request View
Web-, LoadTesting & Tagged Request View

Continuous Performance Integration

All those integrations can be fully automated and integrated into the Continuous Integration Process. This enables you to track the quality of your components with every code change that gets checked into the version control system. The final step is then to compare your performance results and analyse any performance degradations as they happen. Following is an screenshot which compares the same unit tests of 2 different builds:

Performance Regression on Unit Tests
Performance Regression on Unit Tests