1 <?xml version="1.0"?>
  2 <!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">
  3 <tsung loglevel="notice" version="1.0">
  4 
  5   <clients>
  6     <client host="localhost" use_controller_vm="true"></client>
  7   </clients>
  8 
  9   <!-- Server side setup -->
 10   <servers>
 11     <server host="jabber.example.com" port="5225" type="tcp"></server>
 12   </servers>
 13 
 14   <load>
 15     <arrivalphase phase="1" duration="1" unit="minute">
 16       <users interarrival="0.01" unit="second"></users>
 17     </arrivalphase>
 18 
 19     <arrivalphase phase="2" duration="5" unit="minute">
 20       <users interarrival="0.1" unit="second"></users>
 21     </arrivalphase>
 22 
 23     <arrivalphase phase="3" duration="3" unit="minute">
 24       <users interarrival="1" unit="second"></users>
 25     </arrivalphase>
 26   </load>
 27 
 28   <!-- JABBER parameters -->
 29   <!-- to synchronise users,  use a global acknoledgement -->
 30   <options>
 31     <option type="ts_jabber" name="global_number" value="300"></option>
 32     <option type="ts_jabber" name="userid_max" value="500"></option>
 33     <option type="ts_jabber" name="domain" value="jabber.example.com"></option>
 34     <option type="ts_jabber" name="username" value="tsung"></option>
 35     <option type="ts_jabber" name="passwd" value="p4ssw0rd"></option>
 36   </options>
 37 
 38   <sessions>
 39     <!-- for each user we do the same -->
 40     <session probability="100" name="jabber-example" type="ts_jabber">
 41 
 42       <!-- connect and logon -->
 43 
 44       <request> <jabber type="connect" ack="no_ack"></jabber> </request>
 45       <thinktime value="2"></thinktime>
 46 
 47       <transaction name="authenticate">
 48         <!-- ack=global: wait for all other users to authenticate -->
 49         <request> <jabber type="auth_get" ack="global"></jabber> </request>
 50         <request> <jabber type="auth_set_plain" ack="local"></jabber> </request>
 51       </transaction>
 52 
 53       <request> <jabber type="presence:initial" ack="no_ack"/> </request>
 54       <thinktime value="2"></thinktime>
 55 
 56       <transaction name="roster">
 57         <request> <jabber type="iq:roster:get" ack="local"></jabber></request>
 58       </transaction>
 59 
 60       <thinktime value="5"></thinktime>
 61 
 62       <transaction name="online">
 63         <request> <jabber type="chat" ack="no_ack" size="16" destination="online"></jabber> </request>
 64       </transaction>
 65 
 66       <!-- add another user to the roster; delete him later -->
 67 
 68       <transaction name="rosteradd">
 69         <request> <jabber type="iq:roster:add" ack="no_ack" destination="online"></jabber> </request>
 70         <request> <jabber type="presence:subscribe" ack="no_ack"/> </request>
 71       </transaction>
 72 
 73       <thinktime value="1"></thinktime>
 74 
 75       <!-- write some message to other online and offline (this will cause some errors) users -->
 76 
 77       <transaction name="online">
 78         <request> <jabber type="chat" ack="no_ack" size="56" destination="online"></jabber> </request>
 79       </transaction>
 80 
 81       <thinktime value="4"></thinktime>
 82 
 83       <transaction name="online">
 84         <request> <jabber type="chat" ack="no_ack" size="16" destination="online"></jabber> </request>
 85       </transaction>
 86 
 87       <transaction name="rosterrename">
 88         <request> <jabber type="iq:roster:rename" ack="no_ack"></jabber> </request>
 89       </transaction>
 90 
 91       <thinktime value="3"></thinktime>
 92 
 93       <transaction name="offline">
 94         <request> <jabber type="chat" ack="no_ack" size="56" destination="offline"></jabber> </request>
 95       </transaction>
 96 
 97       <thinktime value="3"></thinktime>
 98 
 99       <transaction name="rosterdelete">
100         <request> <jabber type="iq:roster:remove" ack="no_ack"></jabber> </request>
101       </transaction>
102 
103       <!-- and disconnect -->
104 
105       <transaction name="close">
106         <request> <jabber type="close" ack="no_ack"></jabber> </request>
107       </transaction>
108 
109     </session>
110   </sessions>
111 </tsung>