Codebuild无法运行jmeter

时间:2019-08-24 20:50:39

标签: amazon-web-services amazon-cloudformation aws-codebuild

我记下了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

0 个答案:

没有答案