<?xml version="1.0" encoding="UTF-8"?>
<webbenchmark>
<!-- The jvmConfig block is used by the harness to start the right JVM.
All elements are harness elements and hence the default namespace -->

<jvmConfig xmlns="http://faban.sunsource.net/ns/fabanharness">
<!-- The harness launches Java based on this JAVA_HOME -->
<javaHome>/usr/java</javaHome>
<!-- And uses the JVM options specified here -->
<jvmOptions>-Xmx1g -Xms256m -XX:+DisableExplicitGC</jvmOptions>
</jvmConfig>
<!-- The definition binds the config file with the benchmark class.
Here we use all three Faban namespaces. But the driver namespace is predominant.
Hence the driver namespace as default namespace. -->

<fa:runConfig definition="sample.driver.WebDriver"
                       
xmlns:fa="http://faban.sunsource.net/ns/faban"
                       xmlns:fh=
"http://faban.sunsource.net/ns/fabanharness"

                       xmlns=
"http://faban.sunsource.net/ns/fabandriver"
>
<!-- The hostConfig section is used by the harness to control hosts -->
<fa:hostconfig>
<!-- The host names performing the driver function, space separated -->
<fa:host>brazilian.sfbay</fa:host>
<!-- Whether the hosts are enabled -->
<fh:enabled>true</fh:enabled>
<!-- The CPU field is reserved for future use -->
<fh:cpus>0</fh:cpus>
<!-- The tools that should be started on this set of hosts, with args, separated by ';'-->
<fh:tools>NONE</fh:tools>
<!-- Custom commands to execute before the run -->
<fh:userCommands/>
</fa:hostconfig>
<!-- The scale of the benchmark run, the driver definition
defines the number of threads for each driver scale
and each driver type. -->
<fa:scale>20</fa:scale>
<!-- The rampup, steadystate, and rampdown of the driver -->
<fa:runControl unit="time">
<fa:rampUp>60</fa:rampUp>
<fa:steadyState>300</fa:steadyState>
<fa:rampDown>30</fa:rampDown>
</fa:runControl>
<!-- The place where results are written -->
<outputdir>/tmp/output</outputdir>
<!-- Audit is a flag for benchmarks to audit results
at the end of the run. It is not currently used
and subject to change in the near future -->
<audit>false</audit>
<threadstart>
<!-- The avg time between the start of each thread in
an agent -->
<delay>1000</delay>
<!-- Whether the agents will wait until all threads to
be up and then start the load all at once. If
set to false, each thread will start executing the
operations as soon as it is started. This will
gradually load up the server. -->
<simultaneous>false</simultaneous>
<!-- Whether the agents will start up threads in parallel
or not. If set to false, an agent will start all it's
threads before the next agent gets to start the
threads. The socket connection queue will be less
loaded when it is set to false. -->
<parallel>false</parallel>
</threadstart>
<!-- Stats collection. maxRunTime is in hours and is used only for
benchmarks that are cycle controlled. In time-controlled
benchmarks, the actual maxRunTime is calculated from the rampUp,
stdyState, rampDown parameters. The interval is in seconds and
applies to throughput and response time graphs.
The default is 30 seconds-->
<stats>
<maxruntime>6</maxruntime>
<interval>30</interval>
</stats>
<!-- Run-time stats exposed or not and the interval to update
the stats. A graphing package is required to display the
real time stats. It is not yet integrated into Faban. -->
<runtimestats enabled="false">
<interval>5</interval>
</runtimestats>
<!-- The driver-specific config. -->
<driverconfig name="WebDriver">
<!-- The number of agents -->
<agents>1</agents>
<!-- The stats interval, overrides the ones specified for
the benchmark. -->
<stats>
<interval>30</interval>
</stats>
<!-- Port to send the runtime stats. -->
<runtimestats target="9988"/>
<properties>
<!-- Demonstrates the different ways to specify properties -->
<!-- The first way is a full name value pair, multiple
values are supported, but only one name -->
<property>
<name>path1</name>
<value>~me/</value>
</property>
<!-- The second way is a little more compact while preserving
the ability to set multiple values for a name -->
<property name="path2">
<value>foo/</value>
</property>
<!-- The third way is very compact but you can only use one
value. This is adequate for most applications. -->
<property name="path3">bar/</property>
</properties>
<!-- The operation mix definitions overrides the mix in the annotation.
The format is specific to each mix type.  Whether or not overriding
will cause the run to fail depends on the configPrecedence field of the
benchmark definition annotation -->
<operationmix>
<name>MyOperation1</name>
<r>0</r><r>70</r><r>30</r>
</operationmix>
<operationmix>
<name>MyOperation2</name>
<r>60</r><r>0</r><r>40</r>
</operationmix>
<operationmix>
<name>MyOperation3</name>
<r>50</r><r>50</r><r>0</r>
</operationmix>
</driverconfig>
<!-- This shows a way to set different configurations of resources outside
the driver. Such parameters are generally used by the Faban Harness.-->
<serverconfig>
<host>129.146.207.112</host>
<port>80</port>
</serverconfig>
</runconfig>
</webbenchmark>