Andreas Grabner About the Author

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

5 Steps to Automate Browser Performance Analysis with Watir and dynaTrace AJAX Edition

I’ve recently been working with several clients to analyze their web site performance with the dynaTrace AJAX Edition. Based on our findings their JavaScript code, usage of 3rd party frameworks, use of AJAX, embedded objects and caching strategies have been changed over multiple iterations. After each iteration it is good practice to verify if the changes improved overall performance and also didn’t break the functionality of the page. Instead of executing the main use cases manually while running a performance analysis tool like dynaTrace it makes sense to automate this whole process.

There are several test automation tools out there that actively drive the browser – like Selenium, Watir, WebAii, QTP, SilkTest, … – Key is to not only to automate test execution but also automate performance analysis. The dynaTrace AJAX Edition enables this by automatically collecting and storing performance data for each browser session. With that integration you can run your automated tests to verify your functionality as well as capturing the data for performance analysis. Here are 5 quick steps to automate test execution and performance analysis with Watir and dynaTrace AJAX Edition.

Step 1: Installation

Step 2: Watir Script Generation

As an example we create a Watir script that opens a new browser, opens the google.com search page and searches for Watir. As a setup step we have to define several environment variables that activate the dynaTrace AJAX Agent in IE. By default – the dynaTrace AJAX Agent is not activated when launching a browser from outside the dynaTrace AJAX Edition Client. With the following environment variables you can control the dynaTrace AJAX Agent:

  • DT_IE_AGENT_ACTIVE: true or false to activate or deactivate the agent
  • DT_IE_SESSION_NAME: name of the captured performance session. If you have a test run # or test suite name I would use the name here. This is great to identify a captured performance session by its logical name
  • (optional) DT_IE_SERVER_HOST: The machine where the dynaTrace AJAX Edition Client runs
  • (optional) DT_IE_SERVER_PORT: The port of the dynaTrace AJAX Edition Client
  • (optional) DT_IE_CLEAR_CACHE: If true – the dynaTrace AJAX Agent will first clear the browser’s file cache before starting with any execution

Here is the script (Watir Sample Script)that first sets the env-variables and then executes the test steps:

Watir Script testing Google with enabled dynaTrace AJAX Agent

Watir Script testing Google with enabled dynaTrace AJAX Agent

 

Step 3: Preparing your test machine

Before running a script you have to

  1. Start the dynaTrace AJAX Edition Client (from the Start Menu -> Programs -> dynaTrace -> dynaTrace AJAX Edition)
  2. Close all current browsers

Its recommended to have the AJAX Edition Client running on your local machine where you also execute your test scripts. You can however run it on a separate machine. In this case you would need to specify the DT_IE_SERVER_HOST environment variable to the hostname that runs the dynaTrace AJAX Edition Client.

dynaTrace AJAX Edition after Startup

Closing all browsers is necessary as Watir reuses a running iexplorer process. The changed environment variable from the script would not affect any running browser instances and would therefore not activate the dynaTrace AJAX Agent. Closing all browsers will force Watir to open a new browser instance.

Step 4: Script Execution

Script execution is straight forward. You can either load your .rb file in SciTE and hit F5 to run the script or you launch it via the command prompt:

c:\> ruby mytestfile.rb

Step 5: Analysis

After the script has been executed you can analyse the output of Watir as well as the captured performance data in the dynaTrace AJAX Edition Client. If you switch to the client you can see a new stored session with the name specified in the DT_IE_SESSION_NAME Environment-Variable:

dynaTrace AJAX Session from Watir Script Execution

dynaTrace AJAX Session from Watir Script Execution

 

Advanced Step – adding custom markers

The dynaTrace AJAX Edition allows you to add custom markers while recording a performance session in IE. You get a nice toolbar that allows you to specify a Marker with a name that will later show up in the PurePath view at the time where you set the marker.

dynaTrace AJAX Edition Toolbar in IE

dynaTrace AJAX Edition Toolbar in IE

As an example – you can use this while testing an online purchase transaction and you can set markers for e.g.: “Search for Product”, “Place Order”, “Confirm Purchase”, … Having these markers in a large performance session makes it easier to find specific activities.

Not only can these markers be set via the toolbar – they can also be set via JavaScript. Once the dynaTrace AJAX Agent is enabled you can use the _dt_addMark(markname) method to define markers. Watir allows you to execute JavaScript in the browser which allows us to take advantage of the marker feature. Here is an extended version of the original script. As you can see I set markers after my script actions using the execScript method of the browser window:

Watir Script calling dynaTrace Marker Method

Watir Script calling dynaTrace Marker Method

After running this test you can see the marks in the dynaTrace PurePath View as well as in the Timeline Chart:Markers in dynaTrace AJAX PurePath View

Conclusion

This is one example of how you can automate test execution and performance analysis. Existing tools provide the interfaces and automation features to achieve a higher degree of automation – so lets use it. I’ve also recently posted about how we can get more out of functional testing. This example actually fits that gap as the dynaTrace AJAX Edition automatically tags each Network Request so that it can be picked up by a server-side Application Performance Management Solution like dynaTrace allowing you to correlate each individual test step with server-side performance data.As always – let me know what your thoughts on this topic are and how you achieve a higher degree of test and analysis automation in your environment.

Comments

  1. Hi,

    Upto now, All are said Watir is a function test tool. But this article damages that and proves watir & dynaTrace AJAX Edition supports Performance test too..

    Really nice article.

  2. Hi raveendran. Glad that you like the article. I want to point out though that Watir is not a performance or load-testing tool. The combination of Watir and dynaTrace allows Performance Analysis of the client activities in the Browser (with dynaTrace AJAX Edition) as well as the execution path on the server (with dynaTrace APM).

  3. Hi Andi, very nice blog – straight forward to implenment. It would be even nicer, if I could download the scripts shown in your screenshots instead of re-typing them.

  4. Attached the script to the blog post – http://blog.dynatrace.com/wp-content/testie.zip

  5. I really like the marker functionality, helps a lot. Thanks :)

  6. Chris Weathers says:

    This is a great article and there’s quite a bit of potential for using this to extend the usefulness of automated testing even further.

    I am trying to integrate this into our existing Selenium tests and am running into an issue. The HTA instance that Selenium invokes by default (using *iexplore or *iehta) doesn’t actually have the dynaTrace tool available so it’s not possible to start a session.

    Has anyone been able to work around this issue? I’ve tried starting IE as a custom browser without any success.

    Any help is appreciated.

    Thanks.

  7. This is a helpful example. Would you help with this error? It seems to have trouble with the submit step. In the IE8 browser, I see the word ‘Watir’ and Google’s proposed list of search terms in a drop-down list below it.

    c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/form.rb:79:in `assert_exist
    s’: Unable to locate a form using id and sfrm (Watir::Exception::UnknownFormException)
    from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/form.rb:86:in
    `submit’
    from C:/ruby_code/testie.rb:18

  8. @Bill:I would post your question in a Watir Forum. I am sure you will get help by the Watir User Community for this error as it is related to Watir and not to dynaTrace. Let us know when you get a positive response so that others can learn from it to.
    Happy New Year

  9. Great post Andreas. Is it possible to integrate Dynatrae Ajax markers in Microsoft VSTS web/load test? If yes, do you have example of it anywhere?

  10. Is there a way to export the data out in a CSV/txt or any standard format to preserve for historical purposes.

    With the following function can we access other elements/window objects say for eg say ‘Summary Tabs’/text fields etc.
    window=b.ie.Document.parentWindow

  11. @Anant: Good Question – and the answer is YES!
    First of all – you can keep the recorded sessions in dynaTrace AJAX Edition – so you can always analyze them in the future.
    Additionally – every Table/Tree Control has a Copy to Clipboard feature which actually copies an XML Representation of the Table/Tree Selection into the Clipboard. Try selecting multiple entries in either of the Lists, e.g: HotSpots or PurePath. Via the Context Menu call “Copy”. Check out what has been copied to the clipboard
    hope that helps

  12. Is it possible to capture the high-level stats like network time, JavaScript execution time, rendering time, and total page load time for each request and automatically export it so that those can be saved in a database for reporting purposes. Sounds like execution can be automated but the results can only be analyzed in the dynaTrace AJAX client. I need to run these daily and be able to show a report of historical performance. Is it possible to extend the tool through some sort of a listener to export/save some high-level page load time info? Thanks.

  13. Gautham says:

    I am setting the DT_IE_CLEAR_CACHE=’true’. Still I am seeing that the cache is still existing and . I also see that the DT network analysis shows that the resources are coming from cache. Any Ideas?

  14. Hi Gautham. Can you try it without the quotes?

  15. Gautham says:

    Andreas,
    Thanks for the quick response. Without quotes it doesn’t compile. I used
    ENV['DT_IE_CLEAR_CACHE']=true
    Where as the following is not working as expected
    ENV['DT_IE_CLEAR_CACHE']=’true’

  16. What about ENV['DT_IE_CLEAR_CACHE']=”true”?

  17. Hi.. sorry for the late reply on the DT_IE_CLEAR_CACHE question. there was a problem in dynaTrace AJAX Edition 1.6. This has been fixed in the current 2.0 Beta 1 – so – please update to the latest version and this feature should work as expected

  18. @Amoah Nathaniel: Thanks for the catch on the numbering-fixed it :-)
    Also thank you for the nice words – I will pass this along to the engineering team

  19. Bill Cruice says:

    Been a nightmare trying to get this code snippet to work. I had to resort to tutorials and “bingo debugging” and even then, just got some of the basics to work by accident.
    Then again, I am a novice in Ruby, so maybe these notes are unnecessary to most people trying.

    1- need to add “require ‘rubygems’” as line #1.
    2- window.execScript calls are still failing – I probably didn’t require the right items, but IRB throws an error, so – here’s the final text:
    irb(main):007:0> window = b.ie.Document.parentWindow
    => #
    irb(main):008:0> window.execScript(‘_dt_addMark(“After loading page”)’)
    WIN32OLERuntimeError: execScript
    OLE error code:80020101 in
    Could not complete the operation due to error 80020101.
    HRESULT error code:0×80020009
    Exception occurred.
    from (irb):8:in `method_missing’
    from (irb):8
    irb(main):009:0> b.text_field(:name, ‘q’).set ‘watir’
    => nil

    The above part drops down Google’s predictive text, so there’s an issue there, too.

    Form not found in the submit line, per below:
    irb(main):010:0> b.form(:id, “sfrm”).submit
    Watir::Exception::UnknownFormException: Unable to locate a form using id and sfr
    m
    from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-1.6.7/lib/watir/form.rb:79:
    in `assert_exists’
    from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-1.6.7/lib/watir/form.rb:86:
    in `submit’
    from (irb):10

    Now, I know I’ve got TONS to work though, but there’s GOT to be more to this. I’m a performance engineer, not a developer, and I’m picking up Ruby as fast as I can. Three months of hunt and peck for just the install? compounded by this not working? Infuriating.

    I’ve got several Ruby, RoR, and Watir tutorials to work though. It’s just been brutal trying to figure out why the require failed. Purely by accident, I found a page teaching basic Watir commands (http://watir.com/examples/) and found that firewatir worked, so it had to be operator error instead of just syntax/bad code/outdated code/corrupted path/wrong Ruby install/etc.

    I’ll check back after I finish a few tutorials.

  20. Bill,

    as you can see from the date this tutorial is rather old, so some things might have changed in the meantime regarding how to run a Watir script. Alternatively you can also use Selenium if this fits your needs better than Watir. Especially the Google homepage has changed since this tutorial was written.

    What I can see from the error above there is obviously a problem that the _dt_addMark function cannot be executed. This is an indicator that the Ajax Edition plug-in has not been loaded. Do you see the dynaTrace icon when Watir starts IE?

  21. Summary:
    - Google home page is the same.
    - Must have DTAjax window up and running or window.execScript throws OLE error.
    - Can change the DT_IE_SERVER_HOST to 127.0.0.1, but can’t locate the machine by name or IP.

    Is there a way to try these values manually in the config file? Someone here said yes, but can’t provide proof / an example.

    Posting Watir script below:
    #————————————————————-#
    # Demo test for the Watir controller.
    #
    # Simple Google test written by Jonathan Kohl 10/10/04.
    # Purpose: to demonstrate the following Watir functionality:
    # * entering text into a text field,
    # * clicking a button,
    # * checking to see if a page contains text.
    # Test will search Google for the “pickaxe” Ruby book.
    #————————————————————-#
    require “rubygems”

    # the Watir controller
    require “watir”

    # Enabling dynaTrace AJAX Agent
    ENV['DT_IE_AGENT_ACTIVE'] = ‘true’
    ENV['DT_IE_SESSION_NAME'] = ‘Watir Sample Test’
    # Optional dynaTrace AJAX Parameters
    ENV['DT_IE_SERVER_HOST'] = ’10.140.135.254′ #’localhost’ # loopback 127.0.0.1 works
    ENV['DT_IE_SERVER_PORT'] = ’9988′
    ENV['DT_IE_CLEAR_CACHE'] = ‘true’

    # set a variable
    test_site = “http://www.google.com”

    # open the IE browser
    b = Watir::IE.new

    # print some comments
    puts “Beginning of test: Google search.”
    puts ” Expected Result:”
    puts ” A Google page with results should be shown. ‘Programming Ruby’ should be high on the list.”

    puts ” Step 1: go to the test site: ” + test_site
    b.goto test_site
    window = b.ie.Document.parentWindow
    puts window
    window.execScript(‘_dt_addMark(“After loading page”)’)

    puts ” Step 2: enter ‘pickaxe’ in the search text field.”
    b.text_field(:name, “q”).set “pickaxe” # “q” is the name of the search field
    window.execScript(‘_dt_addMark(“After typing search string”)’)

    puts ” Step 3: click the ‘Google Search’ button.”
    b.button(:name, “btnG”).click # “btnG” is the name of the Search button
    window.execScript(‘_dt_addMark(“After clicking button”)’)

    puts ” Actual Result:”
    if b.text.include? “Programming Ruby”
    puts ” Test Passed. Found the test string: ‘Programming Ruby’. Actual Results match Expected Results.”
    else
    puts ” Test Failed! Could not find: ‘Programming Ruby’.”
    end

    puts “End of test: Google search.”
    b.close()

  22. And another add-on: the agent settings will work if created as Windows environment variables, but not yer programattically. We can decouple to a point, but not as hoped.
    Will update as I find out more about naming the machine for ‘DT_IE_SERVER_HOST’ in the program instead of in user variables.

  23. rob jahn says:

    I too get the error messsage with Watir and the dynatrace v3 beta. Any tips/suggesetions would be helpful.

    Note I do see the dynatrace session start and it is running locally. However it errors out on the _dt_addMark call.

    Here is what have in ruby script (I tried upper and lower case “d” in document for saw some threads that this was issue.

    ENV['DT_IE_AGENT_ACTIVE'] = ‘true’
    ENV['DT_IE_SESSION_NAME'] = ‘My Test’

    $dynatraceWindow = $b.ie.document.parentWindow

    $dynatraceWindow.execScript(‘_dt_addMark(“After loading Home Page after Login”)’)

  24. rob jahn says:

    Thanks. I tried, but same issue. As mentioned it is connecting Did method name change? Here is log

    2011-03-09 11:31:15 Log level: info
    2011-03-09 11:31:15 dynaTrace Agent injected
    2011-03-09 11:31:15 ———————————————————————————
    2011-03-09 11:31:15 dynaTrace Agent for IE (c) 2004-2011 dynaTrace software GmbH, http://www.dynatrace.com
    2011-03-09 11:31:15 ———————————————————————————
    2011-03-09 11:31:15 Version 3.0.0.686, build date Mar 8 2011
    2011-03-09 11:31:15 Build platform is Windows x86 32-bit
    2011-03-09 11:31:15 Platform is Windows XP Service Pack 3 5.1.2600 x86
    2011-03-09 11:31:15 Agent name: “NGOE Test”
    2011-03-09 11:31:15 Server: localhost:9988
    2011-03-09 11:31:15 Trying to connect to server
    2011-03-09 11:31:15 Internet Explorer version: 7.0.6000.16981
    2011-03-09 11:31:15 Successfully connected to server
    2011-03-09 11:31:15 Global settings
    2011-03-09 11:31:15 Capture page views ……….. yes
    2011-03-09 11:31:15 Capture performance metrics .. yes
    2011-03-09 11:31:15 Capture rendering times: ….. yes
    2011-03-09 11:31:15 Network settings
    2011-03-09 11:31:15 Capture requests: ………… yes
    2011-03-09 11:31:15 Capture request header: …… yes
    2011-03-09 11:31:15 Capture request body: …….. yes
    2011-03-09 11:31:15 Capture response header: ….. yes
    2011-03-09 11:31:15 Capture response body: ……. yes
    2011-03-09 11:31:15 Send dynaTrace Header: ……. no
    2011-03-09 11:31:15 JavaScript settings
    2011-03-09 11:31:15 Capture activity: ………… yes
    2011-03-09 11:31:15 Capture calls: …………… yes
    2011-03-09 11:31:15 Capture dynamic code: …….. no
    2011-03-09 11:31:15 Capture instrumentation …… yes
    2011-03-09 11:31:15 Capture urls …………….. yes
    2011-03-09 11:31:15 Capture args: ……………. yes
    2011-03-09 11:31:15 Capture DOM: …………….. yes
    2011-03-09 11:31:15 Tag timers: ……………… yes
    2011-03-09 11:31:15 Tag XmlHttpRequest: ………. yes
    2011-03-09 11:31:15 Connection state changed to connected. Notifying 1 listeners.
    2011-03-09 11:31:15 Starting event sender thread
    2011-03-09 11:31:15 Starting performance metrics collector thread
    2011-03-09 11:31:15 Hooking HTTP(S) protocol
    2011-03-09 11:31:15 Hooking HTTP(S) protocol succeeded
    2011-03-09 11:31:15 Connection state changed to connected. Notifying 1 listeners.
    2011-03-09 11:31:15 BHO has been created
    2011-03-09 11:31:15 BHO has connected to browser
    2011-03-09 11:31:16 mshtml version: EE07F2BA37354B4A873A2849C89C826F-00000000
    2011-03-09 11:31:16 Retrieving native instrumentation info from server…
    2011-03-09 11:31:16 Found match by signature of function CFrameSetLayout::DoLayout (matches 95.31%)
    2011-03-09 11:31:16 found symbol: CFrameSetLayout::DoLayout @ 0x3DCB4450
    2011-03-09 11:31:16 CFrameSetLayout::DoLayout 8BFF558BEC83EC74568BF18B4E0857E8FD69E3FF85C00F85B90000006880000000FF76088D4DF0E8DB18E3FF83EC108BC433FF57568D4D8C8978048978088978
    2011-03-09 11:31:16 Found match by signature of function CLayout::DoLayout (matches 89.06%)
    2011-03-09 11:31:16 found symbol: CLayout::DoLayout @ 0x3DAC5158
    2011-03-09 11:31:16 CLayout::DoLayout 8BFF558BEC83EC6C568BF18B4E0857E8F55C020085C00F85F4CC110083EC108BC433FF57568D4D9489780489780889780C8938E8961603008D45F8508BCEE836
    2011-03-09 11:31:16 Found match by signature of function CDoc::OnPaint (matches 82.81%)
    2011-03-09 11:31:16 found symbol: CDoc::OnPaint @ 0x3DAFCE40
    2011-03-09 11:31:16 CDoc::OnPaint 8BFF558BEC81EC78040000A1D499D23D33C58945FC53568BD9578D8DD4FEFFFFE82EE4FFFFA1B09BD23D8B70308B783433C98BC60BC7894DB8894DA40F853EF9
    2011-03-09 11:31:16 Found match by signature of function CButtonLayout::DoLayout (matches 93.75%)
    2011-03-09 11:31:16 found symbol: CButtonLayout::DoLayout @ 0x3DB2F17E
    2011-03-09 11:31:16 CButtonLayout::DoLayout 8BFF558BEC56FF75088BF1E8EF7FFCFF8B4E08E8CBBCFBFF85C0752AF745080000100074218B068BCEFF909401000083C008508B066A008BCEFF90240100008B
    2011-03-09 11:31:16 Found match by signature of function CTableLayoutBlock::DoLayout (matches 92.19%)
    2011-03-09 11:31:16 found symbol: CTableLayoutBlock::DoLayout @ 0x3DCA3314
    2011-03-09 11:31:16 CTableLayoutBlock::DoLayout 8BFF558BEC81EC9800000053568BF1578B7E0833DB3BFB740A538BCFE81C87E0FF8BD885DB0F84EC0000008BCBE89EDEE0FF85C00F84D40000008B4E08E80B7B
    2011-03-09 11:31:16 Found match by signature of function CView::AddLayoutTask (matches 93.75%)
    2011-03-09 11:31:16 found symbol: CView::AddLayoutTask @ 0x3DAF6C2D
    2011-03-09 11:31:16 CView::AddLayoutTask 8BFF558BEC578BF9F6877E010000010F8404E90B0053568B750C6A006A008BC6250000FFFF506A02FF7508E89FFEFFFF8BD885DB7C198D871801000081E6FEFF
    2011-03-09 11:31:16 Found match by signature of function CFlowLayout::DoLayout (matches 96.88%)
    2011-03-09 11:31:16 found symbol: CFlowLayout::DoLayout @ 0x3DAF717D
    2011-03-09 11:31:16 CFlowLayout::DoLayout 8BFF558BEC81ECB400000053565733FF8BF1897DE88B4E0866F741180002894DF0BB000100000F84590F0000E8B0ABFDFF859894000000C745EC010000000F84
    2011-03-09 11:31:16 Found match by signature of function CRecalcEngine::RecalcAll (matches 95.31%)
    2011-03-09 11:31:16 found symbol: CRecalcEngine::RecalcAll @ 0x3DC7C5F0
    2011-03-09 11:31:16 CRecalcEngine::RecalcAll 8BFF558BEC5153568B7508834E3004578D7E208B0733DBC1E80285C0895DFC7E158B46248B0C98E826FFFFFF8B0743C1E8023BD87CEB836630FB8BCFE81557E5
    2011-03-09 11:31:17 Found match by signature of function CSelectLayout::DoLayout (matches 90.63%)
    2011-03-09 11:31:17 found symbol: CSelectLayout::DoLayout @ 0x3DCAF6A3
    2011-03-09 11:31:17 CSelectLayout::DoLayout 8BFF558BEC568BF18B560885D27412E8721EEAFF85C075096A018BCAE8BD7AE5FFFF75088BCEE88A5AE1FF5E5DC2040090909090908BFF558BEC8B413CFF750C
    2011-03-09 11:31:17 BeforeNavigate(‘http://(i removed)’)
    2011-03-09 11:31:17 02BFC158 Redirecting to https:(i removed)
    2011-03-09 11:31:17 02BFC158 Redirecting to https:(i removed)
    2011-03-09 11:31:17 02BFC158 Redirecting to http://(i removed)
    2011-03-09 11:31:17 02BFC158 Redirecting to https://(i removed)
    2011-03-09 11:31:17 02BFC158 Redirecting to https://(i removed)
    2011-03-09 11:31:17 NavigateComplete(‘https://(i removed)’)
    2011-03-09 11:31:18 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:20 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:24 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:24 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:24 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:25 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:25 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:25 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:25 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:26 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:26 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:26 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:26 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:26 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:28 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:28 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:28 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:28 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:28 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:28 Agent::instrument(): instrumentation successfull
    2011-03-09 11:31:29 DocumentComplete(‘https://(i removed)’)
    2011-03-09 11:32:53 BHO has disconnected from browser
    2011-03-09 11:32:53 BHO has been released
    2011-03-09 11:32:53 Agent::shutdown(). Initcount: 2
    2011-03-09 11:32:53 Shutting down metric collector
    2011-03-09 11:32:53 Shutting down event sender
    2011-03-09 11:32:53 Shutting down connection to server
    2011-03-09 11:32:53 Agent was stopped

  25. nothing has changed. It works the same on Firefox and IE now. Only thing you have to make sure is that you have to load a page first before you can call _dt_addMark. Once the browser starts loading the first page the method is available

  26. I’m using WatiN which is C#, How do I translate this:

    ENV['DT_IE_AGENT_ACTIVE'] = ‘true’
    ENV['DT_IE_SESSION_NAME'] = ‘WatiR Datapipe Prod’

  27. I’ll Try this:

    Environment.SetEnvironmentVariable(“DT_IE_AGENT_ACTIVE”, “true”, EnvironmentVariableTarget.Process);

    Environment.SetEnvironmentVariable(“DT_IE_SESSION_NAME”, “WatiR Datapipe Prod”, EnvironmentVariableTarget.Process);

Trackbacks

  1. [...] This post was mentioned on Twitter by kohlerm, dynaTrace software, Franz See, Gavin Blair, Sean Sandy and others. Sean Sandy said: Use watir to test ajax, then use dynatrace to measure the performance http://bit.ly/44ML0M [...]

  2. [...] performance information for every browser session that is driven by these test tools. Check out the 5 Steps to Automate Performance Analysis Blog that shows AJAX Edition’s automation capabilities with [...]

  3. [...] Last week I got several questions from our dynaTrace AJAX Community members regarding advanced features I mentioned in the blog 5 Steps to Automate Browser Performance Analysis with Watir and dynaTrace AJAX Edition: [...]

  4. [...] already blogged about how to automatically start the dynaTrace agent from Watir or Selenium. In fact it is nothing more than setting two environment [...]

  5. [...] If you are interested in Automation I recommend reading 5 Steps to setup ShowSlow with dynaTrace, Integrating dynaTrace with Selenium or Integrating dynaTrace with Watir. [...]

Comments

*


7 + eight =