Icon

Comments have been closed on this page. Please use AppMon & UEM Open Q & A forum for questions about this plugin.

Overview

Allows you to execute a multi step web transaction script to be used to e.g: verify availability or functionality of critical web transactions
Icon

Since dynaTrace 5.5 the Web Transaction Monitor Plugin that shipped with the product is no longer officially supported. Continued development of this plugin will be done through the Community

Plugin Details

Plug-In Files

Web Transaction Monitor Plugin

Original author

Ardeshir Arfaian

dynaTrace Versions

4.2+

License

dynaTrace BSD

Support

Not Supported

Release History

 

Installation

Import the Plugin into the dynaTrace Server via the dynaTrace Server Settings menu -> Plugins -> Install Plugin. For details how to do this please refer to the Dynatrace documentation: Plugin Management

Content

Synthetic Transaction Monitoring

Besides the Built-In Web Transaction Monitor you can also use Synthetic Transaction Monitoring: Synthetic Monitoring Integration

Setup Web Transaction Monitoring

How to create a Web Transaction Monitor Task

  1. Open System Profile >> Preferences
  2. Choose "Monitors" from the Configuration panel (Property Navigation)
  3. Choose Create..., then select the "Web Transaction Monitor"
  4. Rename your Web Transaction Monitor and adapt description.
  5. Continue to configure the Monitor as described below.

How to configure a Web Transaction Monitor Task

If the Monitor configuration dialog is not already open, open "Monitors" Configuration dialog in your System Profile Preferences, select the Monitor you wish to edit and click "Edit.." button:

You can now configure:

  1. Script (see section "Usage")
  2. Port - you can use this setting in your script through ANT notation (see section "Usage")
  3. Protocol - Choose Http Version: 0.9, 1.0 or 1.1
  4. Log content after errors - toggles content logging after errors. The content of the last web request will be logged if a following step produces an error. This may cause high logging volume.
  5. dynaTrace Tagging - if an agent is injected into your web application, you can set this flag to receive tagged web requests and additional information in the request header (see section "Usage")
  6. Transaction Name (only available if tagging is enabled) - will be sent in the request header, enables dynaTrace to identify all requests belonging to this transaction
  7. Transaction Location (only available if tagging is enabled) - will be sent in the request header with tag "transactionLocation"
  8. Custom headers - allows to specify custom HTTP headers which are added to for all requests.
  9. UserAgent - will be sent in the request header, enables to simulate different browsers to you website
  10. UserAgentLanguage - en, de, ch, es ... test different languages supported by your website
  11. Use HTTP Proxy - Choose if Web Transaction Monitor should use Http Proxy (specify host, port & authentication settings if necessary)
  12. Connection Timeout - time in seconds before a single request (and also the complete transaction) runs into a time out
  13. Auto refresh - if selected, the Web Transaction Monitor follows redirects automatically
  14. Log level - allows to increase log level of the monitor logging output

Unable to render {include} The included page could not be found.
Unable to render {include} The included page could not be found.

Usage

Sample Script

A TestScript consists of a number of consecutive steps and represents the actual web transaction which should be performed. A manual with a detailed description of available steps is located under Canoo WebTest Manual.
Here a sample TestScript: 

<!-- first part -->
<invoke url="http://${host}:${port}/frontend/" description="Home"/>
<setInputField name="username" value="demouser" description="Login"/>
<setInputField name="password" value="demopass" description="Login"/>
<clickButton label="Login" description="Login"/>
<verifyText text="Welcome,&amp;nbsp;demo" description="Login"/>

In the first part this TestScript calls GoSpace on your local machine on port 9090 (<invoke>), logs in with username and password (<setInputField>, <clickButton>) and verifies that the login succeeded (<verifyText>).

<!-- second part -->
<clickButton label="search" description="Search"/>
<verifyText text="Availiable space voyages of your choice" description="Search"/>
<verifyTitle text="List results" description="Search"/>
<clickLink label="Diamond Star Village" description="Buy"/>
<verifyText text="OSN-4" description="Buy"/>
<clickLink label="buy" description="Buy"/>
<clickLink label="I agree to the GoSpace license terms" description="Agree"/>
<verifyText text="Thank you for booking your voyage with GoSpace" description="Agree"/>

In the second part a search is performed (<clickButton>), the success of the search is verified (<verifyText>, <verifyTitle>), a travel selected (<clickLink>), verified(<verifyText>) and bought (<clickLink>). Next the success of the purchase is verified (<verifyText>).

<!-- third part -->
<clickLink label="last minute" description="LastMinute"/>
<sleep seconds="2" description="LastMinute"/>
<clickLink label="logout" description="Logout"/>

In the third part of this TestScript a last minute search is performed followed by thinktime (<sleep>) and a logout (<clickLink>).

Use Host in your Web Transaction

The host can be set statically in the script but it is recommended to use they syntax ${host} to allow the script to be run on multiple target hosts.

<invoke url="http://${host}:${port}/frontend/" description="GoSpace home" />



Following TestScripts are provided:
GoSpace only Web Transaction (configure port: 9090, runs login, query & buy, last minute search, logout)
GoSpace only Web Transaction 2 (configure port: 9090, runs login, query from random departure spaceport, logout) 
DotNetPay only Web Transaction (configure port: 9082, runs login, available cash, depending on available cash: transfer or recharge bank deposit)
GoSpace and DotNetPay Web Transaction (configure port: 9090, runs login, query & buy, last minute search & direct buy, check if direct buy successful: recharge bank deposit )
 Timer Name 
Add the timer name for each step by using the description attribute: 

< ...  description="Timer Name"/>

Better simulate browser behaviour...
...download all referenced content such as css, images, flash & javascript content.
See Canoo WebTest step „verifyLinkedContent"
See Canoo WebTest step „verifyImages"

Without any of these steps the WTAMonitor only requests what it needs:
basically the url's in the script
.js files if needed for button clicks,...
no additional ressources (images, css, ...)

Business Transactions for your Web Transactions

Make sure "dynaTrace Tagging" is enabled in your Web Transaction Monitor settings
Define Business Transactions to filter and group PurePaths by transaction name and monitor which generated them:
To measure this requests headers you have to configure them in the Servlet Sensor Pack:

  1. Open System Profile >> Preferences >> Open Agent Group >> Sensor Configuration
  2. Select "Properties.." of Servlet Sensor and adjust as shown on the screenshot
  3. Open System Profile >> Preferences >> Measures >> Add Measure... >> Business Transaction Evaluation/Filter/Grouping Values >> Web Request - Header value
  4. Configure the header field as shown in screenshot

Create the Business Transaction:

  1. Open System Profile >> Preferences >> Business Transactions >> Create ..
  2. Enter a Name
  3. Select an Evaluation Criteria, for example Pure Path duration
  4. Select the just created Measure as Grouping Criteria.

Known Problems

As a matter of deployment size, following functionality has been excluded (which is usually included in Canoo WebTest):

  • Groovy Support (extension step groovy)
  • Filter Steps are disabled
  • PDF Steps are disabled
  • Excel Steps are disabled
  • Email Steps are disabled

 

  1. Anonymous (login to see details)

    How can we use this monitor with the HTTPS protocol?

    1. Anonymous (login to see details)

      Doesn't it work if you type "https" instead of "http" in the <invoke> element?

      1. Anonymous (login to see details)

        Yes but not for a specific website.  I change the protocol to HTTP/0.9 and it worked.

  2. Anonymous (login to see details)

    In the Canoo doc it stats it only support basic authentication.  Is there a way to get Canoo to work with NTLM authentication?  I've have seen note of a possibility off using a proxy  and those notes mention only basic proxy authentication and not NTLM.  We continue to get a 401.

  3. Anonymous (login to see details)

    I'm trying to verify whether all the images on a page are there.

    I'm getting this error when I run the plugin:
    java.lang.NoSuchMethodError: com.gargoylesoftware.htmlunit.WebResponse.getUrl()Ljava/net/URL;

    It happens in the third step of my script, which looks like this:

    <enableJavaScript enable="false" description="Turn off Javascript"/>
    <invoke url="http://${host}:${port}/frontpage" description="Home"/>
    <verifyLinkedContent xpath="//img/@src" description="Check all linked images"/>

    The first two steps run fine. I turn off JavaScript as first step to help with page loading. The page itself appears to be loaded correctly.

    Would anybody know how to fix this?

    1. Anonymous (login to see details)

      Ok, I've been able to work around this by filtering for specific image hosts in the final step. It appears to work now.
      It might have been something special on the page... they use quite a bit of stuff on there.

      1. Anonymous (login to see details)

        thanks for the update. always good to know when people solve their issues (smile)

  4. Anonymous (login to see details)

    I'm getting this error when I run the plugin:
    java.lang.NoSuchMethodError: com.gargoylesoftware.htmlunit.WebResponse.getUrl()Ljava/net/URL;

    just one step like below in the script.

    <invoke url="http://${host}:${port}/wfo/control/signin" description="login"/>

  5. Anonymous (login to see details)

    Hi all,

    We have disabled comments on this plugin page.

    Please use the AppMon & UEM Plugins forum for questions about this plugin.

    Sorry to interrupt ongoing discussions. Please re-post your last question in AppMon & UEM Plugins forum.