1

Who is LISA?

“The LISA 4 Complete SOA Test Platform is a comprehensive testing solution that reduces the effort and cost of SOA test creation and maintenance, while allowing your team to drastically improve quality levels over time through test reuse. The complete suite contains the test capabilities of all LISA modules in a single, easily installed application.” - taken from http://www.itko.com/site/lisa/

What does dynaTrace do with LISA?

With dynaTrace’s open integration points to Web- and Load Testing Tools the development group of iTKO LISA was able to easily link the two solutions together.
You can now take a test case that you have created for LISA and tag the individual test steps with so that they show up in the Tagged Web Requests View in the dynaTrace Client.

This integration allows you to dive deeper into the problems of your Enterprise SOA Application than just knowing that you have performance problems under a certain load. dynaTrace gives you the ability to track down those problems identified by iTKO LISA to the source code in your distributed heterogeneous application. Each individual Web Request from LISA will result in a captured PurePath.

Here is how it works: You simply place an additional custom HTTP Header to your LISA Test Case Step. The HTTP Header allows you to specify a logical timer name and a context. The Timer Name will show up as the name of the request in the Tagged Web Request View in the dynaTrace Client. As context we pass the information about the unique Virtual User ID so that we can actually trace individual simulated end users:

iTKO LISA - Test Case to test GoSpace

iTKO LISA - Test Case to test GoSpace

Executing the Test Case with LISA to test your SOA Application will give you the PurePath information in the dynaTrace Client for each individual request that was executed by LISA:

Tagged Web Request View for LISA Test

Tagged Web Request View for LISA Test

Conclusion

This is another great example of an integration with other tools to extend the visibility into the application that is tested or monitored.

,

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 pages

The 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

, , , ,

Collection diagnostics information in Load Testing is a challenging task. Using dynaTrace it is possible to collect in-depth code level details with minimum performance overhead. However, although the performance overhead is low, collecting every single detail results in a huge amount of collected data. For 24 hour load tests this can be up to tens of gigabytes. In stress test scenarios which target to bring an application to it’s limits collecting every single detail will even be impossible.

In this post I will introduce two possibilities how to reduce the amount of collected data while still getting all required diagnosis information. These techniques are called slicing techniques as the collect only a part of the data. Depending on which strategy is chosen, we differentiate two slicing techniques

Horizontal Slicing

Horizontal slicing means that only transactions of specific virtual users are tracked. Following this approach it is possible to track in depth details for all application components while restricting overhead and keeping the amount of collected data in manageable limits. dynaTrace supports horizontal slicing, by selectively tracing transactions based on whether the dynaTrace HTTP header is sent. Only transactions having this header set will be recorded.

Horizontal Slicing in Load Testing

Horizontal Slicing in Load Testing

Vertical Slicing

Vertical slicing means that all transactions of the application are monitored, but only for a specific component. This approach allows to track details for each single execution. dynaTrace allows to enable details for specific components at runtime. Switching the component details at runtime allows to gather detailed performance metrics to be used in performance regression testing.

Vertical Slicing in Load Testing

Vertical Slicing in Load Testing

, ,