domingo, 20 de janeiro de 2008

Conhecendo o BadBoy - parte 1

Bom, depois de um tempo sem postar resolvi escrever sobre uma ferramenta de automação de testes muito boa e facil de usar: o BadBoy <http://www.badboy.com.au/>.
BadBoy é uma ferramenta desenvolvida em C++ (sim, não vai funcionar no linux, infelizmente) que grava todas ações que você faz em uma página web (java, php, ruby, etc...). Ele é capaz de gravar, como uma macro, tudo o que você faz na página web como requests, parâmetros, alert, respostar, etc.. Com ele você pode alterar parâmetros das páginas que você está testando, efetuar asserções por texto (simples ou html), cor, javascript, etc... Veremos então, nesta primeira parte, a estrutura básica do BadBoy e suas principais ferramentas (pelo menos as mais fáceis de utilizar. Segue a tela principal do BadBoy (numeração em vermelho)




  1. Barra de ferramnetas
    Aqui encontramos todos os botões para as principais ações no Badboy, veromos com detalhes cada uma das ações asseguir e nos outros tutoriais.

  2. Barra da URL
    Aqui digitamos o endereço de entrada que iremos gravar o script e onde aparecerão as demais url's enquanto vamos navegando nas paginas.

  3. Estrutura do Script
    Aqui é apresentada a principal estrutura de script do BadBoy com a estrutura de

    • Suites: Organiza seu script da mesma forma de um test, mas com a diferença de ter apenas uma suite (não nesessário, pois o suite e test possuem quase as mesmas funcionalidade).
    • Tests: Organiza o seu script como um teste, podendo transforma-lo em um template (que tambem será apresentado mais tarde). Você pode organizar o Tests como um TestCase ou como partes agrupadas de teste no seu script
    • Steps: Organiza o seu script como passos para execução de determinada ação ou grupo de ação. Um step pode virar uma Thread, pode repetir N vezes, pode ser monitorada e ser transformada em test.

      Uma estrutura básica com um script é apresentada abaixo:



  4. Tools
    Tools apresenta uma série de ferramentas para auxilia-lo na gravação, execução e visualização do seu script.

    • Summary: Apresenta todos os dados referente a execução do seu script (nro de execuções, falhas, sucessos, tempo medio de execução, etc...)
    • Variebles: apresenta todas as variaveis que podem ser utilizadas no script para substituir um determinado parâmetro.
    • Graph: Apresentação do gráfico contendo o tepo medio da execução de cada step do script.
    • Toos: Uma série de ferramentas que podem ser adicionadas no seu script para ajuda-lo a obter o sucesso da execução do seu script.
    • Checkers: Série de analisadores que podem ser inseridos para efetuar alguma verificação na página.
    • References: itens que podem ser adicionados como requirements ou defeacts para ajudar você a visualizar o que precisa see verificado ou ajuda-lo em algum decisão dentro da ferramenta, a fins ilustrativos.

  5. Visualizador da página
    É aqui será exibida a página enquanto você grava sua execução. Você interege com a pagina neste painel, onde também pode aplicar os checkers.
Como Gravar um Script no BadBoy
Os passos para a gravação de um script é bem fácil

  1. Abra o BadBoy. Ele já estará em mode de gravação, que pode ser visualizado pelo botão Record pressionado na barra de ferramentas
  2. Digite a URL na barra de endereço. O BadBoy Automaticamente criará a o request com todos os parâmetros da página requisitada.
  3. Começe a interagir ocm a página no painel de visualização da página. Todas as ações na página serão adicionadas na estrutura do script do BadBoy.

Bom, por enquanto é isso... Você pode ir exercitando a criação de scripts com o BadBoy abrindo o programa selecionando o Menu Help/Tutorial.

Na proxima parte de apresentação do BadBoy iremos aprender a manipular os parâmetros, aplicar asserções na página e salvar um relatório de execução do script.

12 comentários:

  1. Muito interessante essa ferramenta, Elias e muito obrigada por compartilhar uma pouco do seu conhecimento conosco.

    ResponderExcluir
  2. Tenho um sistema desenvolvido em PHP, mas todas as telas dele foram preparadas para rodar no google chrome, consigo parametrizar o Bad Boy para rodar a partir do chrome?

    Desde já agradeço.

    ResponderExcluir
  3. Olá Hugo!
    Infelizmente não...
    O que existe é um player para firefox...

    Se tu quiseres uma alternativa, uma boa pedida é usar o Webdriver com alguma linguagem de programação, mas tem uma pequena "bruxaria" pra funcionar no Chrome.

    Qualquer coisa prende o grito!
    Abraço!

    ResponderExcluir
  4. Gostei muito me parece ser mais fácil que o Selenium. :)

    ResponderExcluir
  5. Valeu Elias, Excelente!!!

    Você já postou a utilização das variáveis de forma detalhada? se postou, poderias me enviar o link?

    Estou testando algumas aplicações tipo CRUD, o complicador é que a chave primaria da tabela que recebe a manutenção é um sequence gerada pelo Oracle. Logo, se faço um teste com inclusão, alteração e exclusão do registro e coloco para o BadBoy repetí-lo, ele não consegue alterar nem excluir porque a sequence do registro incluído é outra. É possível contornar isso com o uso das variáveis do BadBoy nesse script gerado?

    ResponderExcluir
  6. Isso vai depender de como a tua página faz a requisição para a alteração e exclusão dos dados.

    O que ocorre ai é que essas requisições enviam o ID do registro para estas ações... Se o ID é exibido ai fica mais fácil de fazer isso... Dai o erro ocorre porque ele deve gravar o ID e ficar fixo na requisição.

    Mas antes de fazer isso, tente gravar teu script novamente no modo Navigation, que não grava as chamadas de requisições, talvez isso te ajude.

    Qualquer coisa é só postar :)

    Abraço!

    ResponderExcluir
  7. O player do firefox é um plugin? Ou uma configuração das propriedades do programa?

    Não encontrei muito na internet a respeito de como utilizá-lo.

    ResponderExcluir
  8. O player é um plugin? Ou uma parametrização nas propriedades do programa?

    ResponderExcluir
  9. O player do firefox é um plugin? Ou uma parametrização nas preferências do programa?

    ResponderExcluir
  10. O player do firefox é um plugin? Ou uma parametrização nas preferências do programa?

    ResponderExcluir
  11. Elias, bom dia!
    Você sabe me informar como se muda o Host no Badboy?
    Automatizei uma aplicação em um host especifico, mas agora quero rodar o mesmo teste em outro host, é possível?

    ResponderExcluir
  12. Oi WKR ANALYST ,
    Pra mudar o host no badboy, o ideal é criar uma variável de host nas preferencias:
    - Clique sobre o meu Preferences e selecione Preferences
    - Clique na aba Variables e depois em Add Variable
    - Coloque o nome da variavel como host e com um valor qualquer
    - Quando gravar a primeira ação, troque a URL inicial por ${host} e tudo mais que tu gravar vai ficar sempre "puxando" do host

    Qualquer coisa prende o grito :)

    ResponderExcluir