smithmicro / jmeter-ecs

JMeter Docker Image for Distributed Testing on EC2 Container Service (ECS)
Apache License 2.0
43 stars 34 forks source link

Environment Variable "JMETER_FLAGS" is passed to Lucy, but does not be passed to Gru #23

Closed xianing1977 closed 5 years ago

xianing1977 commented 6 years ago

I added JMETER_FLAGS in docker run command "docker run -v $PWD/plans:/plans -v $PWD/keys:/keys -v $PWD/logs:/logs --env AWS_ACCESS_KEY_ID=XXXXXXXXXX --env AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXX --env AWS_DEFAULT_REGION=us-west-1 --env SECURITY_GROUP=XXXXXXXXXXXXX --env SUBNET_ID=XXXXXXXXXXXXX,XXXXXXXXXXXXX --env KEY_NAME=XXXXXXXXXXXXX --env JMETER_FLAGS=-Jduration=60 --env MINION_COUNT=2 smithmicro/lucy /plans/xxx.jmx", The "JMETER_FLAGS" is only passed to Lucy, but not passed to Gru.

I think the problem is in Lucy.sh, line 144 "docker run -p 1099:1099 -p 51000:51000 -v /tmp:/plans -v /logs:/logs --env MINION_HOSTS=$MINION_HOSTS smithmicro/jmeter:$JMETER_VERSION $JMX_IN_COMTAINER"

Should be "docker run -p 1099:1099 -p 51000:51000 -v /tmp:/plans -v /logs:/logs --env MINION_HOSTS=$MINION_HOSTS --env JMETER_FLAGS=$JMETER_FLAGS smithmicro/jmeter:$JMETER_VERSION $JMX_IN_COMTAINER"

dsperling commented 6 years ago

You are right. Let me get this tested and deployed. Good find.

innokentiyt commented 5 years ago

Environment variables with "equals" (=) sign (for example, -GmyCustomJMeterProperty=3) cannot be passed to Gru using current project code.

A simple solution is to wrap everything after --env with single quotation marks. Example:

# In lucy.sh
docker run -p 1099:1099 -p 51000:51000 -v /tmp:/plans -v /logs:/logs --env MINION_HOSTS=$MINION_HOSTS --env 'JMETER_FLAGS=$JMETER_FLAGS' smithmicro/jmeter:$JMETER_VERSION $JMX_IN_COMTAINER
# In docker run template
docker run -v <path to jmx>:/plans -v <path to pem>:/keys -v <path to logs>:/logs \
    --env AWS_ACCESS_KEY_ID=<key id> \
    --env AWS_SECRET_ACCESS_KEY=<access key> \
    --env AWS_DEFAULT_REGION=<region> \
    --env SECURITY_GROUP=<security group within your VPC> \
    --env SUBNET_ID=<subnet IDs within your VPC> \
    --env KEY_NAME=<key pair name without extension> \
    --env MINION_COUNT=<number of minions> \
    --env 'JMETER_FLAGS=-GmyCustomJMeterProperty=3' \
    smithmicro/lucy /plans/demo.jmx
dsperling commented 5 years ago

Fixed in v2.4