10 June 2009 - 3.0-beta-2 user guide eclipse intellij netbeans maven download nightly forum bugs blog sf.net eviware


Eviware Logo

Customizing Reports

When creating main reports there are several ways to influence its layout and/or how data will be populated in report.

Interactive Parameters

Interactive parameters give ability to change report and influence data layout in number way. Their value is set by user before report is being created. Last set value is remebered by soapUI Pro and it will be offered as default value next time report is created.

Here is example:

		
<parameter name="FlowLayout" class="java.lang.Boolean">
    <property name="interactive" value="true"/>
    <property name="label" value="Flow Layout"/>
    <parameterDescription>Choose flow layout for report</parameterDescription>
    <defaultValueExpression>false</defaultValueExpression>
</parameter>
		
		
Every interactive parameter have its name, type, properties, description and default value. All rules that applies on jasper report parameters applies here, with some soapUI restrictions. Interactive parameter class can be java.lang.Boolean, java.lang.Integer and java.lang.String. It must have property interactive. Property label is used in soapUI Pro GUI as more friendlier property name. parameterDescription is parameter description, used as reminder what it is and defaultValueExpression is expresion used to calculate default parameter value. Property depends defines parameter dependancy on diferent data sets. One parameter can depend on more than one dataset and they are all listed in value attribute separated by comas, like :
		
   <parameter name="IncludeResults" class="java.lang.Boolean">
      <property name="interactive" value="true"/>
      <property name="label" value="Include Latest Results"/>
      <property name="depends" value="ProjectTestSuiteResults,TestSuiteErrorResults"/>
      <parameterDescription>Includes Latest Test Results in report</parameterDescription>
      <defaultValueExpression/>
   </parameter>		
		
		
Property options defines set of values this parameter can have.

Usage of Interactive Parameters

Interactive parameters connects soapUI Pro GUI and jasper reports, see:

If you look in Project Report template, it is one that comes with soapUI Pro, you can see this xml:
		
   <parameter name="IncludeOverview" class="java.lang.Boolean">
      <property name="interactive" value="true"/>
      <property name="label" value="Include Project Overview"/>
      <parameterDescription>Includes Project Overview information in report</parameterDescription>
      <defaultValueExpression>true</defaultValueExpression>
   </parameter>
   <parameter name="IncludeResults" class="java.lang.Boolean">
      <property name="interactive" value="true"/>
      <property name="label" value="Include Latest Results"/>
      <property name="depends" value="ProjectTestSuiteResults"/>
      <parameterDescription>Includes Latest Test Results in report</parameterDescription>
      <defaultValueExpression/>
   </parameter>
   <parameter name="FlowLayout" class="java.lang.Boolean">
      <property name="interactive" value="true"/>
      <property name="label" value="Flow Layout"/>
      <parameterDescription>Choose flow layout for report</parameterDescription>
      <defaultValueExpression>false</defaultValueExpression>
   </parameter>
   <parameter name="ErrorDetails" class="java.lang.Boolean">
      <property name="interactive" value="true"/>
      <property name="label" value="Detailed Error Information"/>
      <parameterDescription>Adds details for failed test items to report</parameterDescription>
      <defaultValueExpression>true</defaultValueExpression>
   </parameter>
		
		
What each parameter do is in its description, but what it is important that they are presented in soapUI Pro GUI before report is created, so user can choose their values. Notice that Include Latest Results which is IncludeResult is disabled. It is because it depends on DataSet ProjectTestSuiteResults results. If it have none it will be disabled.

More examples:

		
   <parameter name="Print_Format" class="java.lang.String">
      <property name="interactive" value="true"/>
      <property name="label" value="Print Format"/>
      <parameterDescription>Choose print format, flow or page oriented</parameterDescription>
      <defaultValueExpression/>
   </parameter>
   <parameter name="int" class="java.lang.Integer">
      <property name="interactive" value="true"/>
      <property name="label" value="int"/>
      <parameterDescription>Choose print format, flow or page oriented</parameterDescription>
      <defaultValueExpression/>
   </parameter>
   <parameter name="PChoose" class="java.lang.String">
      <property name="interactive" value="true"/>
      <property name="label" value="choose Format"/>
      <property name="options" value="one, two, three, four, five, six"/>
      <parameterDescription>Choose print format, flow or page oriented</parameterDescription>
      <defaultValueExpression/>
   </parameter>
   
		
This xml code produce input for String, Integer and combo box with several options:


Next:DataSets