Skip to content

Instantly share code, notes, and snippets.

@BrunoMoraes-Z
Created January 27, 2022 17:59
Show Gist options
  • Save BrunoMoraes-Z/cc3fb6c6b0bbbce84605e48850a8928d to your computer and use it in GitHub Desktop.
Save BrunoMoraes-Z/cc3fb6c6b0bbbce84605e48850a8928d to your computer and use it in GitHub Desktop.
# Comandos
#
# runner.sh <AMBIENTE> <COM PROMOÇÂO | SEM PROMOÇÂO>
# runner.sh 2 no_promo
# runner.sh 2 promo
#
# Variavel para controle para verificar se vai ser executado com ou sem promoção
promo=0
# Este IF serve para definir o comando padrão caso não seja informado nenhum argumento
# ex: runner.sh
if [ $# -eq 0 ]; then
variables="-v AMBIENTE:3' -v pabot:True"
pabot_config="--pabotlib --resourcefile devices_h3.dat --processes 6"
echo "Executando todos os Testes em H3"
else
# Definindo qual o Ambiente estou querendo executar 1, 2, 3
# ex: runner.sh 1
ambient=$1
# Caso tenha 2 argumentos no comando
# ex: runner.sh 1 <?>
if [ $# -eq 2 ]; then
# verifico se o segundo argumento é igual a 'promo'
if [ $2 = "promo" ]; then
promo=1
variables="-v AMBIENTE:$ambient -v pabot:True -i 'PROMOCAO'"
pabot_config="--pabotlib --resourcefile devices_h$ambient.dat --processes 6 --testlevelsplit"
fi
# verifico se o segundo argumento é igual a 'no_promo'
if [ $2 = "no_promo" ]; then
variables="-v AMBIENTE:$ambient -v pabot:True -e 'PROMOCAO'"
pabot_config="--pabotlib --resourcefile devices_h$ambient.dat --processes 6"
fi
else
# Caso seja passado somente 1 argumento
# ex: runner.sh 1
variables="-v AMBIENTE:$ambient' -v pabot:True"
pabot_config="--pabotlib --resourcefile devices_h$ambient.dat --processes 6"
fi
fi
# pabot --pabotlib --resourcefile devices_h2.dat --processes 6 -d results/suite -e "PROMOCAO" -e "PROMOCAO_LET" -e "PROMOCAO_PDV" -v pabot:True -v AMBIENTE:2 .
# pabot --pabotlib --resourcefile devices_h2.dat --processes 6 --testlevelsplit -d results/promo/1 -i "PROMOCAO" -v pabot:True -v AMBIENTE:2 .
configs="-W 170 --tagstatexclude '*'"
# Caso eu tenha informado segundo argumento = promo
# então ele define o comando para x
if [ $promo = 1 ]; then
rm -rf results_promo/*
robot_command="pabot $pabot_config -d ./results_promo $variables $configs ."
else
rm -rf results/*
robot_command="pabot $pabot_config -d ./results $variables $configs ."
fi
# robot_command="robot -d ./results $variables $configs ."
# log para saber qual o comando que foi montado pelo script & executa o script
printf "Starting Robot Framework tests: \n"
echo $robot_command
eval $robot_command
# Recupera o status da execução
exit_code=$?
# caso o codígo da execução seja diferente de 0 (ou seja ouve erro)
# então é executado os testes falhados.
if [ $exit_code -ne 0 ]; then
echo "One or more tests have failed."
# touch ./results/rerun.xml
echo "Re-running failed tests..."
# Novamente monta o comando de reexecução com base no parametro de promoção
if [ $promo = 1 ]; then
rerun_command="pabot $pabot_config $variables $configs --rerunfailed ./results_promo/output.xml -d ./results_promo --output rerun.xml -l rerun.html ."
else
rerun_command="pabot $pabot_config $variables $configs --rerunfailed ./results/output.xml -d ./results --output rerun.xml -l rerun.html ."
fi
# Loga o comando para saber o comando que esta sendo gerado & executa o comando.
echo $rerun_command
eval $rerun_command
echo "Re-building test report..."
# Faz o merge dos resultados (1 & 2) para termos apenas 1 log
if [ $promo = 1 ]; then
rebot_command="rebot -d ./results_promo --merge ./results_promo/output.xml ./results_promo/rerun.xml"
else
rebot_command="rebot -d ./results --merge ./results/output.xml ./results/rerun.xml"
fi
echo $rebot_command
eval $rebot_command
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment