Canoo Webtest WebTest Canoo

Email Step emailMessageStructureFilter


Returns the structure (expressed in XML) associated with a particular message as the current response.


Required? yes
The message id.
Required? no
The description of this test step.
Required? no, default is no headers
A comma or space seperated list of headers to include in the structure description.
Required? no
A shorthand: save='prefixName' is the same as savePrefix='prefixName' saveResponse='true'.
Required? no, default is the 'savePrefix' parameter as specified in <config>.
A name prefix can be specified for making a permanent copy of received responses. A unique number and the file extension (depending on the MIME-Type) will be appended. The resultpath attribute of the <config> element is used for determining the location of the saved result.
Required? no
Whether to make a permanent copy of received responses. Overrides the default value set in the <config> element.


Here is an example of using the emailMessageStructureFilter step.

    <emailSetConfig .../>

    <-- plain message -->
    <emailStoreMessageId subject="mailtest - multifiles - plain"
        property="mid1" .../>
    <compareToExpected saveFiltered="truereadFiltered="false"
        <emailMessageStructureFilter messageId="#{mid1}"/>

    <-- MIME message -->
    <emailStoreMessageId subject="mailtest - multifiles - mime"
        property="mid2" .../>
    <compareToExpected saveFiltered="truereadFiltered="false"
        <emailMessageStructureFilter messageId="#{mid2}"

    <-- uuencoded message -->
    <emailStoreMessageId subject="mailtest - multifiles - uu"
        property="mid3" .../>
    <compareToExpected saveFiltered="truereadFiltered="false"
        <emailMessageStructureFilter headers="subject,from,to"


The resulting files will be as follows:

<message type="SimplecontentType="text/plain">
<message type="SimplecontentType="text/plain">
    <header name="Subjectvalue="mailtest - multifiles - uu"/>
    <header name="Fromvalue=""/>
    <header name="Tovalue=""/>
    <part type="uuencodedfilename="ok.gif"/>
    <part type="uuencodedfilename="testDocLinks.pdf"/>
<message type="MIMEcontentType="multipart/mixed">
    <header name="Subjectvalue="mailtest - multifiles - mime"/>
    <part type="inlinecontentType="text/plain"/>
    <part type="attachmentfilename="ok.gifcontentType="image/gif"/>
    <part type="attachmentfilename="testDocLinks.pdfcontentType="application/octet-stream"/>

Note in the above example the XML structure descriptions were saved away for later comparison. An alternative would be to perform verifyXPath tests on the resulting current content.


Latest build: development
Posted: 19-Jul-2016 17:36

WebTest 3.0 released, featuring upgrades to Java 5, Groovy 1.6, and HtmlUnit 2.4.
The release includes support for maven integration, IDE-integration like for unit tests, capturing of background JavaScript errors, new steps for mouseOver and mouseOut events, better parallel execution of tests and - as usual - lots of handling improvements.
Posted: 5 March 2009

WebTest @ JavaOne
Dierk König presented "Functional testing of web applications: scaling with Java" on Wed May 7, 13:30 at JavaOne 2008 in the Tools and Scripting Languages track.
Posted: 8 May 2008

New WebTest screencast available:
Data Driven WebTest
Posted: 13 November 2007

First WebTest screencast available:
Creating a first Webtest Project

Extend WebTest with Groovy! Groovy in Action is available in every good bookstore.
Groovy in Action
Posted: 29 January 2007