Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

import from private repository

  • Loading branch information...
commit 6fc6d235446085460235b1476e73ecd98a4e4bc3 1 parent ed7b596
Florent Ramière framiere authored

Showing 300 changed files with 1,020,406 additions and 0 deletions. Show diff stats Hide diff stats

  1. +70 0 .gitignore
  2. +17 0 LICENSE.txt
  3. +6 0 README
  4. +22 0 README.txt
  5. +5 0 clean-start
  6. +2 0  game
  7. +3 0  game-flush-users
  8. +6 0 infinitest.filters
  9. +3 0  kill-web-servers
  10. +29 0 mvnPerf
  11. +256 0 pom.xml
  12. +2 0  restart-web-servers
  13. +1 0  src/main/cassandra/connect
  14. +13 0 src/main/cassandra/drop
  15. +2 0  src/main/cassandra/init
  16. +14 0 src/main/cassandra/init-with-replication-factor-3.script
  17. +14 0 src/main/cassandra/init.script
  18. +5 0 src/main/cassandra/recreate
  19. +11 0 src/main/cassandra/start
  20. +308 0 src/main/custom_tsung/create_user/tsung-1.0.dtd
  21. +86 0 src/main/custom_tsung/create_user/tsung_create_users.xml
  22. +10 0 src/main/custom_tsung/create_user/users_10.csv
  23. +1 0  src/main/custom_tsung/game_launch/authentication_key
  24. +1 0  src/main/custom_tsung/game_launch/game
  25. +1 0  src/main/custom_tsung/game_launch/game_10
  26. +1 0  src/main/custom_tsung/game_launch/game_100
  27. +1 0  src/main/custom_tsung/game_launch/game_1000
  28. +1 0  src/main/custom_tsung/game_launch/game_150
  29. +308 0 src/main/custom_tsung/game_launch/tsung-1.0.dtd
  30. +89 0 src/main/custom_tsung/game_launch/tsung_game_launch.xml
  31. +89 0 src/main/custom_tsung/game_launch/tsung_game_launch_10.xml
  32. +89 0 src/main/custom_tsung/game_launch/tsung_game_launch_100.xml
  33. +89 0 src/main/custom_tsung/game_launch/tsung_game_launch_1000.xml
  34. +89 0 src/main/custom_tsung/game_launch/tsung_game_launch_150.xml
  35. +1 0  src/main/custom_tsung/game_play/questions.csv
  36. +100 0 src/main/custom_tsung/game_play/round_data.csv
  37. +10 0 src/main/custom_tsung/game_play/round_data_10.csv
  38. +100 0 src/main/custom_tsung/game_play/round_data_100.csv
  39. +1,000 0 src/main/custom_tsung/game_play/round_data_1000.csv
  40. +150 0 src/main/custom_tsung/game_play/round_data_150.csv
  41. +1 0  src/main/custom_tsung/game_play/top_scores.csv
  42. +1 0  src/main/custom_tsung/game_play/top_scores_10.csv
  43. +1 0  src/main/custom_tsung/game_play/top_scores_100.csv
  44. +1 0  src/main/custom_tsung/game_play/top_scores_1000.csv
  45. +1 0  src/main/custom_tsung/game_play/top_scores_150.csv
  46. +308 0 src/main/custom_tsung/game_play/tsung-1.0.dtd
  47. +721 0 src/main/custom_tsung/game_play/tsung_game_play.xml
  48. +721 0 src/main/custom_tsung/game_play/tsung_game_play_10.xml
  49. +721 0 src/main/custom_tsung/game_play/tsung_game_play_100.xml
  50. +721 0 src/main/custom_tsung/game_play/tsung_game_play_1000.xml
  51. +723 0 src/main/custom_tsung/game_play/tsung_game_play_150.xml
  52. +8 0 src/main/data/known_users.csv
  53. +200,000 0 src/main/data/users_1.csv
  54. +200,000 0 src/main/data/users_2.csv
  55. +200,000 0 src/main/data/users_3.csv
  56. +200,000 0 src/main/data/users_4.csv
  57. +200,000 0 src/main/data/users_5.csv
  58. +110 0 src/main/hyperic/jmx-plugin.xml
  59. +86 0 src/main/java/usi2011/Main.java
  60. +56 0 src/main/java/usi2011/domain/Answer.java
  61. +78 0 src/main/java/usi2011/domain/AuditUser.java
  62. +45 0 src/main/java/usi2011/domain/AuditUserAnswer.java
  63. +87 0 src/main/java/usi2011/domain/GameStatus.java
  64. +35 0 src/main/java/usi2011/domain/Login.java
  65. +123 0 src/main/java/usi2011/domain/Parameters.java
  66. +235 0 src/main/java/usi2011/domain/Question.java
  67. +80 0 src/main/java/usi2011/domain/QuestionStatus.java
  68. +256 0 src/main/java/usi2011/domain/Ranking.java
  69. +191 0 src/main/java/usi2011/domain/Session.java
  70. +120 0 src/main/java/usi2011/domain/User.java
  71. +152 0 src/main/java/usi2011/domain/UserScoreHistory.java
  72. +11 0 src/main/java/usi2011/exception/AnswerException.java
  73. +11 0 src/main/java/usi2011/exception/AuthenticationKeyException.java
  74. +15 0 src/main/java/usi2011/exception/GameSessionException.java
  75. +19 0 src/main/java/usi2011/exception/JsonException.java
  76. +11 0 src/main/java/usi2011/exception/LoginException.java
  77. +15 0 src/main/java/usi2011/exception/NoGameCreatedException.java
  78. +11 0 src/main/java/usi2011/exception/SessionKeyException.java
  79. +11 0 src/main/java/usi2011/exception/StorageException.java
  80. +11 0 src/main/java/usi2011/exception/UserException.java
  81. +11 0 src/main/java/usi2011/exception/UserToAuditException.java
  82. +25 0 src/main/java/usi2011/exception/UsiException.java
  83. +106 0 src/main/java/usi2011/http/HttpBenchRequestHandler.java
  84. +90 0 src/main/java/usi2011/http/HttpServer.java
  85. +206 0 src/main/java/usi2011/http/HttpServerPipelineFactory.java
  86. +611 0 src/main/java/usi2011/http/StateMachineHttpRequestHandler.java
  87. +308 0 src/main/java/usi2011/http/decoder/FastHttpRequest.java
  88. +25 0 src/main/java/usi2011/http/decoder/FastHttpRequestDecoder.java
  89. +32 0 src/main/java/usi2011/http/decoder/FastHttpResponse.java
  90. +321 0 src/main/java/usi2011/http/decoder/FasterHttpRequest.java
  91. +528 0 src/main/java/usi2011/http/decoder/FasterHttpRequestDecoder.java
  92. +62 0 src/main/java/usi2011/http/decoder/FasterHttpResponse.java
  93. +167 0 src/main/java/usi2011/http/decoder/HttpCodecUtil.java
  94. +70 0 src/main/java/usi2011/http/encoder/FasterHttpResponseEncoder.java
  95. +131 0 src/main/java/usi2011/http/encoder/HttpResponseEncoderUtil.java
  96. +102 0 src/main/java/usi2011/http/parser/AnswerParser.java
  97. +125 0 src/main/java/usi2011/http/parser/LoginParser.java
  98. +57 0 src/main/java/usi2011/http/parser/ScoreAndAuditParser.java
  99. +65 0 src/main/java/usi2011/http/support/AsyncWriteResponseTask.java
  100. +182 0 src/main/java/usi2011/http/support/CookieService.java
  101. +110 0 src/main/java/usi2011/http/support/FastHttpRequest.java
  102. +25 0 src/main/java/usi2011/http/support/FastHttpRequestDecoder.java
  103. +93 0 src/main/java/usi2011/http/support/HttpResponseHelper.java
  104. +176 0 src/main/java/usi2011/http/support/HttpResponseService.java
  105. +63 0 src/main/java/usi2011/http/support/HttpResponseStats.java
  106. +138 0 src/main/java/usi2011/http/support/HttpResponseStatsService.java
  107. +117 0 src/main/java/usi2011/http/support/HttpResponseStatsTask.java
  108. +110 0 src/main/java/usi2011/http/support/HttpServeFile.java
  109. +29 0 src/main/java/usi2011/http/support/SelectiveAsyncRequestHandler.java
  110. +57 0 src/main/java/usi2011/http/support/TimeLoggerHandler.java
  111. +11 0 src/main/java/usi2011/repository/DoubleLoginRepository.java
  112. +44 0 src/main/java/usi2011/repository/GameStatusRepository.java
  113. +15 0 src/main/java/usi2011/repository/LoginStatusRepository.java
  114. +17 0 src/main/java/usi2011/repository/ParameterRepository.java
  115. +17 0 src/main/java/usi2011/repository/QuestionRepository.java
  116. +55 0 src/main/java/usi2011/repository/ScoreRepository.java
  117. +28 0 src/main/java/usi2011/repository/UserRepository.java
  118. +50 0 src/main/java/usi2011/repository/cassandra/CassandraDoubleLoginRepository.java
  119. +204 0 src/main/java/usi2011/repository/cassandra/CassandraGameStatusRepository.java
  120. +308 0 src/main/java/usi2011/repository/cassandra/CassandraGameStatusWithSuperColumnRepository.java
  121. +117 0 src/main/java/usi2011/repository/cassandra/CassandraLoginStatusRepository.java
  122. +120 0 src/main/java/usi2011/repository/cassandra/CassandraParameterRepository.java
  123. +117 0 src/main/java/usi2011/repository/cassandra/CassandraQuestionRepository.java
  124. +428 0 src/main/java/usi2011/repository/cassandra/CassandraRepository.java
  125. +377 0 src/main/java/usi2011/repository/cassandra/CassandraScoreRepository.java
  126. +312 0 src/main/java/usi2011/repository/cassandra/CassandraUserRepository.java
  127. +5 0 src/main/java/usi2011/repository/cassandra/CassendraRemoteStorageServiceInterface.java
  128. +53 0 src/main/java/usi2011/repository/cassandra/HectorUtil.java
  129. +83 0 src/main/java/usi2011/service/JmxService.java
  130. +69 0 src/main/java/usi2011/service/RankingService.java
  131. +79 0 src/main/java/usi2011/service/TwitterService.java
  132. +172 0 src/main/java/usi2011/statemachine/StateMachine.java
  133. +972 0 src/main/java/usi2011/statemachine/StateMachineImpl.java
  134. +214 0 src/main/java/usi2011/statemachine/support/CallbackFlusher.java
  135. +7 0 src/main/java/usi2011/statemachine/support/StateCallback.java
  136. +171 0 src/main/java/usi2011/task/BatchRankingPublisherTask.java
  137. +170 0 src/main/java/usi2011/task/BatchScoreUpdateTask.java
  138. +230 0 src/main/java/usi2011/task/GameStatusPollerTask.java
  139. +19 0 src/main/java/usi2011/task/PeriodicTask.java
  140. +23 0 src/main/java/usi2011/util/FastEmailValidator.java
  141. +73 0 src/main/java/usi2011/util/FastIntegerParser.java
  142. +72 0 src/main/java/usi2011/util/JSONBackedObject.java
  143. +117 0 src/main/java/usi2011/util/Json.java
  144. +13 0 src/main/java/usi2011/util/LogUtil.java
  145. +15 0 src/main/java/usi2011/util/NamedThreadFactory.java
  146. +5 0 src/main/java/usi2011/util/Profiles.java
  147. +29 0 src/main/java/usi2011/util/ResourceUtil.java
  148. +74 0 src/main/java/usi2011/util/Specifications.java
  149. +85 0 src/main/java/usi2011/util/SplitUtil.java
  150. +120 0 src/main/java/usi2011/util/Timeout.java
  151. +474 0 src/main/jmeter/bench-http.jmx
  152. +3 0  src/main/jmeter/insert_users
  153. +179 0 src/main/jmeter/insert_users.jmx
  154. +123 0 src/main/jmeter/insert_users_random.jmx
  155. +179 0 src/main/jmeter/known_users.jmx
  156. +2 0  src/main/jmeter/user_session
  157. +479 0 src/main/jmeter/user_session.jmx
  158. +14 0 src/main/resources/applicationContext.xml
  159. +130 0 src/main/resources/config.properties
  160. +11 0 src/main/resources/htdocs/admin.html
  161. +460 0 src/main/resources/htdocs/api-calls.html
  162. BIN  src/main/resources/htdocs/docs/usi2011-jaxio-team.key
  163. +418 0 src/main/resources/htdocs/game.html
  164. BIN  src/main/resources/htdocs/img/logo_usi.png
Sorry, we could not display the entire diff because it was too big.
70 .gitignore
... ... @@ -0,0 +1,70 @@
  1 +# Folders
  2 +target/
  3 +.DS_Store
  4 +database/
  5 +bin/
  6 +
  7 +# eclipse
  8 +*.pydevproject
  9 +.project
  10 +.metadata
  11 +bin/**
  12 +tmp/**
  13 +tmp/**/*
  14 +*.tmp
  15 +*.bak
  16 +*.swp
  17 +*~.nib
  18 +local.properties
  19 +.classpath
  20 +.settings/
  21 +.loadpath
  22 +.cproject
  23 +
  24 +## cvs
  25 +/CVS/*
  26 +*/CVS/*
  27 +.cvsignore
  28 +*/.cvsignore
  29 +
  30 +
  31 +## svn
  32 +/.svn/*
  33 +*/.svn/*
  34 +
  35 +# Compiled source #
  36 +###################
  37 +*.com
  38 +*.class
  39 +*.dll
  40 +*.exe
  41 +*.o
  42 +*.so
  43 +
  44 +# Packages #
  45 +############
  46 +# it's better to unpack these files and commit the raw source
  47 +# git has its own built in compression methods
  48 +*.7z
  49 +*.dmg
  50 +*.gz
  51 +*.iso
  52 +*.jar
  53 +*.rar
  54 +*.tar
  55 +*.zip
  56 +
  57 +# Logs and databases #
  58 +######################
  59 +*.log
  60 +*.sql
  61 +*.sqlite
  62 +
  63 +# OS generated files #
  64 +######################
  65 +.DS_Store?
  66 +ehthumbs.db
  67 +Icon?
  68 +Thumbs.db
  69 +Desktop.ini
  70 +
17 LICENSE.txt
... ... @@ -0,0 +1,17 @@
  1 +JAXIO & FRIENDS TEAM Solution
  2 +
  3 + Le code sera certainement Open Sourcé en fin de compétition
  4 + sous une licence restant à définir.
  5 +
  6 + Pour le moment le code source est strictement confidentiel.
  7 + Tous droits réservés Jaxio SARL & Friends
  8 +
  9 + Aucune utilisation, reproduction, diffusion, même partielle
  10 + permise sans accord préalable de Jaxio SARL & Friends
  11 +
  12 + Julien Dubois
  13 + Bernard Pons
  14 + Florent Ramière
  15 + Nicolas Romanetti
  16 +
  17 + Contact: usi2011team@jaxio.com
6 README
... ... @@ -0,0 +1,6 @@
  1 +Challenge USI 2011 - Equipe 10 - https://sites.google.com/a/octo.com/challengeusi2011/
  2 +
  3 +Julien Dubois
  4 +Bernard Pons
  5 +Florent Rami�re
  6 +Nicolas Romanetti
22 README.txt
... ... @@ -0,0 +1,22 @@
  1 +Specifiez le home de Jmeter
  2 +
  3 +export JMETER_HOME=~/Dev/jakarta-jmeter-2.4
  4 +./clean-start
  5 +
  6 +enjoy !
  7 +
  8 +
  9 +
  10 +usi1:
  11 +/root/.tsung/jaxio/
  12 +
  13 +sous game_laucnh
  14 +
  15 +root@usi1:~/.tsung/jaxio/usi2011/game_launch# tsung -f tsung_game_launch_20k.xml start
  16 +
  17 +/root/.tsung/log/20110418-21:31
  18 +23:33
  19 +root@usi1:~/.tsung/jaxio/usi2011/game_launch# cd ../game_play
  20 +root@usi1:~/.tsung/jaxio/usi2011/game_play#
  21 +
  22 +root@usi1:~/.tsung/jaxio/usi2011/game_play# tsung -f tsung_game_play_5k.xml.N1 start
5 clean-start
... ... @@ -0,0 +1,5 @@
  1 +#!/bin/bash
  2 +./src/main/cassandra/recreate
  3 +./restart-web-servers
  4 +./src/main/wget/game-flush-users
  5 +./src/main/jmeter/insert_users
2  game
... ... @@ -0,0 +1,2 @@
  1 +#!/bin/bash
  2 +./src/main/wget/game
3  game-flush-users
... ... @@ -0,0 +1,3 @@
  1 +#!/bin/bash
  2 +./src/main/wget/game-flush-users
  3 +./src/main/jmeter/insert_users
6 infinitest.filters
... ... @@ -0,0 +1,6 @@
  1 +.*http.HttpRequestHandlerTest
  2 +.*service.CassandraTest
  3 +.*service.FinalScoreServiceTest
  4 +
  5 +
  6 +# Blank lines need to be filtered out, so do comments like this
3  kill-web-servers
... ... @@ -0,0 +1,3 @@
  1 +echo Killing previous servers
  2 +jps | grep Launcher | cut -d ' ' -f1 | xargs kill -9
  3 +sleep 1
29 mvnPerf
... ... @@ -0,0 +1,29 @@
  1 +#!/bin/bash
  2 +profiler=${1:-off}
  3 +
  4 +JVM_OPTS="-Xmx1024m"
  5 +JVM_OPTS="$JVM_OPTS -Xms1024m"
  6 +JVM_OPTS="$JVM_OPTS -Xss128k"
  7 +JVM_OPTS="$JVM_OPTS -XX:ParallelGCThreads=20"
  8 +JVM_OPTS="$JVM_OPTS -XX:+UseParNewGC"
  9 +JVM_OPTS="$JVM_OPTS -XX:+UseConcMarkSweepGC"
  10 +JVM_OPTS="$JVM_OPTS -XX:SurvivorRatio=8"
  11 +JVM_OPTS="$JVM_OPTS -XX:TargetSurvivorRatio=90"
  12 +JVM_OPTS="$JVM_OPTS -XX:MaxTenuringThreshold=31"
  13 +JVM_OPTS="$JVM_OPTS -XX:+CMSParallelRemarkEnabled"
  14 +JVM_OPTS="$JVM_OPTS -XX:+UseCompressedOops"
  15 +JVM_OPTS="$JVM_OPTS -Djava.awt.headless=true"
  16 +JVM_OPTS="$JVM_OPTS -Djava.net.preferIPv4Stack=true"
  17 +
  18 +export MAVEN_OPTS="$JVM_OPTS"
  19 +
  20 +if [ "$profiler" = "on" ]; then
  21 + export MAVEN_OPTS="$JVM_OPTS -agentpath:/Applications/jprofiler6/bin/macos/libjprofilerti.jnilib=port=8849,nowait"
  22 + echo MAVEN_OPTS = $MAVEN_OPTS
  23 + echo executing mvn $2 $3 $4 $5
  24 + mvn $2 $3 $4
  25 +else
  26 + echo MAVEN_OPTS = $MAVEN_OPTS
  27 + echo executing mvn $1 $2 $3 $4 $5
  28 + mvn $1 $2 $3 $4
  29 +fi
256 pom.xml
... ... @@ -0,0 +1,256 @@
  1 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3 + <modelVersion>4.0.0</modelVersion>
  4 + <groupId>fr.usi2011.cassandra</groupId>
  5 + <artifactId>usi2011-jaxio</artifactId>
  6 + <version>0.0.1-SNAPSHOT</version>
  7 + <packaging>jar</packaging>
  8 + <name>usi2011-jaxio</name>
  9 + <properties>
  10 + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  11 + <spring.version>3.1.0.M1</spring.version>
  12 + </properties>
  13 + <dependencies>
  14 + <dependency>
  15 + <groupId>commons-io</groupId>
  16 + <artifactId>commons-io</artifactId>
  17 + <version>2.0.1</version>
  18 + </dependency>
  19 + <!-- email validation -->
  20 + <dependency>
  21 + <groupId>commons-validator</groupId>
  22 + <artifactId>commons-validator</artifactId>
  23 + <version>1.3.1</version>
  24 + </dependency>
  25 + <dependency>
  26 + <groupId>oro</groupId>
  27 + <artifactId>oro</artifactId>
  28 + <version>2.0.8</version>
  29 + </dependency>
  30 + <!-- xml and json -->
  31 + <dependency>
  32 + <groupId>xom</groupId>
  33 + <artifactId>xom</artifactId>
  34 + <version>1.2.5</version>
  35 + </dependency>
  36 + <dependency>
  37 + <groupId>org.json</groupId>
  38 + <artifactId>json</artifactId>
  39 + <version>20090211</version>
  40 + </dependency>
  41 + <!-- netty -->
  42 + <dependency>
  43 + <groupId>org.jboss.netty</groupId>
  44 + <artifactId>netty</artifactId>
  45 + <version>3.2.4.Final</version>
  46 + </dependency>
  47 + <!-- logging -->
  48 + <dependency>
  49 + <groupId>org.slf4j</groupId>
  50 + <artifactId>slf4j-api</artifactId>
  51 + <version>1.6.1</version>
  52 + </dependency>
  53 + <!-- <dependency> -->
  54 + <!-- <groupId>org.slf4j</groupId> -->
  55 + <!-- <artifactId>slf4j-nop</artifactId> -->
  56 + <!-- <version>1.6.1</version> -->
  57 + <!-- </dependency> -->
  58 + <dependency>
  59 + <groupId>org.slf4j</groupId>
  60 + <artifactId>slf4j-log4j12</artifactId>
  61 + <version>1.6.1</version>
  62 + </dependency>
  63 + <dependency>
  64 + <groupId>log4j</groupId>
  65 + <artifactId>log4j</artifactId>
  66 + <version>1.2.16</version>
  67 + </dependency>
  68 + <!-- cassandra -->
  69 + <dependency>
  70 + <groupId>org.apache.cassandra</groupId>
  71 + <artifactId>cassandra-all</artifactId>
  72 + <version>0.7.4</version>
  73 + </dependency>
  74 + <dependency>
  75 + <groupId>org.apache.cassandra</groupId>
  76 + <artifactId>cassandra-javautils</artifactId>
  77 + <version>0.7.1</version>
  78 + </dependency>
  79 + <dependency>
  80 + <groupId>me.prettyprint</groupId>
  81 + <artifactId>hector-core</artifactId>
  82 + <version>0.7.0-28</version>
  83 +<!-- <version>0.8.0-1-SNAPSHOT</version> -->
  84 + </dependency>
  85 + <dependency>
  86 + <groupId>mx4j</groupId>
  87 + <artifactId>mx4j-tools</artifactId>
  88 + <version>3.0.1</version>
  89 + </dependency>
  90 + <!-- spring -->
  91 + <dependency>
  92 + <groupId>org.springframework</groupId>
  93 + <artifactId>spring-context</artifactId>
  94 + <version>${spring.version}</version>
  95 + </dependency>
  96 + <dependency>
  97 + <groupId>cglib</groupId>
  98 + <artifactId>cglib-nodep</artifactId>
  99 + <version>2.1_3</version>
  100 + </dependency>
  101 + <!-- twitter -->
  102 + <dependency>
  103 + <groupId>org.twitter4j</groupId>
  104 + <artifactId>twitter4j-core</artifactId>
  105 + <version>2.2.0</version>
  106 + </dependency>
  107 + <!-- security -->
  108 + <dependency>
  109 + <groupId>commons-codec</groupId>
  110 + <artifactId>commons-codec</artifactId>
  111 + <version>1.4</version>
  112 + </dependency>
  113 + <!-- test -->
  114 + <dependency>
  115 + <groupId>junit</groupId>
  116 + <artifactId>junit</artifactId>
  117 + <version>4.8.2</version>
  118 + <scope>test</scope>
  119 + </dependency>
  120 + <dependency>
  121 + <groupId>org.mockito</groupId>
  122 + <artifactId>mockito-all</artifactId>
  123 + <version>1.8.5</version>
  124 + </dependency>
  125 + <dependency>
  126 + <groupId>com.jayway.awaitility</groupId>
  127 + <artifactId>awaitility</artifactId>
  128 + <version>1.3.1</version>
  129 + <scope>test</scope>
  130 + </dependency>
  131 + <dependency>
  132 + <groupId>org.easytesting</groupId>
  133 + <artifactId>fest-assert</artifactId>
  134 + <version>1.3</version>
  135 + <scope>test</scope>
  136 + </dependency>
  137 + <dependency>
  138 + <groupId>com.jayway.restassured</groupId>
  139 + <artifactId>rest-assured</artifactId>
  140 + <version>1.1.2</version>
  141 + <exclusions>
  142 + <exclusion>
  143 + <groupId>org.codehaus.groovy</groupId>
  144 + <artifactId>groovy</artifactId>
  145 + </exclusion>
  146 + </exclusions>
  147 + <scope>test</scope>
  148 + </dependency>
  149 + <dependency>
  150 + <groupId>org.codehaus.groovy</groupId>
  151 + <artifactId>groovy</artifactId>
  152 + <version>1.7.6</version>
  153 + <scope>test</scope>
  154 + </dependency>
  155 + <dependency>
  156 + <groupId>org.springframework</groupId>
  157 + <artifactId>spring-test</artifactId>
  158 + <version>${spring.version}</version>
  159 + <scope>test</scope>
  160 + </dependency>
  161 + </dependencies>
  162 + <repositories>
  163 + <repository>
  164 + <id>repository.jboss.org</id>
  165 + <url>http://repository.jboss.org/nexus/content/groups/public/</url>
  166 + <snapshots>
  167 + <enabled>false</enabled>
  168 + </snapshots>
  169 + </repository>
  170 + <repository>
  171 + <id>springsource-milestone</id>
  172 + <url>http://maven.springframework.org/milestone</url>
  173 + <snapshots>
  174 + <enabled>false</enabled>
  175 + </snapshots>
  176 + </repository>
  177 + <repository>
  178 + <id>twitter4j.org</id>
  179 + <url>http://twitter4j.org/maven2</url>
  180 + <snapshots>
  181 + <enabled>false</enabled>
  182 + </snapshots>
  183 + </repository>
  184 + <repository>
  185 + <id>Atlassian</id>
  186 + <url>https://maven.atlassian.com/content/groups/public/</url>
  187 + <snapshots>
  188 + <enabled>false</enabled>
  189 + </snapshots>
  190 + </repository>
  191 + </repositories>
  192 + <build>
  193 + <defaultGoal>compile</defaultGoal>
  194 + <plugins>
  195 + <plugin>
  196 + <groupId>org.apache.maven.plugins</groupId>
  197 + <artifactId>maven-compiler-plugin</artifactId>
  198 + <version>2.3.2</version>
  199 + <configuration>
  200 + <source>1.6</source>
  201 + <target>1.6</target>
  202 + </configuration>
  203 + </plugin>
  204 + <plugin>
  205 + <artifactId>maven-jar-plugin</artifactId>
  206 + <version>2.3</version>
  207 + <configuration>
  208 + <archive>
  209 + <manifest>
  210 + <addClasspath>true</addClasspath>
  211 + <classpathPrefix>/opt/usi2011_jaxio/repository</classpathPrefix>
  212 + <classpathLayoutType>repository</classpathLayoutType>
  213 + <mainClass>usi2011.Main</mainClass>
  214 + </manifest>
  215 + </archive>
  216 + </configuration>
  217 + </plugin>
  218 + </plugins>
  219 + </build>
  220 + <profiles>
  221 + <profile>
  222 + <id>server</id>
  223 + <build>
  224 + <defaultGoal>compile</defaultGoal>
  225 + <plugins>
  226 + <plugin>
  227 + <groupId>org.apache.maven.plugins</groupId>
  228 + <artifactId>maven-compiler-plugin</artifactId>
  229 + <version>2.3.2</version>
  230 + <configuration>
  231 + <source>1.6</source>
  232 + <target>1.6</target>
  233 + </configuration>
  234 + </plugin>
  235 + <plugin>
  236 + <groupId>org.codehaus.mojo</groupId>
  237 + <artifactId>exec-maven-plugin</artifactId>
  238 + <version>1.1</version>
  239 + <executions>
  240 + <execution>
  241 + <phase>compile</phase>
  242 + <goals>
  243 + <goal>java</goal>
  244 + </goals>
  245 + </execution>
  246 + </executions>
  247 + <configuration>
  248 + <mainClass>usi2011.Main</mainClass>
  249 + <commandlineArgs><![CDATA[-Xmx512m]]></commandlineArgs>
  250 + </configuration>
  251 + </plugin>
  252 + </plugins>
  253 + </build>
  254 + </profile>
  255 + </profiles>
  256 +</project>
2  restart-web-servers
... ... @@ -0,0 +1,2 @@
  1 +`dirname $0`/kill-web-servers
  2 +`dirname $0`/start-web-servers
1  src/main/cassandra/connect
... ... @@ -0,0 +1 @@
  1 +cassandra-cli -host localhost -port 9160 --keyspace USI_KEYSPACE
13 src/main/cassandra/drop
... ... @@ -0,0 +1,13 @@
  1 +echo Killing cassandra
  2 +succeed=1
  3 +until [ $succeed -eq 0 ]
  4 +do
  5 + jps | grep CassandraDaemon | cut -f 1 -d ' ' | xargs kill -9
  6 + succeed=`jps | grep CassandraDaemon| wc -l`
  7 +done
  8 +echo Cassandra is down
  9 +
  10 +echo Removing cassandra storage
  11 +rm -rf /opt/usi2011_jaxio/data/*
  12 +rm -rf /var/lib/cassandra/*
  13 +rm -rf /usr/local/var/lib/cassandra/*
2  src/main/cassandra/init
... ... @@ -0,0 +1,2 @@
  1 +echo Initializing column families
  2 +cassandra-cli -host localhost -port 9160 --batch --file `dirname $0`/init.script
14 src/main/cassandra/init-with-replication-factor-3.script
... ... @@ -0,0 +1,14 @@
  1 +create keyspace USI_KEYSPACE with replication_factor = 2;
  2 +create keyspace USI_RANKING with replication_factor = 2;
  3 +use USI_KEYSPACE;
  4 +create column family Parameters;
  5 +create column family Users with read_repair_chance = 0;
  6 +create column family UsersData with read_repair_chance = 0;
  7 +create column family LoginStatus;
  8 +create column family DoubleLogin;
  9 +create column family GameStatusSuperCol with column_type = 'Super';
  10 +create column family Questions;
  11 +create column family AnswersByMail;
  12 +create column family RankingStatus with column_type = 'Super' and comment = 'Pour la gestion du tweet final';
  13 +use USI_RANKING;
  14 +create column family FinalScores with read_repair_chance = 0 and comment = 'pour les données du ranking final' and rows_cached = 1;
14 src/main/cassandra/init.script
... ... @@ -0,0 +1,14 @@
  1 +create keyspace USI_KEYSPACE;
  2 +create keyspace USI_RANKING;
  3 +use USI_KEYSPACE;
  4 +create column family Parameters;
  5 +create column family Users with read_repair_chance = 0;
  6 +create column family UsersData with read_repair_chance = 0;
  7 +create column family LoginStatus;
  8 +create column family DoubleLogin;
  9 +create column family GameStatusSuperCol with column_type = 'Super';
  10 +create column family Questions;
  11 +create column family AnswersByMail;
  12 +create column family RankingStatus with column_type = 'Super' and comment = 'Pour la gestion du tweet final';
  13 +use USI_RANKING;
  14 +create column family FinalScores with read_repair_chance = 0 and comment = 'pour les données du ranking final' and rows_cached = 1;
5 src/main/cassandra/recreate
... ... @@ -0,0 +1,5 @@
  1 +echo Clean cassandra install
  2 +basedir=`dirname $0`
  3 +$basedir/drop
  4 +$basedir/start
  5 +$basedir/init
11 src/main/cassandra/start
... ... @@ -0,0 +1,11 @@
  1 +echo Starting cassandra
  2 +mkdir -p `dirname $0`/target
  3 +cassandra > `dirname $0`/target/cassandra.log &
  4 +echo Waiting cassandra to be up and listening
  5 +succeed=0
  6 +until [ $succeed -eq 1 ]
  7 +do
  8 + succeed=`nc -z localhost 9160 | grep -i succeed | wc -l`
  9 + sleep 1
  10 +done
  11 +echo Cassandra is ready
308 src/main/custom_tsung/create_user/tsung-1.0.dtd
... ... @@ -0,0 +1,308 @@
  1 +<?xml version="1.0" encoding="utf-8" ?>
  2 +<!ELEMENT tsung (information?, clients, servers, monitoring?, load, options?, sessions)>
  3 +
  4 +<!ELEMENT information (name|description|username|organisation)*>
  5 +
  6 +
  7 +<!ELEMENT name (#PCDATA)>
  8 +<!ELEMENT description (#PCDATA)>
  9 +<!ELEMENT username (#PCDATA)>
  10 +<!ELEMENT organisation (#PCDATA)>
  11 +
  12 +<!ATTLIST tsung
  13 + dumptraffic (true | false | light) "false"
  14 + backend (text | rrdtool | fullstats) "text"
  15 + loglevel (emergency|critical|error|warning|notice|info|debug) "notice"
  16 + version NMTOKEN #IMPLIED>
  17 +
  18 +<!ELEMENT servers (server+)>
  19 +<!ELEMENT server EMPTY>
  20 +<!ATTLIST server
  21 + host NMTOKEN #REQUIRED
  22 + port NMTOKEN #REQUIRED
  23 + type (ssl | tcp | udp | erlang) #REQUIRED>
  24 +
  25 +<!ELEMENT clients (client+)>
  26 +<!ELEMENT client (ip*) >
  27 +<!ATTLIST client
  28 + cpu NMTOKEN "1"
  29 + type (machine | batch) "machine"
  30 + host NMTOKEN #IMPLIED
  31 + batch (torque | pbs | lsf | oar) #IMPLIED
  32 + maxusers NMTOKEN "800"
  33 + use_controller_vm (true | false) "false"
  34 + weight NMTOKEN "1">
  35 +
  36 +<!ELEMENT ip EMPTY>
  37 +<!ATTLIST ip value NMTOKEN #REQUIRED>
  38 +
  39 +<!ELEMENT monitoring ( monitor+ )>
  40 +<!ELEMENT monitor ( snmp? | munin?)>
  41 +<!ATTLIST monitor
  42 + host NMTOKEN #REQUIRED
  43 + batch (true | false) "false"
  44 + type (snmp | erlang | munin) "erlang">
  45 +
  46 +<!ELEMENT snmp EMPTY>
  47 +<!ATTLIST snmp
  48 + version (v1 | v2) "v1"
  49 + community NMTOKEN "public"
  50 + port NMTOKEN "161">
  51 +
  52 +<!ELEMENT munin EMPTY>
  53 +<!ATTLIST munin
  54 + port NMTOKEN "4949">
  55 +
  56 +<!ELEMENT load (arrivalphase | user)+>
  57 +<!ATTLIST load
  58 + duration NMTOKEN #IMPLIED
  59 + unit (hour | minute | second) "second"
  60 + loop NMTOKEN "0"
  61 + >
  62 +
  63 +<!ELEMENT arrivalphase (users)>
  64 +<!ATTLIST arrivalphase
  65 + duration NMTOKEN #REQUIRED
  66 + phase NMTOKEN #REQUIRED
  67 + unit (hour | minute | second | millisecond) #REQUIRED>
  68 +
  69 +<!ELEMENT users EMPTY>
  70 +<!ATTLIST users
  71 + interarrival NMTOKEN #IMPLIED
  72 + arrivalrate NMTOKEN #IMPLIED
  73 + unit (hour | minute | second) #REQUIRED
  74 + maxnumber NMTOKEN #IMPLIED>
  75 +
  76 +<!ELEMENT user EMPTY>
  77 +<!ATTLIST user
  78 + start_time NMTOKEN #IMPLIED
  79 + unit (hour | minute | second | millisecond) "second"
  80 + session NMTOKEN #REQUIRED>
  81 +
  82 +<!ELEMENT options (option*)>
  83 +<!ELEMENT option (user_agent*)>
  84 +<!ATTLIST option
  85 + name NMTOKEN #REQUIRED
  86 + override (true | false) #IMPLIED
  87 + random (true | false) #IMPLIED
  88 + id NMTOKEN #IMPLIED
  89 + min NMTOKEN #IMPLIED
  90 + max NMTOKEN #IMPLIED
  91 + type (ts_http | ts_jabber | ts_pgsql) #IMPLIED
  92 + value CDATA #IMPLIED>
  93 +
  94 +<!ELEMENT sessions (session+)>
  95 +<!ELEMENT session ( request | thinktime | transaction | setdynvars | for |
  96 +repeat | if | change_type )*>
  97 +<!ATTLIST session
  98 + name CDATA #REQUIRED
  99 + bidi CDATA #IMPLIED
  100 + persistent (true | false) #IMPLIED
  101 + probability NMTOKEN #REQUIRED
  102 + type (ts_jabber | ts_http | ts_raw | ts_pgsql | ts_ldap | ts_webdav |ts_mysql| ts_fs ) #REQUIRED>
  103 +
  104 +<!ELEMENT change_type EMPTY>
  105 +<!ATTLIST change_type
  106 + new_type (ts_jabber | ts_http | ts_raw | ts_pgsql | ts_ldap | ts_webdav |ts_mysql| ts_fs ) #REQUIRED
  107 + host NMTOKEN #REQUIRED
  108 + port NMTOKEN #REQUIRED
  109 + server_type NMTOKEN #REQUIRED
  110 + store ( true | false ) "false"
  111 + restore ( true | false ) "false"
  112 + >
  113 +
  114 +<!ELEMENT request ( match*, dyn_variable*, ( http | jabber | raw | pgsql | ldap | mysql |fs ) )>
  115 +<!ATTLIST request
  116 + subst (true|false) "false"
  117 + >
  118 +
  119 +<!ELEMENT match (#PCDATA)>
  120 +<!ATTLIST match
  121 + do (continue|loop|abort|restart|log) "continue"
  122 + when (match|nomatch) "match"
  123 + subst (true|false) "false"
  124 + loop_back NMTOKEN "0"
  125 + max_loop NMTOKEN "20"
  126 + max_restart NMTOKEN "3"
  127 + sleep_loop NMTOKEN "5"
  128 + apply_to_content NMTOKEN "undefined"
  129 + skip_headers NMTOKEN "no"
  130 + >
  131 +
  132 +<!ELEMENT thinktime EMPTY>
  133 +<!ATTLIST thinktime
  134 + random (true|false) "false"
  135 + value NMTOKEN #IMPLIED
  136 + min NMTOKEN #IMPLIED
  137 + max NMTOKEN #IMPLIED
  138 + >
  139 +
  140 +<!ELEMENT user_agent (#PCDATA)*>
  141 +<!ATTLIST user_agent
  142 + probability NMTOKEN #REQUIRED
  143 + >
  144 +
  145 +<!ELEMENT transaction (request | setdynvars | thinktime | for | repeat)+>
  146 +<!ATTLIST transaction name NMTOKEN #REQUIRED>
  147 +
  148 +<!ELEMENT http ( www_authenticate?, soap?, http_header*, add_cookie*)>
  149 +<!ATTLIST http
  150 + contents CDATA #IMPLIED
  151 + contents_from_file CDATA #IMPLIED
  152 + content_type CDATA #IMPLIED
  153 + if_modified_since CDATA #IMPLIED
  154 + method (GET | POST | PUT | DELETE | HEAD | PROPFIND | PROPPATCH | COPY | MOVE | LOCK | UNLOCK | MKCOL | MKACTIVITY | OPTIONS | REPORT | VERSION-CONTROL | MERGE | CHECKOUT) "GET"
  155 + url CDATA #REQUIRED
  156 + version (1.0 | 1.1) "1.1" >
  157 +
  158 +<!ELEMENT soap EMPTY >
  159 +<!ATTLIST soap action CDATA #REQUIRED >
  160 +
  161 +<!ELEMENT dyn_variable EMPTY >
  162 +<!ATTLIST dyn_variable
  163 + name CDATA #REQUIRED
  164 + xpath CDATA #IMPLIED
  165 + jsonpath CDATA #IMPLIED
  166 + pgsql_expr CDATA #IMPLIED
  167 + regexp CDATA #IMPLIED >
  168 +
  169 +<!ELEMENT http_header EMPTY >
  170 +<!ATTLIST http_header
  171 + name CDATA #REQUIRED
  172 + encoding CDATA #IMPLIED
  173 + value CDATA #IMPLIED >
  174 +
  175 +<!ELEMENT add_cookie EMPTY >
  176 +<!ATTLIST add_cookie
  177 + key CDATA #REQUIRED
  178 + domain CDATA #IMPLIED
  179 + path CDATA #IMPLIED
  180 + value CDATA #REQUIRED >
  181 +
  182 +<!ELEMENT www_authenticate EMPTY >
  183 +<!ATTLIST www_authenticate
  184 + passwd CDATA #REQUIRED
  185 + userid CDATA #REQUIRED >
  186 +
  187 +<!ELEMENT jabber EMPTY >
  188 +<!ATTLIST jabber
  189 + ack (global | local | no_ack) #REQUIRED
  190 + destination (online | offline | random | unique | previous) "random"
  191 + id NMTOKEN #IMPLIED
  192 + size NMTOKEN "0"
  193 + data CDATA #IMPLIED
  194 + type NMTOKEN #REQUIRED
  195 + show (away|chat|dnd|xa) "chat"
  196 + status CDATA "Available"
  197 + nick CDATA #IMPLIED
  198 + room CDATA #IMPLIED
  199 + group CDATA #IMPLIED
  200 + node CDATA #IMPLIED
  201 + node_type CDATA #IMPLIED >
  202 +
  203 +<!ELEMENT fs (#PCDATA) >
  204 +<!ATTLIST fs
  205 + cmd (read|write|open|delete|stats|copy|read_chunk|write_chunk|close) "write"
  206 + path CDATA #IMPLIED
  207 + size CDATA "1024"
  208 + position CDATA #IMPLIED
  209 + mode (read | write | append ) #IMPLIED
  210 + dest CDATA #IMPLIED
  211 +>
  212 +
  213 +<!ELEMENT pgsql (#PCDATA) >
  214 +<!ATTLIST pgsql
  215 + password CDATA #IMPLIED
  216 + database CDATA #IMPLIED
  217 + username CDATA #IMPLIED
  218 + type (connect | authenticate | sql | close) #REQUIRED >
  219 +
  220 +<!ELEMENT mysql (#PCDATA) >
  221 +<!ATTLIST mysql
  222 + password CDATA #IMPLIED
  223 + database CDATA #IMPLIED
  224 + username CDATA #IMPLIED
  225 + type (connect | authenticate | sql | close) #REQUIRED >
  226 +
  227 +<!ELEMENT raw EMPTY >
  228 +<!ATTLIST raw
  229 + ack (global | local | no_ack) #REQUIRED
  230 + datasize CDATA #IMPLIED
  231 + data CDATA #IMPLIED>
  232 +
  233 +<!ELEMENT ldap (attr* | modification*) >
  234 +<!ATTLIST ldap
  235 + password CDATA #IMPLIED
  236 + user CDATA #IMPLIED
  237 + type (bind | unbind | search | start_tls | add | modify ) #REQUIRED
  238 + result_var CDATA #IMPLIED
  239 + filter CDATA #IMPLIED
  240 + base CDATA #IMPLIED
  241 + scope (singleLevel | baseObject | wholeSubtree) #IMPLIED
  242 + cacertfile CDATA #IMPLIED
  243 + keyfile CDATA #IMPLIED
  244 + certfile CDATA #IMPLIED
  245 + dn CDATA #IMPLIED
  246 + >
  247 +
  248 +<!ELEMENT modification (attr*) >
  249 +<!ATTLIST modification
  250 + type CDATA #REQUIRED>
  251 +
  252 +
  253 +<!ELEMENT attr (value+) >
  254 +<!ATTLIST attr
  255 + type CDATA #REQUIRED>
  256 +
  257 +<!ELEMENT value (#PCDATA) >
  258 +
  259 +
  260 +<!ELEMENT setdynvars (var*) >
  261 +<!ATTLIST setdynvars
  262 + sourcetype (random_string | urandom_string | random_number | file | erlang | eval) #REQUIRED
  263 + callback CDATA #IMPLIED
  264 + code CDATA #IMPLIED
  265 + fileid CDATA #IMPLIED
  266 + order (iter | random ) #IMPLIED
  267 + delimiter CDATA #IMPLIED
  268 + length CDATA #IMPLIED
  269 + start CDATA #IMPLIED
  270 + end CDATA #IMPLIED
  271 + >
  272 +<!ELEMENT var (#PCDATA) >
  273 +<!ATTLIST var
  274 + name CDATA #REQUIRED>
  275 +
  276 +<!ELEMENT for (request | thinktime | transaction | setdynvars | for |
  277 + if | repeat | change_type )+>
  278 +<!ATTLIST for
  279 + var CDATA #REQUIRED
  280 + from NMTOKEN #REQUIRED
  281 + to NMTOKEN #REQUIRED
  282 + incr NMTOKEN "1">
  283 +
  284 +<!ELEMENT repeat (request | thinktime | transaction | setdynvars | for | repeat
  285 +| while | if | until | change_type)+>
  286 +<!ATTLIST repeat
  287 + name NMTOKEN #REQUIRED
  288 + max_repeat NMTOKEN "20">
  289 +
  290 +<!ELEMENT if (request | thinktime | transaction | setdynvars | for | repeat
  291 +| while | if | until | change_type)+>
  292 +<!ATTLIST if
  293 + var CDATA #REQUIRED
  294 + eq CDATA #IMPLIED
  295 + neq CDATA #IMPLIED >
  296 +
  297 +<!ELEMENT while EMPTY>
  298 +<!ATTLIST while
  299 + var CDATA #REQUIRED
  300 + eq CDATA #IMPLIED
  301 + neq CDATA #IMPLIED >
  302 +
  303 +<!ELEMENT until EMPTY>
  304 +<!ATTLIST until
  305 + var CDATA #REQUIRED
  306 + eq CDATA #IMPLIED
  307 + neq CDATA #IMPLIED >
  308 +
86 src/main/custom_tsung/create_user/tsung_create_users.xml
... ... @@ -0,0 +1,86 @@
  1 +<?xml version="1.0" encoding="UTF-8" ?>
  2 +<!DOCTYPE tsung SYSTEM "??/tsung-1.3.3/tsung-1.0.dtd">
  3 +
  4 +
  5 +<!-- dumptraffic : true, light or false -->
  6 +<!-- log levels : emergency, critical, error, warning,notice, info, debug -->
  7 +<tsung loglevel="warning" version="1.0" dumptraffic="light">
  8 +
  9 + <!-- Client side setup -->
  10 + <clients>
  11 + <client host="localhost" use_controller_vm="true"/>
  12 + </clients>
  13 +
  14 + <!-- TODO: distribute the injection load onto several tsung injectors -->
  15 +<!-- <clients>
  16 + <client host="injector" weight="1" maxusers="800">
  17 + <ip value="10.9.195.12"></ip>
  18 + <ip value="10.9.195.13"></ip>
  19 + </client>
  20 + <client host="memphis" weight="3" maxusers="600" cpu="2"/>
  21 + </clients>
  22 + -->
  23 +
  24 + <!-- Server side setup -->
  25 + <servers>
  26 + <server host="localhost" port="9090" type="tcp"/>
  27 + </servers>
  28 +
  29 + <!-- TODO: review how that f*****g monitoring works -->
  30 + <!-- to start os monitoring (cpu, network, memory). Use an erlang
  31 + agent on the remote machine or SNMP. erlang is the default -->
  32 + <!-- <monitoring> -->
  33 + <!-- <monitor host="192.168.1.1" type="erlang"/> -->
  34 + <!-- <monitor host="192.168.1.201" type="erlang"/> -->
  35 + <!-- </monitoring> -->
  36 +
  37 + <load>
  38 + <!-- several arrival phases can be set: for each phase, you can set
  39 + the mean inter-arrival time between new clients and the phase
  40 + duration -->
  41 + <arrivalphase phase="1" duration="4" unit="second">
  42 + <users arrivalrate="5" unit="second"/>
  43 + </arrivalphase>
  44 +
  45 + <!-- a single Game session injection -->
  46 + <!-- <user session="user_creation" start_time="1" unit="second"/> -->
  47 +
  48 +<!-- <arrivalphase phase="2" duration="2" unit="minute">
  49 + <users interarrival="1" unit="second"/>
  50 + </arrivalphase>
  51 + -->
  52 + </load>
  53 +
  54 +
  55 +
  56 + <options>
  57 + <option type="ts_http" name="user_agent" />
  58 + <option name="file_server" id="users" value="users_10.csv"/>
  59 + </options>
  60 +
  61 + <!-- start a session for a http user. the probability is the
  62 + frequency of this type os session. The sum of all session's
  63 + probabilities must be 100 -->
  64 +
  65 + <sessions>
  66 +
  67 + <session name="user_creation" probability="100" type="ts_http">
  68 + <setdynvars sourcetype="file" fileid="users" delimiter="," order="iter">
  69 + <var name="firstname" />
  70 + <var name="lastname" />
  71 + <var name="mail" />
  72 + <var name="password" />
  73 + </setdynvars>
  74 +
  75 + <transaction name="user_creation_tx">
  76 + <request subst="true">
  77 + <match do="log" when="match">HTTP/1.1 201 Created</match>
  78 + <match do="abort" when="nomatch">HTTP/1.1 201 Created</match>
  79 + <http url="/api/user" method="POST" version="1.1" contents='{&quot;firstname&quot;:&quot;%%_firstname%%&quot;,&quot;lastname&quot;:&quot;%%_lastname%%&quot;,&quot;mail&quot;:&quot;%%_mail%%&quot;,&quot;password&quot;:&quot;%%_password%%&quot;}' >
  80 + <http_header name="Content-type" value="application/json"/>
  81 + </http>
  82 + </request>
  83 + </transaction>
  84 + </session>
  85 + </sessions>
  86 +</tsung>
10 src/main/custom_tsung/create_user/users_10.csv
... ... @@ -0,0 +1,10 @@
  1 +smith,smith,smith.smith@hotmail.com,fd3eee34o1rufty5
  2 +smith,johnson,smith.johnson@yahoo.com,034eo1ruee3454i9
  3 +smith,williams,smith.williams@gmail.com,ee34034efd3eee34
  4 +smith,jones,smith.jones@hotmail.com,034eaaz2fd3eo1ru
  5 +smith,brown,smith.brown@gmail.com,034eee34034e034e
  6 +smith,davis,smith.davis@gmail.com,fd3efty5aaz254i9
  7 +smith,miller,smith.miller@gmail.com,034eee34034efd3e
  8 +smith,wilson,smith.wilson@yahoo.com,54i954i9o1ruo1ru
  9 +smith,moore,smith.moore@gmail.com,ee34o1ruaaz2aaz2
  10 +smith,taylor,smith.taylor@hotmail.com,o1ruaaz2fd3eee34
1  src/main/custom_tsung/game_launch/authentication_key
... ... @@ -0,0 +1 @@
  1 +jaxio
1  src/main/custom_tsung/game_launch/game
... ... @@ -0,0 +1 @@
  1 +&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;usi:gamesession xmlns:usi=&quot;http://www.usi.com&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://www.usi.com gamesession.xsd &quot;&gt; &lt;usi:questions&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 1.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 2.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 3.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 4.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 5.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 6.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 7.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 8.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 9.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 10.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 11.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 12.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 13.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 14.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 15.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 16.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 17.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 18.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 19.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 20.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;/usi:questions&gt; &lt;usi:parameters&gt; &lt;usi:logintimeout&gt;20&lt;/usi:logintimeout&gt; &lt;usi:synchrotime&gt;3&lt;/usi:synchrotime&gt; &lt;usi:nbusersthreshold&gt;1000000&lt;/usi:nbusersthreshold&gt; &lt;usi:questiontimeframe&gt;5&lt;/usi:questiontimeframe&gt; &lt;usi:nbquestions&gt;20&lt;/usi:nbquestions&gt; &lt;usi:flushusertable&gt;false&lt;/usi:flushusertable&gt; &lt;usi:trackeduseridmail&gt;usi:trackeduseridmail&lt;/usi:trackeduseridmail&gt; &lt;/usi:parameters&gt;&lt;/usi:gamesession&gt;
1  src/main/custom_tsung/game_launch/game_10
... ... @@ -0,0 +1 @@
  1 +&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;usi:gamesession xmlns:usi=&quot;http://www.usi.com&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://www.usi.com gamesession.xsd &quot;&gt; &lt;usi:questions&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 1.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 2.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 3.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 4.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 5.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 6.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 7.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 8.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 9.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 10.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 11.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 12.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 13.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 14.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 15.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 16.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 17.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 18.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 19.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 20.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;/usi:questions&gt; &lt;usi:parameters&gt; &lt;usi:logintimeout&gt;20&lt;/usi:logintimeout&gt; &lt;usi:synchrotime&gt;3&lt;/usi:synchrotime&gt; &lt;usi:nbusersthreshold&gt;10&lt;/usi:nbusersthreshold&gt; &lt;usi:questiontimeframe&gt;5&lt;/usi:questiontimeframe&gt; &lt;usi:nbquestions&gt;20&lt;/usi:nbquestions&gt; &lt;usi:flushusertable&gt;false&lt;/usi:flushusertable&gt; &lt;usi:trackeduseridmail&gt;usi:trackeduseridmail&lt;/usi:trackeduseridmail&gt; &lt;/usi:parameters&gt;&lt;/usi:gamesession&gt;
1  src/main/custom_tsung/game_launch/game_100
... ... @@ -0,0 +1 @@
  1 +&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;usi:gamesession xmlns:usi=&quot;http://www.usi.com&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://www.usi.com gamesession.xsd &quot;&gt; &lt;usi:questions&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 1.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 2.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 3.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 4.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 5.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 6.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 7.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 8.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 9.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 10.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 11.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 12.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 13.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 14.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 15.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 16.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 17.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 18.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 19.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 20.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;/usi:questions&gt; &lt;usi:parameters&gt; &lt;usi:logintimeout&gt;20&lt;/usi:logintimeout&gt; &lt;usi:synchrotime&gt;3&lt;/usi:synchrotime&gt; &lt;usi:nbusersthreshold&gt;100&lt;/usi:nbusersthreshold&gt; &lt;usi:questiontimeframe&gt;5&lt;/usi:questiontimeframe&gt; &lt;usi:nbquestions&gt;20&lt;/usi:nbquestions&gt; &lt;usi:flushusertable&gt;false&lt;/usi:flushusertable&gt; &lt;usi:trackeduseridmail&gt;usi:trackeduseridmail&lt;/usi:trackeduseridmail&gt; &lt;/usi:parameters&gt;&lt;/usi:gamesession&gt;
1  src/main/custom_tsung/game_launch/game_1000
... ... @@ -0,0 +1 @@
  1 +&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;usi:gamesession xmlns:usi=&quot;http://www.usi.com&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://www.usi.com gamesession.xsd &quot;&gt; &lt;usi:questions&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 1.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 2.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 3.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 4.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 5.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 6.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 7.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 8.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 9.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 10.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 11.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 12.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 13.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 14.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 15.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 16.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 17.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 18.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 19.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 20.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;/usi:questions&gt; &lt;usi:parameters&gt; &lt;usi:logintimeout&gt;20&lt;/usi:logintimeout&gt; &lt;usi:synchrotime&gt;3&lt;/usi:synchrotime&gt; &lt;usi:nbusersthreshold&gt;1000&lt;/usi:nbusersthreshold&gt; &lt;usi:questiontimeframe&gt;5&lt;/usi:questiontimeframe&gt; &lt;usi:nbquestions&gt;20&lt;/usi:nbquestions&gt; &lt;usi:flushusertable&gt;false&lt;/usi:flushusertable&gt; &lt;usi:trackeduseridmail&gt;usi:trackeduseridmail&lt;/usi:trackeduseridmail&gt; &lt;/usi:parameters&gt;&lt;/usi:gamesession&gt;
1  src/main/custom_tsung/game_launch/game_150
... ... @@ -0,0 +1 @@
  1 +&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;usi:gamesession xmlns:usi=&quot;http://www.usi.com&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://www.usi.com gamesession.xsd &quot;&gt; &lt;usi:questions&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 1.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 2.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 3.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 4.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 5.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 6.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 7.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 8.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 9.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;4&quot;&gt; &lt;usi:label&gt;This is the question 10.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 11.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;3&quot;&gt; &lt;usi:label&gt;This is the question 12.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 13.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 14.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 15.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 16.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 17.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;1&quot;&gt; &lt;usi:label&gt;This is the question 18.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 19.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;usi:question goodchoice=&quot;2&quot;&gt; &lt;usi:label&gt;This is the question 20.&lt;/usi:label&gt; &lt;usi:choice&gt;Choix 1&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 2&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 3&lt;/usi:choice&gt; &lt;usi:choice&gt;Choix 4&lt;/usi:choice&gt; &lt;/usi:question&gt; &lt;/usi:questions&gt; &lt;usi:parameters&gt; &lt;usi:logintimeout&gt;20&lt;/usi:logintimeout&gt; &lt;usi:synchrotime&gt;3&lt;/usi:synchrotime&gt; &lt;usi:nbusersthreshold&gt;150&lt;/usi:nbusersthreshold&gt; &lt;usi:questiontimeframe&gt;5&lt;/usi:questiontimeframe&gt; &lt;usi:nbquestions&gt;20&lt;/usi:nbquestions&gt; &lt;usi:flushusertable&gt;false&lt;/usi:flushusertable&gt; &lt;usi:trackeduseridmail&gt;usi:trackeduseridmail&lt;/usi:trackeduseridmail&gt; &lt;/usi:parameters&gt;&lt;/usi:gamesession&gt;
308 src/main/custom_tsung/game_launch/tsung-1.0.dtd
... ... @@ -0,0 +1,308 @@
  1 +<?xml version="1.0" encoding="utf-8" ?>
  2 +<!ELEMENT tsung (information?, clients, servers, monitoring?, load, options?, sessions)>
  3 +
  4 +<!ELEMENT information (name|description|username|organisation)*>
  5 +
  6 +
  7 +<!ELEMENT name (#PCDATA)>
  8 +<!ELEMENT description (#PCDATA)>
  9 +<!ELEMENT username (#PCDATA)>
  10 +<!ELEMENT organisation (#PCDATA)>
  11 +
  12 +<!ATTLIST tsung
  13 + dumptraffic (true | false | light) "false"
  14 + backend (text | rrdtool | fullstats) "text"
  15 + loglevel (emergency|critical|error|warning|notice|info|debug) "notice"
  16 + version NMTOKEN #IMPLIED>
  17 +
  18 +<!ELEMENT servers (server+)>
  19 +<!ELEMENT server EMPTY>
  20 +<!ATTLIST server
  21 + host NMTOKEN #REQUIRED
  22 + port NMTOKEN #REQUIRED
  23 + type (ssl | tcp | udp | erlang) #REQUIRED>
  24 +
  25 +<!ELEMENT clients (client+)>
  26 +<!ELEMENT client (ip*) >
  27 +<!ATTLIST client
  28 + cpu NMTOKEN "1"
  29 + type (machine | batch) "machine"
  30 + host NMTOKEN #IMPLIED
  31 + batch (torque | pbs | lsf | oar) #IMPLIED
  32 + maxusers NMTOKEN "800"
  33 + use_controller_vm (true | false) "false"
  34 + weight NMTOKEN "1">
  35 +
  36 +<!ELEMENT ip EMPTY>
  37 +<!ATTLIST ip value NMTOKEN #REQUIRED>
  38 +
  39 +<!ELEMENT monitoring ( monitor+ )>
  40 +<!ELEMENT monitor ( snmp? | munin?)>
  41 +<!ATTLIST monitor
  42 + host NMTOKEN #REQUIRED
  43 + batch (true | false) "false"
  44 + type (snmp | erlang | munin) "erlang">
  45 +
  46 +<!ELEMENT snmp EMPTY>
  47 +<!ATTLIST snmp
  48 + version (v1 | v2) "v1"
  49 + community NMTOKEN "public"
  50 + port NMTOKEN "161">
  51 +
  52 +<!ELEMENT munin EMPTY>
  53 +<!ATTLIST munin