Adopting, designing, and governing SOA well

SOA Best Practices Digest

Subscribe to SOA Best Practices Digest: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get SOA Best Practices Digest: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


SOA Best Practices Authors: Jason Bloomberg, Hollis Tibbetts, Pat Romanski, Liz McMillan, Lori MacVittie

Related Topics: iTKO LISA Journal, Ubuntu Linux Journal, SOA Best Practices Digest, Java Developer Magazine, SOA in the Cloud Expo, Open Source Journal, Google, SharePoint Archiving Journal, Microsoft Developer

Blog Feed Post

Open Source Selenium Web Application Testing System

Selenium/BrowserMob Integration with dynaTrace

With these changes a tester can now create a script like this:

Selenium Test Script

Selenium Test Script

When executing the script – the first request to the frontend URL will be tagged with the name “MyTestUseCase”. This tagged value will later be changed with the call to selenium.setTimerName meaning that all login web requests will be tagged with the value “Login”, all search related requests with the name “Search” and logout with “Logout”.

Using dynaTrace on the application that we are testing allows us to pick-up those HTTP Headers and enables us to exactly identify the individual transactions that came in from the individual steps in the test case.

Step 1: Starting from the Tagged Web Requests View

Server Side Transactions grouped by the passed HTTP Tag

Server Side Transactions grouped by the passed HTTP Tag

Step2: We can drill into the individual web requests that were executed, e.g.: lets see the 14 requests for the Search action

We see all individual requests for the actual documents and embedded objects

We see all individual requests for the actual documents and embedded objects

Step 3: Check the outliers

Interesting here to see is that the average sum for all Search actions was 764.32 ms. In the detailed drill down we however see that we had one request taking 10.45 seconds. With another Drill-Into we can examine the one request that took so long:

PurePath showing hotspots and exact transaction execution path down to the method level

PurePath showing hotspots and exact transaction execution path down to the method level

Step 4: Analyse Log Messages

Additionally to drilling into a transaction we can go the other way round by drilling from a problem to the originating test case. Let’s start by looking at the log outputs that were automatically captured bydynaTrace.

Shows all log messages logged with log4j or log4net

Shows all log messages logged with log4j or log4net

Step 5: Who caused the log message?

Now we can drill to the Tagged Web Requests to see which test case action caused the 10 highlighted log messages.

Two requests from the Login and Search Action caused this log message

Two requests from the Login and Search Action caused this log message

Conclusion

With additional functionality like adding custom HTTP Headers it will be possible to link test results with server side information as described in my blog entry without needing an additional proxy layer that takes care of the tagging.

If you want to know more about the specific Integration from Selenium/BrowserMob with dynaTrace feel free to contact me. dynaTrace Customers/Partners can access a sample on the dynaTrace Community Portal

Related posts:

  1. Manage SOA with iTKO LISA and dynaTrace Who is LISA? “The LISA 4 Complete SOA Test Platform...
  2. VSTS LifeCycle Integration to monitor SharePoint I am currently attending MSFT TechEd in Orlando. During lasts...
  3. Visual Studio Team System for Unit-, Web- and Load-Testing with dynaTrace Last week I was given the opportunity to meet the...

More Stories By Andreas Grabner

Andreas Grabner has been helping companies improve their application performance for 15+ years. He is a regular contributor within Web Performance and DevOps communities and a prolific speaker at user groups and conferences around the world. Reach him at @grabnerandi