Boa noite a todos,

Como os cursos ainda estão em fase de planejamento, mostro uma ferramenta para que o Blog não fique sem movimento e sem novidades ^^.

O post de hoje é interessante e pode dar muitas idéias á quem lê, o mesmo trata-se de um assunto que está e será muito utilizado, testes ou monitoramento de aplicações (ou sistemas) web. Conheci o software através de uma necessidade do trabalho… “Monitorar aplicação Web, no caso teste de login”, como utilizo o Nagios, pensei primeiramente em criar um plugin para tal, mas como não sou muito bom com programação (ainda…) resolvi procurar algo pronto, de cara encontrei o mais requisitado, WebInject, achei muito bom o software criado em Perl que integra-se com o Nagios muito bem, porém ainda não era o que eu queria.

Vamos ao que interessa…

O Badboy é o software que veremos, conheci-o por indicação do JGeraldo, um amigo da lista (moderador) Nagios-Br, do qual também teve problemas com o WebInject =D. O software executa somente no Windows (=/) mas não chega a ser um empecilho para quem quer monitorar com o Nagios, o mesmo é gratuito para usuários domésticos que queiram testar suas aplicações, porém para empresas o mesmo é gratuito para até 5 usuários, caso queira saber mais sobre a license do software veja aqui.

A instalação é simples, next-next and finish da qual julgo desnecessário colocar screens sobre a instalação, mas então a tela do software, esta é a tela principal.

Figura 1 - Tela principal Badboy

O mesmo é divido em dois frames, do qual a da esquerda é o teste do software em si como seu roteiro e opções no quadro abaixo (selecione a foto para ampliar), ao lado direito é o browser do software (Internet Explorer) para que você navegue na página e faça o teste que quiser (veremos mais adiante…), isto facilita e muito para não programadores ^^.

Antes de inicarmos o teste em um site com login e senha, segue a documentação neste link, pois existe inúmeras funções que podes parametrizar, porém mostrarei somente 1.

Abra o software e repare que no quadro esquerdo da tela há um diretório (Test Suite 1) com suas tarefas e sub-tarefas, o Badboy organiza seus testes dessa forma de modo com que pode ter diversos testes em diversos sites em uma única Suite, fazendo com que possa criar um único script (.bb) para testar todos =).

Em nosso case, acessaremos a página de forum do pfSense e faremos login e senha e verificaremos o resultado posteriormente, antes de digitar a página no campo Url, selecione o botão vermelho do qual irá iniciar a gravação do que você fizer no Browser (repare que ao clicar a tag [recording] irá aparecer no topo de janela, assim ele jogará todos os resultados e ações no Test 1 no quadro esquerdo, ao terminar selecione Parar (Quadrado é claro ^^), so let´s go there.

Figura 2 - Acessando uma página

Verifique ao lado esquerdo que o nosso Test 1 começou a criar sub-tarefas, as mesmas indicam todas as sub-requisições que houve no carregamento da página e o tempo de resposta da página, tudo o que fizer no site será registrado, todas as requisições, cliques and more ^^, isto que o torna interessantes, assim podes ver o que rola por trás de uma aplicação ou todo o processo de autenticação entre outras requisições.

Agora vamos mais a fundo, efetuarei login com o meu próprio usuário conforme a figura 3.

Figura 3 - Efetuando login na página

Repare que nossas threads começaram a crescer, as figuras com “?” são parâmetros passados á pagina, no caso repare que foi passado os textos “heitor.lessa” e a senha “” nos campos “user” e “passwrd” da página e selecionado o botão “login2” que efetua o Login propriamente dito, além de outras opções que não serão descritas ^^.

Antes de qualquer pergunta, é possível fazer testes em páginas que exigem certificados, páginas dinâmicas, estáticas, em outras palavras, qualquer página ou aplicação Web que possa ser acessado pelo navegador =).

Vamos incrementar um pouco para verem um pouco (muito pouco mesmo, dentre as opções existentes) que a ferramenta pode fazer. Em nosso case, após efetuar o login vamos pedir que o programa busque um texto na página(string) que iremos definir no programa.

Na parte inferior do quadro esquerdo, há diversas opções, selecione a opção “Checks” e arraste o item “Content Check” para o quadro superior (coloque-o na última posição, respeitando a ordem de execução do teste), após será exibida uma opção como na figura 4, preencha conforme o ilustrado.

Figura 4 - Pesquisando um texto (string)

Perceba a facilidade do programa, neste caso nós estamos pedindo que procure pelo texto “Logout” em toda a página, em todos os frames da página, repare que também há os 3 check-box muito úteis para testes (como procurar em caixas de texto que podem surgir na tela) mas que não serão abordados.

Feito isto, selecione com o botão direito o item “Test 1” e após a opção “Play Whole Test”, perceba que no quadro direito o mesmo começa a entrar na página como se você estivesse fazendo tudo denovo, note que aumenta as threads e também o resultado da opção que colocamos conforme na figura 5.

Perceba que o item “Check for text = “Logout” ” mudou de cor e aparece como um V (teste bem-sucedido). Lembre-se que há outras inúmeras opções que pode adicionar a seu teste para ficar mais completo, mas como este post é somente para demonstrar o software, fica por sua conta checar a documentação e fazer testes para descobrir novos meios de testar sua aplicação.

Figura 5 - O primeiro teste

Uma opção útil é que os testes podem ser exportados para o famoso JMeter, mas há outra melhor ainda =), criar um script sobre tudo que criamos para ser executado de forma agendada :), para isso selecione “File” -> “Save As” -> “New Badboy Script”, o mesmo pedirá um caminho para que você salve um arquivo.bb conforme a figura 6.

Figura 6 - Salvar teste como script

Certo… salvamos nosso teste como script, mas a pergunta vem.. como vou executá-lo via linha de comando para que possa agendá-lo =), é simples !, o software prevê esta necessidade e junto com a instalação possui o aplicativo “bbcmd.exe” que está na pasta atual do programa, acesse-o via prompt de comando para verificar suas opções. Executaremos o script que criamos via bbcmd e veremos o resultado conforme a figura 7.

Figura 7 - Executando o script (bbcmd)

Repare que ele executa 1 thread (Test 1) e não mostra na tela todas as respostas como no programa, mas sim somente as 2 fases de ações, a 1 que visita a página e a 2 quando se loga, e por último ele busca o texto (pattern…) Logout e a encontra ^^. Lembre-se de colocar a opção “-i 1” ou mais vezes caso precise “-i 4” que é o número de iterações que ele irá fazer, caso não informe ele ficará em loop até que você pare o script.

Como dica para monitoramento, crie um batch que execute o script via linha de comando redirecionando o resultado ( >> ) para um arquivo .txt e consulte ele com algum filtro (grep por exemplo, isto usando o Cygwin^^. Caso tenha o Nagios faça o mesmo processo, porém crie plugin em script Bash que faça o mesmo e chame-o através do NRPE =).

Para terminar, o software possui muitas opções e que você pode fazer a sua própria opção ou chamada usando Jscript ^^, mas isto deixo para você explorar o software e sua documentação.

Até a próxima.

Att.
Heitor Lessa

Anúncios