blob: 0897d25f42468d5c1ee7c9264403b6954f6e217f [file] [log] [blame]
#!/bin/bash
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
die() { echo "$@" 1>&2 ; exit 1; }
####
#This is a script to simplify running gatling tests. It will default several parameters, invoke the maven plugins
#Then aggregate the results
####
[ "$#" -eq 4 ] || die "4 arguments required, $# provided. Example is $0 URL MAX_CONCURRENT_USERS RAMP_TIME(seconds) DURATION_TIME(seconds)"
URL="$1"
MAX_CONCURRENT_USERS="$2"
RAMP_TIME="$3"
DURATION_TIME="$4"
shift 4
#Compile everything
mvn compile
#Set the app id to be a date epoch for uniqueness
APP1=$(date +%s)
#Execute the post step
mvn gatling:execute -Dorg=usergrid \
-Dbaseurl=${URL} \
-DmaxPossibleUsers=${MAX_CONCURRENT_USERS} \
-DmaxPossibleUsers=${RAMP_TIME} \
-DadminUser=usergrid \
-DadminPassword=test \
-Dduration=${DURATION_TIME} \
-Dgatling.simulationClass=org.apache.usergrid.simulations.PostUsersSimulation \
-Dapp=${APP1}
#Execute the get users by username
mvn gatling:execute -Dorg=usergrid \
-Dbaseurl=${URL} \
-DmaxPossibleUsers=${MAX_CONCURRENT_USERS} \
-DmaxPossibleUsers=${RAMP_TIME} \
-DadminUser=usergrid \
-DadminPassword=test \
-Dduration=${DURATION_TIME} \
-Dgatling.simulationClass=org.apache.usergrid.simulations.GetUsersSimulation \
-Dapp=${APP1}
#Execute the get users by page
mvn gatling:execute -Dorg=usergrid \
-Dbaseurl=${URL} \
-DmaxPossibleUsers=${MAX_CONCURRENT_USERS} \
-DmaxPossibleUsers=${RAMP_TIME} \
-DadminUser=usergrid \
-DadminPassword=test \
-Dduration=${DURATION_TIME} \
-Dgatling.simulationClass=org.apache.usergrid.simulations.GetUserPagesSimulation \
-Dapp=${APP1}
APP2=$(date +%s)
#Execute put users to create them
mvn gatling:execute -Dorg=usergrid \
-Dbaseurl=${URL} \
-DmaxPossibleUsers=${MAX_CONCURRENT_USERS} \
-DmaxPossibleUsers=${RAMP_TIME} \
-DadminUser=usergrid \
-DadminPassword=test \
-Dduration=${DURATION_TIME} \
-Dgatling.simulationClass=org.apache.usergrid.simulations.PutUsersSimulation \
-Dapp=${APP2}
#Execute the put users to update them
mvn gatling:execute -Dorg=usergrid \
-Dbaseurl=${URL} \
-DmaxPossibleUsers=${MAX_CONCURRENT_USERS} \
-DmaxPossibleUsers=${RAMP_TIME} \
-DadminUser=usergrid \
-DadminPassword=test \
-Dduration=${DURATION_TIME} \
-Dgatling.simulationClass=org.apache.usergrid.simulations.PutUsersSimulation \
-Dapp=${APP2}
#Execute the delete to remove them
mvn gatling:execute -Dorg=usergrid \
-Dbaseurl=${URL} \
-DmaxPossibleUsers=${MAX_CONCURRENT_USERS} \
-DmaxPossibleUsers=${RAMP_TIME} \
-DadminUser=usergrid \
-DadminPassword=test \
-Dduration=${DURATION_TIME} \
-Dgatling.simulationClass=org.apache.usergrid.simulations.DeleteUsersSimulation \
-Dapp=${APP2}
#Now move all the reports
#AGGREGATE_DIR="target/aggregate-$(date +%s)"
#mkdir -p ${AGGREGATE_DIR}
#copy to the format of target/aggregate(date)/(simnulationame)-simulation.log
#find target -name "simulation.log" -exec cp {} ${AGGREGATE_DIR}/$(basename $(dirname {} ))-simulation.log \;