Как получить счет успеха, количество неудач и причины сбоя при тестировании веб-сервисов отдыха из файла с помощью оболочки script

Привет, я тестирую веб-службы с помощью оболочки script, имея несколько условий if, с кодировкой оболочки script. Я получаю счет успеха, количество ошибок и причины сбоя.

success=0
failure=0

if curl -s --head --request DELETE http://localhost/bimws/delete/[email protected] | grep "200 OK" > /dev/null; then 
  success=$((success+1))
else
echo "DeleteUser is not working"$'\r' >> serverLog.txt
  failure=$((failure+1))
fi

if curl -s --head  --request GET http://localhost/bimws/get/[email protected] | grep "200 OK" > /dev/null; then 
  success=$((success+1))
else
 curl -s --head  --request GET http://localhost/bimws/get/[email protected] > f1.txt
 echo "getUserDetails is not working"$'\r' >> serverLog.txt
  failure=$((failure+1))
fi

if curl -s -i -X POST -H "Content-Type:application/json"  http://localhost/bimws/post/addProjectLocationAddress -d '{"companyid":"10","projectid":"200","addresstypeid":"5","address":"1234 main st","city":"san jose","state":"CA","zip":"989898","country":"United States"}' | grep "200 OK" > /dev/null; then 
  success=$((success+1))
else
echo "addProjectLocationAddress is not working"$'\r' >> serverLog.txt
  failure=$((failure+1))
fi

echo $success Success
echo $failure failure

но я с нетерпением жду тестирования веб-сервисов из файла, например, у меня есть файл, называемый web_services.txt, который содержит все мои веб-службы с помощью оболочки script, как я могу выполнить и подсчитать успех, количество неудач и причины сбоя

web_services.txt

Все разные вызовы delete, get и post

http://localhost/bimws/delete/[email protected]


http://localhost/bimws/get/[email protected]



http://localhost/bimws/post/addProjectLocationAddress -d '{"companyid":"10","projectid":"200","addresstypeid":"5","address":"1234 main st"
,"city":"san jose","state":"CA","zip":"989898","country":"United States"}'

Ответ 1

Прежде всего, ваш текущий код неправильно обрабатывает пустые строки. Вам нужно пропустить их.

Ваши строки уже содержат команды оболочки. Запуск завитка на них не имеет смысла. Вместо этого вы должны оценить эти команды.

Затем вам нужно изменить завиток, чтобы он сообщал, был ли запрос успешным, добавив -f:

FILE=D:/WS.txt
success=0
failure=0
while read LINE; do
    if test -z "$LINE"; then
        continue
    fi
    if eval $(echo "$LINE" | sed 's/^curl/curl -f -s/') > /dev/null; then 
        success=$((success+1))
    else
        echo $LINE >> aNewFile.txt
        failure=$((failure+1))
    fi
done < $FILE
echo $success Success
echo $failure failure