我记下了jmeter.yaml文件,并在codebuild buildspec部分中定义,该部分将在构建阶段执行并运行命令。但是在通过管道执行代码构建时,它在构建阶段失败。
此代码出了什么问题?
exit status 2
[Container] 2019/08/24 20:09:18 Phase complete: BUILD State: FAILED
[Container] 2019/08/24 20:09:18 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: for FILE in *.jmx; do
aws s3 cp $FILE s3://retqa-jmeterfiles/scripts/
# Wait for results
#ATTEMPTS=0
while [ true ]; do
echo Checking for: s3://retqa-jmeterfiles/results/opt/apache-jemetr-5.1.1/scripts/$FILE.jtl"
aws s3 ls s3://retqa-jmeterfiles/results/opt/apache-jemetr-5.1.1/scripts/$FILE.jtl
if [ "$?" == "0" ]; then
# We found the results file, exit with a success
exit success
fi
sleep 60
done
done
这是我的实际代码:
BuildSpec: !Sub |
version: 0.2
phases:
build:
commands:
- cd qe/performance
- |
for FILE in *.jmx; do
aws s3 cp $FILE s3://${JMeterFilesBucket}/scripts/
# Wait for results
#ATTEMPTS=0
while [ true ]; do
echo Checking for: s3://${JMeterFilesBucket}/results/opt/apache-jemetr-5.1.1/scripts/$FILE.jtl"
aws s3 ls s3://${JMeterFilesBucket}/results/opt/apache-jemetr-5.1.1/scripts/$FILE.jtl
if [ "$?" == "0" ]; then
# We found the results file, exit with a success
exit success
fi
sleep 60
done
done
#Analyze the jmx script for number of threads
- cd qe/performance
- awk -F"[<>]" '/ThreadGroup.num_threads/{print $3}' $FILE > output.json
- Output=$((`cat < output.json`))
- echo $Output
#UpScale = number_of_threads / 100
- UpScale=$((`cat < output.json` / 100))
<code>
- echo $UpScale
#describing the service & desiredCount into ECS grid
- DESCRIBED_SERVICE=$(aws ecs describe-services --region $AWS_REGION --cluster ${cluster} --services ${Service};
- CURRENT_DESIRED_COUNT=$(echo $DESCRIBED_SERVICE | jq --raw-output ".services[0].desiredCount")
- echo $CURRENT_DESIRED_COUNT
- |
if [ $CURRENT_DESIRED_COUNT -le $UpScale ]; then
echo "Increase desired count tasks"
aws ecs update-service --cluster $CLUSTER_NAME --service $SERVICE --task-definition ${TaskDefination} --desired-count $UpScale --region $AWS_REGION
elif [ $CURRENT_DESIRED_COUNT -ge $UpScale ]; then
echo "increasing the task desired count from 5-10"
aws ecs update-service --cluster $CLUSTER_NAME --service $SERVICE --task-definition ${TaskDefination} --desired-count $CURRENT_DESIRED_COUNT --region $AWS_REGION
fi
cd qe/performance
for FILE in *.jmx; do
aws s3 cp $FILE s3://${JMeterFilesBucket}/scripts/
while true; do
echo checking for: s3://${JMeterFilesBucket}/results/opt/apache-jemetr-5.1.1/scripts/$FILE.jtl"
aws s3 ls s3://${JMeterFilesBucket}/results/opt/apache-jemetr-5.1.1/scripts/$FILE.jtl
if [ "$?" != "0" ]; then
echo "Task desired count default to 1"
sleep 60
aws ecs update-service --cluster $CLUSTER_NAME --service $SERVICE --task-definition ${TaskDefination} --desired-count 1 --region $AWS_REGION
elif [ "$?" == "0" ]; then
# We found the results file, exit with a success
exit success
fi
done
done