Escolar Documentos
Profissional Documentos
Cultura Documentos
Automao de Testes
Automao de Testes
AVISO DE RESPONSABILIDADE As informaes contidas neste material de treinamento so distribudas NO ESTADO EM QUE SE ENCONTRAM, sem qualquer garantia, expressa ou implcita. Embora todas as precaues tenham sido tomadas na preparao deste material, a Alfamdia LTDA. no tem qualquer responsabilidade sobre qualquer pessoa ou entidade com respeito responsabilidade, perda ou danos causados, ou alegadamente causados, direta ou indiretamente, pelas instrues contidas neste material ou pelo software de computador e produtos de hardware aqui descritos.
Automao de Testes
UNIDADE 1 OBJETIVOS E GANHOS COM A APLICAO DE AUTOMAO NOS TESTES .......................... 6
1.1 O CICLO DE VIDA DOS TESTES AUTOMATIZADOS ............................................................................. 6 1.1.1 Objetivos dos testes automatizados ........................................................................................................ 6 1.2 BENEFCIOS DA AUTOMAO DOS TESTES....................................................................................... 6 1.2.1 ROI e custos ............................................................................................................................................ 7 UNIDADE 2 TIPOS DE AUTOMAO ................................................................................................................... 9
2.1 CAIXA BRANCA ............................................................................................................................. 10 2.1.1 Unitrios ............................................................................................................................................... 10 2.2 CAIXA PRETA ................................................................................................................................ 10 2.2.1 Funcional.............................................................................................................................................. 10 2.2.2 Performance ......................................................................................................................................... 10 2.3 GESTO ........................................................................................................................................ 10 2.3.1 Gesto de defeitos ................................................................................................................................. 10 2.3.2 Gesto de testes .................................................................................................................................... 11 2.3.3 Massa de dados .................................................................................................................................... 11 UNIDADE 3 FERRAMENTAS MAIS UTILIZADAS NO MERCADO DE AUTOMAO ...................................... 12
3.1 FERRAMENTAS PAGAS .................................................................................................................. 12 3.1.1 IBM ....................................................................................................................................................... 12 3.1.2 HP ......................................................................................................................................................... 13 3.1.3 Automated QA ...................................................................................................................................... 13 3.2 FERRAMENTAS FREE ..................................................................................................................... 13 UNIDADE 4 CONHECENDO O AMBIENTE E INSTALANDO FERRAMENTAS ................................................. 15
4.1 AMBIENTE DE TESTES ................................................................................................................... 15 4.1.1 Infraestrutura necessria ..................................................................................................................... 15 4.1.2 Massa de dados .................................................................................................................................... 16 4.2 CONFIGURANDO E INSTALANDO AS FERRAMENTAS ....................................................................... 17 4.2.1 E ento vamos configurar e instalar o WampServer? .......................................................................... 17 4.2.2 Colocando as aplicaes para funcionar ............................................................................................. 18 4.2.3 Executando as aplicaes ..................................................................................................................... 25 UNIDADE 5 GERENCIAMENTO DE CASOS DE TESTE E EXECUO COM TESTLINK ................................ 26
5.1 GESTO DE TESTES COM TESTLINK .............................................................................................. 26 5.1.1 Objetivos ............................................................................................................................................... 26 5.1.2 Instalando a ferramenta ....................................................................................................................... 27 5.1.3 Estrutura geral ..................................................................................................................................... 29 5.1.4 Definies Bsicas ................................................................................................................................ 29 5.1.5 Exemplo simples de fluxo de trabalho no TestLink; ............................................................................. 30 5.1.6 Algumas configuraes antes de iniciar ............................................................................................... 32 5.2 PROJETO DE TESTE ........................................................................................................................ 32 5.2.1 Editando um projeto ............................................................................................................................. 34 5.3 INVENTRIO .................................................................................................................................. 35 5.4 ESPECIFICAES DE TESTE ........................................................................................................... 35 5.5 ADICIONANDO REQUISITOS ........................................................................................................... 36 5.5.1 Editando Especificao de Requisitos .................................................................................................. 37 5.5.2 Adicionando Casos de Teste ................................................................................................................. 39 5.5.3 Associando Casos de Teste aos Requisitos ........................................................................................... 44 5.5.4 Associando Palavras Chaves aos Casos de Testes ............................................................................... 45 5.5.5 Criao e excluso de Planos de Teste ................................................................................................ 46 5.5.6 Criando Baselines / Releases................................................................................................................ 46 5.5.7 Adicionando casos de teste ao Plano de Teste ..................................................................................... 47 5.5.8 Atribuio de execuo de teste ........................................................................................................... 49 5.6 PLATAFORMAS .............................................................................................................................. 49 5.7 PRIORIZANDO TESTES ................................................................................................................... 50 5.8 MARCOS ....................................................................................................................................... 51
Automao de Testes
5.8.1 Executando os Casos de Teste .............................................................................................................. 51 FILTRAGEM DE CASOS DE TESTE ............................................................................................................ 52 RVORE ................................................................................................................................................. 52 STATUS DO TESTE ................................................................................................................................... 53 INSERINDO RESULTADOS DO TESTE ........................................................................................................ 53 5.8.2 Relatrios de teste e mtricas ............................................................................................................... 53 5.8.3 Mtricas gerais de Planos de Testes..................................................................................................... 53 5.8.4 Resultados por palavra-chave .............................................................................................................. 54 5.8.5 Resultados por Dono ............................................................................................................................ 54 5.8.6 Viso geral do status da Baseline ......................................................................................................... 54 5.8.7 Mtricas da Query ................................................................................................................................ 54 5.8.8 Relatrios de casos de testes bloqueados, com falha e no executados ............................................... 56 5.8.9 Relatrio de Testes ............................................................................................................................... 56 5.8.10 Grficos ................................................................................................................................................ 56 5.8.11 Total de Bugs para cada caso de teste ................................................................................................. 57 5.8.12 Como adicionar um novo relatrio ...................................................................................................... 57 5.8.13 Administrao de usurios ................................................................................................................... 57 5.8.14 Campos personalizados ........................................................................................................................ 59 5.8.15 Importao de dados ............................................................................................................................ 60 5.8.16 Importao e exportao de projetos de testes ..................................................................................... 61 5.8.17 Importao e exportao de testes de Suites ........................................................................................ 62 5.8.18 Just one Caso de Teste.......................................................................................................................... 64 5.8.19 Todos os casos de testes no Suite ......................................................................................................... 64 5.8.20 Importao/Exportao de requisitos de software ............................................................................... 65 5.8.21 Importando casos de testes para o Excel via XML ............................................................................... 65 5.8.22 Importando arquivo XML no TestLink ................................................................................................. 67 UNIDADE 6 GERENCIANDO DEFEITOS COM MANTIS BUG TRACKER ......................................................... 68
6.1 GESTO DE DEFEITOS COM MANTIS BUG TRACKER ...................................................................... 68 6.1.1 Objetivos ............................................................................................................................................... 68 6.1.2 Instalao da ferramenta ...................................................................................................................... 68 6.1.3 Login no Mantis .................................................................................................................................... 69 6.1.4 Pgina inicial ....................................................................................................................................... 70 6.1.5 Criando um novo projeto ...................................................................................................................... 70 6.1.6 Criando e modificando um bug ............................................................................................................ 72 6.1.7 Meus Bugs ............................................................................................................................................ 75 6.1.8 Sumrio dos Bugs ................................................................................................................................. 76 6.1.9 News ..................................................................................................................................................... 77 6.1.10 Change Log .......................................................................................................................................... 78 6.1.11 Documentao do projeto..................................................................................................................... 79 6.1.12 Configurao do Mantis ....................................................................................................................... 80 UNIDADE 7 TESTE DE PERFORMANCE, CARGA E STRESS COM JMETER ................................................. 81
7.1 O QUE O JMETER? ...................................................................................................................... 81 7.2 INSTALANDO O JMETER ................................................................................................................ 83 7.3 COMPONENTES DO JMETER .......................................................................................................... 84 7.3.1 Elementos Bsicos ................................................................................................................................ 84 7.3.2 Sampler ................................................................................................................................................. 87 HTTP REQUEST ..................................................................................................................................... 87 7.3.3 Logic Controllers .................................................................................................................................. 88 SIMPLE CONTROLLER ............................................................................................................................. 88 LOOP CONTROLLER ................................................................................................................................ 89 ONCE ONLY CONTROLLER ..................................................................................................................... 90 INTERLEAVE CONTROLLER ..................................................................................................................... 90 IF CONTROLLER ...................................................................................................................................... 91 7.3.4 Listeners ............................................................................................................................................... 91 VIEW RESULTS TREE .............................................................................................................................. 91 ASSERTION RESULTS .............................................................................................................................. 92
Automao de Testes
GRAPH RESULTS..................................................................................................................................... 93 7.3.5 Configurations Elements ...................................................................................................................... 93 HTTP COOKIE MANAGER ...................................................................................................................... 94 HTTP REQUEST DEFAULTS .................................................................................................................... 94 7.3.6 Assertions ............................................................................................................................................. 95 RESPONSE ASSERTION ............................................................................................................................ 95 DURATION ASSERTION ........................................................................................................................... 96 7.3.7 Timers ................................................................................................................................................... 96 7.3.8 Pre-Processors ..................................................................................................................................... 97 7.3.9 Post-Processors .................................................................................................................................... 98 7.4 CRIANDO TESTES DE DESEMPENHO E ESTRESSE AUTOMATIZADOS ................................................ 98 UNIDADE 8 TESTE FUNCIONAL COM BADBOY ............................................................................................. 104
8.1 COMO INSTALAR O BADBOY? ..................................................................................................... 104 8.2 CONHECENDO O BADBOY ........................................................................................................... 110 8.2.1 Gravando ............................................................................................................................................ 110 8.2.2 Criando testes ..................................................................................................................................... 111 8.2.3 rvore do script .................................................................................................................................. 111 8.3 VAMOS GRAVAR NOSSO PRIMEIRO SCRIPT? ................................................................................. 113 8.4 AUTOMATIZANDO O SCRIPT ........................................................................................................ 118 8.4.1 Request Mode ..................................................................................................................................... 118 8.4.2 Navigation Mode ................................................................................................................................ 118 8.4.3 Navigations ......................................................................................................................................... 119 8.4.4 Gravando navegaes ........................................................................................................................ 119 8.4.5 Tipos de itens de navegao ............................................................................................................... 120 8.4.6 Referncias de navegao .................................................................................................................. 120 8.4.7 Propriedades de navegao ............................................................................................................... 121 8.4.8 Variveis ............................................................................................................................................. 122 8.4.9 Adicionando Variveis ....................................................................................................................... 123 8.4.10 Variveis de visualizao ................................................................................................................... 123 8.4.11 Editar Variveis .................................................................................................................................. 124 8.4.12 Usando variveis ................................................................................................................................ 124 8.4.13 Varivel lista de valor ........................................................................................................................ 124 8.4.14 Variveis de Incremento ..................................................................................................................... 124 8.4.15 Assertions/Asseres .......................................................................................................................... 125 8.4.16 Forma como as Asseres funcionam ................................................................................................ 125 8.4.17 Adicionando Asseres ....................................................................................................................... 125 8.4.18 Checks ................................................................................................................................................ 126 8.5 SALVANDO E ENTENDENDO O RESULTADO DO SCRIPT ................................................................. 126 8.5.1 Summary View .................................................................................................................................... 127 8.6 FERRAMENTAS ............................................................................................................................ 127 USANDO DATA SOURCES ..................................................................................................................... 127 ADICIONANDO DATA SOURCE .............................................................................................................. 129 8.7 BADBOY EM LINHA DE COMANDO ............................................................................................... 131 8.8 USANDO BADBOY COM AJAX .................................................................................................... 132 8.8.1 Entendendo as requisies Ajax ......................................................................................................... 132 8.8.2 Gravao de pginas AJAX no Request Mode ................................................................................... 132 8.8.3 Gravando pginas AJAX no Navigation Mode ................................................................................... 133 8.8.4 A reproduo de pginas AJAX no Navigation Mode ........................................................................ 133 8.9 USANDO O BADBOY COM JMETER .............................................................................................. 134 8.9.1 Limitaes........................................................................................................................................... 134
Automao de Testes
Como os testes manuais so feitos por pessoas e estas possuem custos, logo ao se reduzir o tempo de testes que estas pessoas executaro, estaremos reduzindo os custos em relao a elas nestas tarefas.
Automao de Testes
As ferramentas de automao so muito mais rpidas na execuo, h cenrios que de vrios minutos podem ser executados automaticamente em segundos. Claro que dependendo da forma que so feitos, dependem do start de uma pessoa, mas depois apenas analisam os resultados que j foram exibidos pelas ferramentas. Reduo de erros humanos na execuo de testes manuais
Como a execuo feita automaticamente, isso evita elimina os riscos que as pessoas podem conforme os vcios, fazer. Seja no esquecimento de algum cenrio, seja na forma errada de execut-los. Isso no impede que um teste automatizado mal planejado possa apresentar erros de cenrios visto que quem cria uma pessoa. Maior cobertura nos testes e software mais seguro e confivel
Apesar de a criao de um script de testes ser mais demorado para escrever do que um cenrio, ganhamos em tempo de execuo. Quanto mais scripts forem criados, mais cobertura teremos aos testes. Consequentemente o software a ser entregue mais confivel. Execuo de testes em qualquer horrio e ininterruptos
Ao contrrio do profissional, o teste automatizado pode ser executado a qualquer momento, inclusive nas madrugadas e finais de semana se estiverem programados para isso. Enquanto os casos forem de sucesso o teste pode ser ininterrupto at que haja algum erro. Ficando assim o software sempre sendo testado. Execuo dos testes em diversas plataformas
Com o avano as ferramentas de teste esto cada vez mais suportando diferentes ambientes (Sistemas Operacionais e Browsers) o que facilita na replicao destes testes e garantindo maior abrangncia nas possibilidades.
Automao de Testes pode entretanto lhe ajudar a entender bem logo no incio o retorno atual que voc ir obter dos seus investimentos e assim voc poder pesar aquele contra os benefcios que voc ir ganhar com a automao. O ROI nos auxilia a quantificar os custos do projeto de testes e indicado que seja feito desde seu incio, tanto com o tempo gasto no aprendizado das ferramentas quanto na execuo dos testes j automatizados. Necessitamos avaliar todas as informaes e comparar com os testes manuais para se chegar num resultado onde se possa justificar custos posteriores. O ROI pode ser calculado da seguinte forma, dividindo os benefcios da automao pelos custos de esforo para automatizar.
ROI
Geralmente o custo de automao so todos os envolvidos, direta e indiretamente neste processo como hardware, software (licenas), treinamentos, tempo de desenvolvimento de teste, etc. os benefcios sero visualizados por um determinado tempo, reduzindo os testes manuais, melhorando a capacidade de descoberta de defeitos e de ter a capacidade de ser executado 24hs/dia.
Automao de Testes
Dentro destas categorias em que podemos aplicar os testes, exibida pela figura abaixo iremos apresentar as principais dentro o projeto de teste:
Planejamento
Execuo
Finalizao
Ferramentas de apoio
Automao de Testes
Gesto de defeitos
Gesto de testes
Automao de Testes
2.2.2 Performance
Nos testes de performance submetemos nossa aplicao a um nmero conhecido de usurios sob utilizao padro de acordo com os requisitos, e que o sistema deve manter um desenvolvimento aceitvel sem que ocorram erros. claro que se no tivermos informaes relevantes para aplicarmos uma combinao das tcnicas de Carga e Stress para descobrir os limites da aplicao e assim determinar, basicamente, o nmero de usurios suportados sob determinado cenrio com um tempo de resposta adequado.
2.3 Gesto
2.3.1 Gesto de defeitos
A gesto de defeitos um dos itens de maior utilizao no processo de testes, pois nesse momento at o final do projeto que vamos arquivando (guardando) os defeitos e acompanhando para a soluo do mesmo. importante salientar que o envolvimento no somente da equipe de teste, mas tambm da equipe de desenvolvimento. A gesto de defeitos uma das ferramentas que
10
Automao de Testes auxiliam os testadores a acompanhar quais erros existem nas aplicaes e quem pode resolv-los.
11
Automao de Testes
3.1.1 IBM
A IBM uma gigante em ferramentas para automao, aqui vamos citar 3 das que podem ser utilizadas para testes: RationalFunctionalTester: uma soluo de teste funcional e de regresso automatizada para equipes de QA preocupadas com a qualidade de seus aplicativos Javabaseados na Web, Microsoft Visual Studio .NET, baseados em terminal, SAP, Siebel e Web 2.0. RationalPerformanceTester: uma soluo de teste de carregamento e desempenho para equipes preocupadas com a escalabilidade de seus aplicativos baseados na Web. RationalRobot: uma ferramenta de automao para equipes de QA para aplicativos de teste de cliente/servidor. Permite deteco de defeito, inclui etapas de teste e gerenciamento de teste, suporta diversas tecnologias de UI. Inclui gerenciamento de teste embutido, integra-se com as ferramentas do IBM RationalUnifiedProcess.
12
Automao de Testes
3.1.2 HP
Inicialmente quem possua as ferramentas para automao de testes da HP era a Mercury, por isso muitos dos nomes ainda podem estar associados a este nome. No entanto hoje fazem parte da HP. HP LoadRunner: a ferramenta considerada como a melhor no mercado para validao de desempenho. Ele evita problemas de desempenho, detectando gargalos antes de uma implantao ou atualizao de sistema. HP QuickTest Professional: tambm muito conhecido como QTP, uma ferramenta para automao de testes, utiliza o conceito de keyword-drive para facilitar a criao e manuteno dos testes.
3.1.3 Automated QA
uma empresa jovem no mercado, e focada em produtos e servios voltados ao desenvolvimento de projetos de garantia da qualidade de software. Suas ferramentas esto sendo fortes concorrentes das demais ferramentas devido seu baixo custo. TestComplete: oferece o mesmo conjunto de funcionalidades que os seus principais concorrentes. Possibilita criar testes unitrios, funcionais, regresso e performance.Por se tratar de uma ferramenta de baixo custo, hoje muitas empresas, inclusive as de grande porte, esto migrando ou adquirindo essa ferramenta, tendo em vista da facilidade em poder se trabalhar com ela. Um dos destaques o suporte nativo para a automao de sistema desenvolvidos em vrias tecnologias, tais como: .NET, Java, Visual Basic, Borland Delphi, WEB, PowerBuilder, FoxPro, entre outros. Alm disso, o TestComplete oferece recursos para a realizao de testes de desempenho para aplicaes WEB e testes funcionais de WEB Services.
13
Automao de Testes Neste curso abordaremos ferramentas que possam ser implantadas com baixo custo dentro de cada empresa. O foco ser compreender o funcionamento bsico das ferramentas free mais utilizadas no meio da automao de teste.
14
Automao de Testes
Quanto maior o nvel do ambiente, maior deve ser sua capacidade de reproduzir todas as caractersticas do cliente. Vamos pensar que, por exemplo, em erros que ocorrem no dia a dia. Erros em pginas web podem ocorrer em diferentes navegadores, erros de aplicativo em diferentes sistemas operacionais e assim por diante. De acordo com as configuraes mnimas exigidas para a instalao do sistema j estamos definindo nosso ambiente. No a toa que nas ferramentas de bugtracker temos um campo para dizer em qual SO o erro ocorreu. A cada nvel de teste temos a diferenciao de ambiente. Estes ambientes podem nem pertencer exclusivamente a equipe de teste, mas precisam ser salientadas: Atributos Escopo Equipe Volume de dados Origem de dados Nvel Unitrio Unidade individual Desenvolvedores Pequeno Criao manual Integrao Unidades Grandes Sistema Sistema inteiro Aceitao Simulao da Produo
Desenvolvedores Testadores e Testadores e Testadores usurios Pequeno Criao manual Grande Criao por processo Grande Dados reais
15
Dentro do ambiente de testes, temos uma infra-estrutura bsica para comportar os testes automatizados: Servidor de aplicativos Servidor que ir conter os programas utilizados para gerenciamento, controle e execuo de testes. Tambm contem aplicao de suporte. Ambiente virtualizado Ambiente para simular os ambientes descritos como propcio para a utilizao do sistema. Pode-se criar as mquinas virtuais para testar um erro especfico com a configurao do cliente. Sistema alvo (SUT) a aplicao que ser o alvo dos testes, pode ser um servidor especfico ou mesmo um ambiente virtualizado. Banco de dados Sempre necessrio para a maioria das aplicaes, temos que possuir um banco exclusivo e controlado para a execuo dos testes.
16
Automao de Testes
Como necessitamos destas 3 aplicaes, muito tedioso e complicada a sua instalao e suas configuraes para que consigamos utilizar o TestLink e o Mantis. O propsito do Wamp, exatamente este, facilitar estas instalaes, unindo estas 3 aplicaes j configuradas e dependendo apenas de um download, que seria do WampServer. Esta ferramenta nica e exclusiva para o uso da AMP (Apache + MySQL + PHP), em ambiente Windows e traz as ultimas verses da AMP, alm de conter outras ferramentas de apoio. Podemos encontrar estas ferramentas em: Apache: http://httpd.apache.org/ MySQL: www.mysql.com/ PHP: www.php.net/ Wamp: www.wampserver.com/en/
17
Automao de Testes
2. Clique em [Executar]. Ser exibida a tela das ferramentas e verses que o Wamp que fez o download possui:
18
Automao de Testes
3. Clique em [Next]. a tela de termos de aceite, caso esteja de acordo, ento selecione a opo I accept the agreement.
19
Automao de Testes
4. Clique em [Next]. Ser exibida a tela onde mostra o local a ser instalado. Caso deseje escolher outro local selecione outro.
5. Clique em [Next]. exibida a tela onde voc informa se deseja que seja criado um cone na rea de trabalho e/ou no menu iniciar. Selecione opes.
20
Automao de Testes
6. Clique em [Next]. exibida a tela confirmando locais de instalao e cones que sero criados:
21
8. Caso o Firefox esteja instalado, informado que o mesmo foi detetcado em seu computador e se deseja que este seja o browser padro para o WampServer.
9. Clique em [Sim]. ... finalizando instalao... 10. exibida a tela de Parmetros do PHP. Em SMTP mantenha localhost e em e-mail altere se necessrio.
22
Automao de Testes
Automao de Testes
Pronto! Agora que o Wamp j est instalado, podemos alterar a sua linguagem: No cone da barra de tarefas, clique com o boto direito sobre o cone do Wamp >> Selecione a opo Language >> em seguida selecione a opo Portuguese. Feito, configurao de linguagem alterada!
Com o boto esquerdo do mouse, clique sobre o cone do Wamp. Ser exibido o menu:
24
Automao de Testes
25
Automao de Testes
Automao de Testes
Os casos de testes podem ser classificados por palavras-chave ("keyword") para facilitar a pesquisa e organizao; Criao ilimitada de projetos e casos de testes; Os ciclos de testes podem ser priorizados e atribudos aos testadores; Gerador interno de relatrios e grficos (possibilidade para exportar os dados nos formatos CSV, Excel e Word); Integrao com ferramentas de gesto de defeitos (Bugzilla, Mantis, Jira);
27
Automao de Testes
A instalao dividida em cinco passos: Acceptance of License (Aceite da Licena) Basicamente ler e aceitar a licena marcando o checkbox I agree to the terms set out in this license. Verification of System and configuration Requisitoss (Verificao do sistema e configuraes requeridas) O sistema avalia as configuraes do computador em que o TestLink ser instalado. Caso tenha algum problema, ele ser apresentado para correes. Quando a mensagem Your system is prepared for TestLink configuration (no fatal problem found). for apresentada, basta solicitar Continue. Definition of DB access (Definio do acesso ao Banco de Dados) Neste tutorial s apresentaremos a instalao usando a mquina local e o MySql como banco de dados. Informe o nome do banco de dados criado, neste caso testlink, usurio e senha do root do banco de dados. Inclua tambm o usurio que criamos e a senha escolhida, logo aps solicite Progress TestLink Setup. Criar DB, testlink DB user, structures and default data & Criar configuration file. (Criao do usurio do Banco de dados, estruturas e dados padres e criao do arquivo de configurao) Verify the procedure result (Verificao dos resultados do procedimento)
28
29
Automao de Testes Plano de Teste: criado quando voc pretende executar casos de teste. Planos de teste so feitos dos casos de teste a partir do projeto de teste atual. Um plano de teste inclui Builds, Marcos, atribuio de usurio e resultados do teste. Projeto de Teste: algo que vai existir sempre no Testlink. Um projeto de teste sofre muitas verses diferentes ao longo de sua vida. Um projeto de teste inclui especificaes de teste com Casos de Teste, Requisitos e palavras-chave. Usurios dentro do projeto definem papis. Usurio: cada usurio TestLink tem um papel que define as caractersticas disponveis.
30
Automao de Testes 8. Um gerente dessa equipe Quer ver os resultados. O Administrador explica a ele que ele pode criar uma conta na pgina de login. O Gerente o faz. Ele tem padro "Gerente" direitos e pode ver os resultados de teste e casos de testes. Ele pode ver que tudo o que passou no relatrio geral ;-) e problemas na Build "Fish 0.1" em um relatrio especfico para Build.1. 9. Mais tarde, os desenvolvedores finalmente, adicionam tambm a funcionalidade "Chips". Adam cria um Plano de Teste "Fish & Chips 2". Ele pode reutilizar o primeiro plano de teste como modelo. Todos os Casos de Teste "Fish" e os papis sero adicionados automaticamente. Ele cria um novo Build "Fish 1.1" e vincula todos os Casos de Teste "chips" a este plano de teste tambm. 10. Agora o teste comea como de costume. 11. Mais tarde, o Administrador cria um novo projeto de teste para outro produto "Hot Dog". Mas esta de uma outra equipe de teste e histria diferente.
31
Automao de Testes
32
Automao de Testes
importante ressaltar que durante a criao do projeto, voc poder desabilitar o recurso de funcionalidade e requisitos oferecido pelo TestLink, caso voc utilize alguma outra ferramenta para este fim. Aps preenchidos os campos conforme seu interesse, basta clicar em [Criar]. Pronto, agora voc possui um projeto.
33
Automao de Testes
Ser exibida a lista contendo os projetos, clique sobre ele e edite o que quiser, aps clicar em [Salvar]. importante ressaltar que no interessante deletar um projeto, visto que todas suas informaes sero perdidas. Se possvel sempre inative seu projeto quando no quiser mais utiliz-lo.
34
Automao de Testes
5.3 Inventrio
Os usurios podem listar seu hardware em uma tabela por projeto. O recurso deve ser ativado na pgina de edio do projeto. Por default os lderes podem editar esta pgina e testadores podem apenas navegar. O link Inventrio est disponvel na pgina principal, no menu "Projeto de Teste". A pgina Inventrio oferece trs aes: criar, Editar e Deletar. A tabela mostra todos os dispositivos e permite a classificao em qualquer campo. Selecione a opo "Criar" para definir um dispositivo. Os parmetros a seguir so suportados: Nome do host (valor obrigatrio exclusivo); Endereo IP; Objetivo (texto simples com maximamente 2000 caracteres); Hardware (texto simples com maximamente 2000 caracteres); Notas (texto simples com maximamente 2000 caracteres); Dono (opcional) pode ser qualquer pessoa que tenha pelo menos a capacidade de ver. Para Editar e Excluir requer uma linha selecionada.
35
Automao de Testes O TestLink quebra a estrutura de especificao de teste em Suites e Casos de teste. Estes nveis persistem em todo o aplicativo. Um projeto de teste tem apenas uma especificao de testes. Planejamos implementar as seguintes habilidades: padres de teste, processo de reviso e status de casos de teste, estrutura de caso de teste (por exemplo o design de passo a passo).
A pgina Especificao de Requisitos dever ser exibida, conforme o exemplo apresentado na figura abaixo:
36
Automao de Testes
Para adicionar uma Especificao de Requisitos, devemos clicar sobre o projeto desejado e aps clicar em Nova Especificao de Requisito:
importante salientar que segundo a organizao do TestLink, cada requisito deve ser associado a uma Especificao de Requisito, que representa a grosso modo um agrupador de requisitos semelhantes (algo como uma sute ou seo de requisitos.
37
Automao de Testes
Nesta pgina voc poder importar os requisitos por meio de um arquivo externo (*.CSV) ou adicionar o requisito manualmente. Observe ainda que, nesta pgina voc poder tambm visualizar a lista de requisitos existentes, assim como, gerar um relatrio (por meio do boto Visualizar Impresso). Para adicionar um requisito manualmente, voc dever clicar no boto Criar Novo Requisito:
A pgina Criando um Novo Requisito dever ser exibida, conforme a seguinte tela. Convm lembrar, alis, que durante a criao do requisito, voc poder identificar no campo Status se o requisito testvel ou no e qual o Tipo dele.
38
Automao de Testes
39
Automao de Testes
Nesta pgina clique sobre o projeto e aps clique em no boto Nova Suite de Teste:
De forma similar aos requisitos, a Especificao de Teste dever obedecer a uma organizao hierrquica definida pelo TestLink. Nessa condio, segundo a hierarquia do TestLink, cada Especificao de Teste composta por um ou mais Suites, que por sua vez pode ter uma ou mais Casos de Teste.
40
Automao de Testes
Uma vez que o Suite for criado, voc dever selecion-lo na lista dos componentes disponveis:
Aqui voc pode tanto criar um novo Suite dentro deste como pode j Criar um caso de teste.
41
Automao de Testes
O TestLink tambm permite a impresso dos Casos de Teste. Para realizar tal tarefa, voc dever ir para a seo Especificar Testes e ento clicar no menu Imprimir Casos de Teste. A pgina Imprimir Casos de Teste dever ser exibida.
42
Automao de Testes
Nesta pgina voc dever selecionar a Categoria que voc deseja imprimir e configurar as opes de impresso na seo Opes do documento.
43
Automao de Testes
A pgina Atribuir requisitos ao Caso de Teste dever ser exibida, conforme o exemplo abaixo. Nesta pgina voc dever selecionar o Caso de Teste desejado, depois selecionar os requisitos disponveis e, por ltimo, associar o Caso de Teste aos requisitos (por meio do boto Atribuir).
44
Automao de Testes
PS.: Um requisito s pode ser atribudo se este for o Requisito de Operao, ento primeiro cria-se um Requisito Pai <como feature por exemplo> e aps cria-se um requisito operacional vinculado a este Requisito pai.
45
Automao de Testes Os usurios tm a capacidade de filtrar por palavras-chave em: rvore de navegao de especificao de teste; Busca de Casos de Teste de especificao de teste; Adicionar Casos de Teste em um conjunto de testes (plano de teste); "Executar teste" pgina.
46
Automao de Testes Baselines / Releases e Casos de Teste. Se no houver Baselines / Releases criados para um projeto, a tela de execuo no ir permitir que voc execute-a. A tela de mtricas tambm ser exibida completamente em branco.
Cada Baselines / Releases identificado atravs de ttulo. Ele inclui descrio (formato html) e dois estados: Ativo / Inativo; Aberto / fechado.
47
Automao de Testes
Pode-se escolher casos de teste atravs da caixa de seleo e clique em "Adicionar selecionadas" para definir o conjunto de teste. Clique cone de check para selecionar todos os casos de teste em cada Suite de Teste. Todos os casos de teste podem ser adicionados clicando no rtulo sob o ttulo Suite de Teste. Uma certa verso de um caso de teste atribudo a um Plano de Teste. Pode-se atualizar a verso para depois testar se o caso de teste for atualizado. O contedo de uma verso do caso de teste executado no pode ser modificado. Dica: um plano de teste tem apenas um conjunto de casos de teste. Pode-se adicionar novos casos de teste durante o teste, mas isso afeta as mtricas de verses mais antigas, como os novos casos de teste contam como "no executar" para aqueles verses. Na maioria dos casos isto no importante. Se, contudo, isso importante para voc, voc tem duas opes: Criar um plano de teste novo para a segunda fase de testes. Usar palavras-chave para reconhecer as fases de teste dentro de um plano de teste.
48
Automao de Testes
5.6 Plataformas
A Plataforma descreve uma "unidade" de casos de teste que pode ser executada. Por exemplo, uma plataforma pode ser um navegador, um sistema operacional, um equipamento de hardware ou configurao. Um plano de teste pode ter plataformas associadas que so escolhidas quando um caso de teste executado. Um projeto de teste pode ter vrias plataformas que precisam ser testadas. Por exemplo, um site precisa ser testado em diferentes navegadores, ou um aplicativo precisa ser executado em diferentes sistemas operacionais ou equipamentos de hardware. O TestLink chama a isso de conceito de Plataformas. As plataformas so uma maneira de conectar casos de teste em um plano de teste e a uma plataforma especfica de software, equipamento ou configurao.
49
Automao de Testes
Para usar o recurso de plataformas, algumas plataformas devem primeiro ser criadas em "Gerenciamento de Plataforma" (acessvel a partir da pgina principal). Selecione um plano de teste e clique em "Adicionar / Remover plataformas". Atribuir plataformas para um plano de teste, movendo-os para o painel direito e Salvar. Agora casos de teste podem ser adicionados ao Plano de Teste. Isso feito da mesma forma normalmente, como a exceo de que um caso de teste deve ser verificado uma vez para cada plataforma que deve ser executado. O prximo passo atribuir os usurios a executar os casos de teste. Voc livre para associar usurios como voc deseja. Uma possibilidade ter um usurio para executar um caso de teste em todas as plataformas. Outra forma permitir que um usurio execute todos os casos de teste em uma plataforma, ou uma mistura dos dois. Quando mltiplas plataformas so utilizadas na etapa de execuo do TestLink, ele recebe uma opo de filtro adicional. Verifique se a seleo da plataforma est definido para a plataforma que voc est indo para executar em casos de teste. Relatrios de testes incluem a plataforma nas mtricas.
50
Automao de Testes Se voc copiar um Plano de Teste, a urgncia no copiada. Um conjunto diferente de urgncia esperado. O TestLink combina esses dois atributos em nveis de prioridade alta, mdia e baixa. A prioridade deve ajudar a escolher o conjunto certo de execuo para testar em primeiro lugar.
5.8 Marcos
O lder de teste pode definir um marco numa determinada data com um objetivo de percentual esperado de testes finais. Este objetivo pode ser definido por trs nveis de prioridade, no caso de que priorizao de teste permitida.
Selecione a opo "Executar Testes" no menu superior ou na pgina principal para navegar na tela de "Execuo de Caso de Testes". O painel esquerda permite a navegao dentro dos casos de teste atravs de um menu rvore, e o set-up de configuraes e filtros. A janela de execuo mostra informao relevante sobre um caso de teste e permite a entrada de resultados do teste. O painel de navegao constitudo por Configuraes e Filtros no menu de rvore contendo Casos de Teste.
51
Automao de Testes
Os usurios podem especificar o plano de teste para qual caso de teste deve ser executado. Casos de Teste apenas pertencentes a esse plano de teste so mostrados. Os usurios devem especificar a Baseline em teste, selecionando a partir da lista de verses ativas. Sua Baseline mais recente por default definida. Geralmente cada caso de teste executado apenas uma vez contra cada Baseline. No entanto, possvel execut-lo vrias vezes (talvez se o testador cometeu um erro). Filtragem de Casos de Teste Essa tabela permite ao usurio filtrar os casos de teste para navegao inteligente antes de serem executadas. Voc deve clicar em "Aplicar filtro" para aplicar uma nova configurao do filtro. rvore O menu da rvore no painel de navegao mostra a lista escolhida de Casos de Teste no Plano de Teste. Ele permite que o caso de teste apropriado seja aberto para a execuo do teste no quadro direita. Suites de teste no menu so reforadas por um breve status de teste aps o ttulo. Isso d uma contagem de um cdigo de cores de casos de teste: no-executado, passou, falhou e bloqueado, respectivamente.
52
Automao de Testes Status do teste A execuo o processo de atribuio de um resultado (aprovao, reprovao, bloqueado) para um caso de teste para um Build especfica. Um caso de teste 'bloqueado' no pode ser testado, por algum motivo (por exemplo, um problema na configurao impede que uma funo de ser executado). Inserindo Resultados do teste O resultado do teste mostrado atravs de um clique em um Suite de teste ou caso de teste no painel de navegao. O ttulo mostra a Baseline atual e dono. A barra colorida indica o status do caso de teste. A caixa amarela inclui o cenrio de teste do caso de teste.
53
Automao de Testes 1) A ordem na qual os builds so adicionados no plano de teste determina qual build mais recente. Os resultados do mais recente build ter precendentes de builds mais velhos. Por exemplo, se voc marcar um teste como falha no Build 1 e marc -lo como passou no Build 2, seu ltimo resultado ser passou. 2) Se um caso de teste executado mltiplas vezes, sobre o mesmo build, a execuo mais recente ter precedncia. Por exemplo, se Build 3 liberado para a sua equipe e o testador 1 marca como passou 2 horas da tarde e o testador 2 marca como falha 3 horas da tarde, ele aparecer como falhou. 3) Casos de testes classificados como no executados contra um build no so tidos em conta. Por exemplo, se voc marca um caso como passou no Build1e no execut-lo em Build 2, o ltimo resultado ser considerado como passou. A lista dos resultados de cada nvel superior Suite. Total de casos, passou, falhou, bloqueados, no executados e o percentual completo. Um caso de teste completo um processo que tem sido marcado como passou, falhou ou bloqueado. Resultados de nvel superior de Suites incluem todas as sutes mais novas.
54
Automao de Testes O usurio apresentado com uma pgina de consulta com quatro controles. Cada controle definido para um padro o qual maximiza o nmero de casos de teste e builds que a consulta dever ser executada. Alterando os controles, permite ao usurio filtrar os resultados e gerar relatrios especficos para proprietrio especfico, palavra-chave, Suite e combinaes de build. Palavra-chave - 01 palavras-chave podem ser selecionadas. Por padro- nenhuma palavra-chave selecionada. Se uma palavra-chave no est selecionada, ento todos os casos de teste sero considerados independente das atribuies das palavras-chaves. As palavras-chave so atribudas na especificao de testes ou nas pginas de gerenciamento de palavra-chave. Palavras-chave, atribudas aos casos de testes, abrangero todos os planos de testes e abrangem a todas as verses de um caso de teste. Se voc est interessado no resultado de uma determinada palavra-chave, ento voc deve alterar esse controle. Proprietrio: 01 proprietrios podem ser selecionados. Por padro, nenhum proprietrio selecionado. Se um proprietrio no selecionado, ento todos os casos de testes sero considerados independentemente do proprietrio assignado. Atualmente, no h nenhuma funcionalidade de pesquisa de casos de testes para no atribudo. A propriedade atribuda atravs de execuo de Atribuir Casos de Testes e feito em uma base per Plano de Teste. Se voc estiver interessado no trabalho realizado por um determinado testador, voc deve alterar esse controle. Nvel superior de Suite: 0n nvel superior de Suites podem ser selecionados. Por padro, todas as Suites so selecionadas. Apenas Suites, que so selecionadas, sero consultadas para resultar mtricas. Se voc estiver apenas no intested dos resultados de uma determinada Suite, voc deve alterar esse controle. Baseia - 1n builds podem ser selecionados. Por padro - todos os Builds so selecionados. Apenas execues realizadas em Builds que voc selecionar sero tidos em conta quando se produzir mtricas. Por exemplo: se voc quiser ver quantos casos de teste foram executados nos ltimos 3 Builds, voc altera este controle. Palavra-chave, proprietrio e nvel superior de selees de Suite iro ditar o nmero de casos de teste a partir do seu Plano de teste que so usados para calcular por Suite e por mtricas de planos de testes. Por exemplo: se voc seleciona proprietrio = Greg, palavra-chave = Prioridade 1 e todos os testes de Suite disponveis, apenas o casod de teste de Prioridade 1 atribudo a Greg sero considerados. O # Casos de Teste totais que sero vistos no relatrio sero influenciados por estes 3 controles. Selees de build iro influenciar se um processo considerado passou, falhou, bloqueou ou no foi executado. Refira-se a Resultado do ltimo teste de regras
55
Automao de Testes que aparecem acima. Pressione o enviar para avanar com a consulta e exibir a pgina de sada. A pgina do relatrio exibir: 1- Os parmetros utilizados para criar o relatrio. 2- Totais de todo o plano de teste. 3Uma discriminao dos totais por Suite (soma/passou/falhou/bloqueados/no executados) e todas as execues realizadas nessa Suite. Se um Caso de Teste foi executado mais de uma vez em mltiplos Builds, sero exibidas todas as execues que foram registradas contra os Builds selecionados. Contudo, faa um resumo para que Suite s inclua o Resultado do ltimo teste para os builds selecionados.
5.8.10 Grficos
Esta pgina de relatrio requer que o navegador tenha um plugin flash. A lgica do Resultado do ltimo teste usada para os quatro grficos que voc ver. Os grficos esto animados para ajudar o usurio visualizar as mtricas do plano de teste atual. Os quatro grficos fornecidos so: 1. Grfico de pie com a viso geral do que passou/falhou/bloqueou e no executado nos casos de testes; 2. Grfico de barras com os resultados por palavra-chave; 3. Grfico de barras com os resultados por proprietrio; 4. Grfico de barras com os resultados por nvel superior de Suite.
56
Automao de Testes As barras, no grfico de barras, so coloridas para que o usurio possa identificar o nmero aproximado dos casos que passaram, falharam, bloqueados e no executados. Ele utiliza tecnologia flash fornecidas por http://www.maani.us apresentando os resultados em um Formato grfico.
57
Automao de Testes O TestLink construdo com 6 diferentes nveis de permisso padres. Alterando esses direitos de manipulao pelo link de administrao do usurio que pode ser acessado pelo administrador. Estes nveis de permisso so os seguintes: Guest: Um guest s tem permisso para visualizar casos de testes e mtricas do projeto. Executor de teste: Um testador fora da empresa que s tem permisses para executar testes atribudos a eles. Teste Designer: Um usurio pode funcionar completamente com especificao de testes e requisitos. Analista de Testes: Um testador pode ver, criar, editar e excluir casos de testes, bem como execut-los. Faltam testadores para as permisses de gerir planos de testes, gerir projetos de testes, criar marcos ou ceder direitos. Inicialmente testador, testador snior. Lder de teste: Um lder tem todas as permisses como um testador, mas tambm as capacidades de ganho para gerir planos de testes, atribuir direitos, criar marcos e gerenciar palavras-chave. Admininstrator: Um administrador tem todas as possveis permisses (lder plus com a capacidade de gerenciar projetos de testes e usurios). Nota:as necessidades de planos de testes so relacionadas com caractersticas de tambm atribuir um Plano de Teste para estar disponvel. Veja Atribuio de Plano de Teste. Funes de usurio H papis pr-definidos de usurios. O administrador tem a capacidade adequada de alterar os dados dentro do TestLink. Cada usurio tem atribudo apenas um desses papis. Se voc ver a tabela voc ver linhas para cada um dos nveis de permisses (guest, testador, testador snior, lder, administrador). A segunda coluna contm todos os direitos dos diferentes nveis que sero definidos abaixo. Estes nveis foram determinados como norma para o uso, mas eles podem ser editados para definir novas funes (por um administrador experiente). A tabela do usurio contm uma chave estrangeira que aponta para o nvel de permisso adequado na tabela dos direitos.
Atribuio de plano de teste Os usurios podem ver apenas os planos de testes atribudos. Para ganhar permisses de Planos de testes um usurio lder ou administrador deve dar-lhes direitos atravs do link Definir direitos de usurio/projeto dentro de Gerenciamento de Plano de teste. Todos os usurios do sistema, por padro, no tm permisso para ver planos de testes recm-criados(exceto para a criao de Plano de testes que podem ser criados por eles
58
Automao de Testes mesmos). As permisses de Planos de Testes Zero significa que os usurios no vero nenhum Plano de teste no combobox na tela principal. Existe uma tabela com os direitos do plano de teste(ou seja, onde os usurios podero ver qual Plano de teste). Esta tabela constituda de uma combinao de id de usurios e id de projeto. A pgina principal contm um cdigo que verifica se o usurio efetuou login nas permisses adequadas (e, em seguida, mostra os projetos permitidos. No recomendado que este seja cortado.
Mostrar em design: O campo personalizado ser exibido durante a especificao do caso de teste. Exibido na execuo: O usurio ser capaz de atribuir/alterar o valor do campo personalizado durante a especificao do caso de teste: Os campos personalizados devero ser exibidos durante a execuo do caso de teste. Permitir em execuo: O usurio ser capaz de atribuir/alterar o campo personalizado durante a execuo do caso de teste. Os valores atribudos sero salvos.
Exemplo 1. Custom Field: Adicionaritional Notes Type: string applicable to Suites de Teste, to be edited ONLY during Caso de Teste specification, but useful to be seen during test execution. show on design = YES enable on design = YES show on execution = YES enable on execution = NO Exemplo 2. Custom Field: Operating System Type: list applicable to Casos de Teste, to be edited ONLY during Caso de Teste EXECUTION, unused during Caso de Teste DESIGN. show on design =NO enable on design = NO
59
60
Automao de Testes
61
Automao de Testes
62
Automao de Testes
63
Automao de Testes
64
Automao de Testes
65
Automao de Testes Etapa 4: Depois aparecer uma caixa de dilogo perguntando Onde voc deseja colocar os dados? Etapa 5: Escolha uma opo Escolher um XML existente da lista com a primeira clula $A$1.
Etapa 6: Voc ser capaz de ver as seguintes colunas: nome, resumo, etapas e resultados esperados.
Etapa 7: Copie este arquivo em seus dados nesse sentido e salve o arquivo de dados em formato XML (*.XML). Etapa 8: Verifique se o arquivo XML pode ser aberto com a ajuda do internet explorer.
66
Automao de Testes
Etapa 3: Navegue para o arquivo XML, apresente-o e voc ter feita a importao.
67
Automao de Testes
68
Automao de Testes
2) Clicar no .Rar e descompactar os arquivos dentro da pasta C:\wamp\www . 3) Utilizando o WampServer, v em PHPMyAdmin e crie um banco de dados com o nome de Mantis. 4) Execute a aplicao via http://localhost/ 5) Na janela Pre-Installation Check, preencha os campos username com 'root' e o campo password fica nulo. 6) Deixe os valores default nos demais campos. <Altere nome do banco> 7) Pressione o boto Install/Upgrade Database. 8) Abra o seu navegador e acesse (http://localhost/mantis/login_page.php). o seguinte endereo:
9) Faa o login com o usurio padro (administrator/root). Lembre-se de mudar a senha deste usurio. 10) Caso voc prefira utilizar esta ferramenta com todos os textos traduzidos para a lngua portuguesa, ento siga os passos descritos abaixo: 11) Faa o login normalmente com o seu usurio e senha. 12) Clique no menu My Account e ento selecione a opo Preferences. 13) No campo Language selecione a opo "portuguese_brazil". 14) Pressione o boto "Update Prefs".
69
Automao de Testes Para cadastrar uma nova conta de acesso precisamos informar um e-mail vlido e um nico nome de usurio. O e-mail servir para receber informaes sobre as issues. Assim que um novo cadastro feito uma senha randmica criada e enviada para o usurio, que ser trocada logo aps o primeiro acesso.
70
Automao de Testes
Nesta pgina voc poder fornecer diversas informaes sobre o projeto, como por exemplo: o Nome do projeto, Status, Descrio do projeto entre outras informaes. Uma vez que o projeto for cadastrado, voc poder selecion-lo na lista de projetos existentes e inserir informaes adicionais, tais como: SubProjetos, Categorias, Verses, Campos Personalizados, Usurios do projeto, entre outras informaes conforme o exemplo apresentado na figura abaixo..
71
Automao de Testes
72
Automao de Testes
Se for necessrio voc poder ver a lista dos Bugs existentes. Para tal tarefa, voc dever clicar no menu View Issues. A pgina Viewing Issues dever ser exibida. Esta pgina, por default, lista todos os Bugs abertos. No entanto, voc poder configurar filtros especficos conforme a sua necessidade com base nos campos de filtragem exibidos na parte superior desta pgina. O Mantis tambm permite que voc salve o filtro para posterior utilizao.
73
Automao de Testes
importante ressaltar que os Bugs listados so apresentados em diferentes cores. Cada cor significa o status do bug conforme a legenda apresentada na parte inferior desta pgina voc poder clicar sobre qualquer bug da lista a fim de abrir a pgina Viewing Issue e modificar qualquer informao relacionada ao bug.
74
Automao de Testes
Uma vez dentro desta pgina, alm de modificar as informaes do bug, voc poder criar uma associao de relacionamento com outros Bugs (relacionado a, filho de, pai de, etc) e tambm poder selecionar a opo para monitorar o bug e receber um e-mail sempre que alguma informao for modificada.
75
Automao de Testes
76
Automao de Testes
6.1.9 News
O Mantis tambm oferece uma funcionalidade para a divulgao de notcias Novos. Por meio desta funcionalidade, voc poder registrar qualquer novidade ou aviso aos demais usurios do Mantis. Para tal tarefa, voc dever clicar no menu News. A pgina Add News dever ser exibida. A notcia registrada poder ser vista na pgina principal do Mantis.
77
Automao de Testes
78
Automao de Testes
79
Automao de Testes
80
Automao de Testes
81
Automao de Testes
Essa organizao tambm refletida no arquivo XML gerado pela ferramenta para a persistncia dos elementos. Nesse arquivo, cada elemento do script de teste corresponde a um elemento na estrutura XML.
82
Automao de Testes
Quanto a execuo dos testes com o JMeter, ela pode ser feita de duas formas: em uma mquina s ou de forma distribuda, na qual o esforo do teste distribudo dentre diversas mquinas. A partilha do esforo do teste uma caracterstica muito importante e muitas vezes necessria para a correta execuo dos testes de desempenho e estresse. atravs dela que os testadores podem conseguir uma maior fidelidade na recriao de cenrios de teste, pois com a distribuio da execuo do teste entre vrias mquinas evita-se gargalos tanto de processamento quanto de caminhos na rede do sistema sob teste.
83
Automao de Testes 4) Execute o arquivo ApacheJMeter.jar com dois clique, pronto logo se abre a janela principal.
Os dois primeiros elementos citados anteriormente esto presentes no script de teste desde o momento em que o JMeter iniciado. J o Thread Group deve ser adicionado manualmente. A primeira ao a ser feita aps a adio do Thread Group configurar o Test Plan, ilustrado abaixo.
84
Automao de Testes
Nele possvel definir um nome identificador para o Plano do Teste, adicionar comentrios, criar variveis globais, que so visveis por todas as requisies do plano de teste em questo, alm de permitir a definio de parmetros ou comportamentos comuns a todos os testes. Alm disso, o Test Plan contm duas caixas de seleo (checkbox): "Functional Testing", que se selecionada faz com que o JMeter grave os dados retornados do servidor para cada requisio feita. Essa opo interfere significamente no desempenho da ferramenta e, portanto, no deve estar marcada no caso de um teste de desempenho ou estresse. "Run each Thread Group separately", com o qual pode-se definir se os grupos de usurios virtuais sero executados simultaneamente ou sequencialmente.
85
Automao de Testes Como supracitado, o Thread Group, ilustrado na prxima figura, representa um grupo de usurios virtuais. Podemos ter vrios Threads Groups ligados ao Test Plan, e todos os outros elementos, com exceo do WorkBench, devem ser adicionados como filho de algum Thread Group.
Na criao de testes com o JMeter, aps configurar o Test Plan, o testador deve configurar o Thread Group, ou seja, deve definir suas propriedades. "Number of threads": o nmero de threads que executaro os testes, ou seja, o nmero de usurios virtuais. Cada thread ir executar o plano de teste de forma independentemente das outras threads que esto executando, por isso threads mltiplas so usadas para simular conexes concorrentes na aplicao sob teste; "Ramp-Up Period": define a frequncia de lanamento das threads. Se forem definidas 10 threads e um ramp-up de 100s, ento o JMeter levar 100s para iniciar todas as threads, ou seja, uma thread ser iniciada a cada 10s. "Loop Count": define quantas vezes o plano de teste ser executado. Logo, caso seja marcado o checkBox "Forever", o teste entrar em execuo infinta e o valor definido no Loop Count ser desconsiderado. "Scheduler": atravs do qual pode-se definir um horrio para o incio e trmino da execuo dos testes. Ao contrrio das citadas anteriormente, a configurao dessa propriedade opcional.
86
Automao de Testes
7.3.2 Sampler
Samplers so componentes que representam cada requisio que o JMeter far ao servidor quando o plano de teste for executado. No caso de um sistema Web, cada operao ou mudana de pgina corresponde a uma requisio. O JMeter contm vrios tipos de Samplers, como por exemplo, Requisies FTP, Requisies HTTP, Requisies JDBC, dentre outros. Cada Sampler contm vrias propriedades que podem ser configuradas. Como o objetivo deste artigo apresentar a automao de testes de desempenho e estresse para aplicaes web, apresentamos a seguir apenas a requisio HTTP. HTTP Request O HTTP Request permite o envio de requisies HTTP/HTTPS ou arquivos para um servidor Web. Na figura abaixo apresentamos um exemplo de um HTTP Request adicionado a um Plano de Teste.
Dentre as propriedades desse elemento podemos destacar: "Name": o nome da requisio; "Server": URL ou endereo ip do servidor Web;
87
Automao de Testes "Port": a porta a ser usada. Por default ela j est configurada como 80. "Protocol": define se a requisio HTTP, HTTPS or FILE (para enviar arquivo ao servidor); "Method": define o mtodo de submisso dos dados. Os principais mtodos so o GET, no qual os dados so enviados na prpria URL, e POST, onde os dados so enviados "ocultamente"na requisio, ou seja, no so visveis na URL; "Path": o path da pgina testada; "Send Parameters With the Request": no qual adicionamos todos os parmetros e os seus respectivos valores para serem enviados junto com a requisio;
88
Automao de Testes
Loop Controller O Loop Controller , imagem abaixo, o componente no qual possivel determinar quantas vezes um certo grupo de requisies deve ser executado. Esse elemento atua independentemente da propriedade "Loop Count"do Thread Group. Assim, se o plano de teste foi configurado para ser executado trs vezes e existe uma "requisio A"que est como filho de um Loop Controller configurado para ser executado 2 vezes, ento a requisio em questo ser executada 3 * 2 = 6 vezes.
89
Automao de Testes Once Only Controller O Once Only Controller, ilustrado na figura abaixo, permite que as requisies controladas por ele, assim como seus filhos, sejam executados uma nica vez por cada thread. Dessa forma, a requisio que est sobre o efeito desse elemento s ser executada na primeira iterao do teste. Testes que requerem um nico login para estabelecer a sesso podem ser criados utilizando uma requisio que faa o login como filho de um Once Only Controller. Assim, o login s executado apenas uma vez por cada thread.
Interleave Controller O Interleave Controller usado para alternar entre seus filhos a cada iterao, com base na ordem em que eles esto dispostos. No exemplo ilustrado na prxima imagem, apresentamos um teste que foi configurado para iterar duas vezes, tendo a seguinte sequncia de execuo: Requisio A, Requisio B, Requisio A, Requisio C.
O JMeter tambm possui o Random Controller, que similar ao Interleave Controller. A nica diferena entre eles o fato desse no alternar entre as requisies com base na ordem em que foram colocadas. O Random Controller simplesmente escolhe aleatoriamente um dos seus filhos a cada iterao.
90
Automao de Testes If Controller Com o If Controller possvel colocar uma condio que ser avaliada para definir se o seu filho vai ser executado ou no. No exemplo ilustrado na figura abaixo, a "requisio A"s ser executada se a varivel "var"tiver valor menor que 10. importante observar tambm como feita a referncia a variveis no JMeter: devemos utilizar o nome da varivel (var) entre chaves e precedida de cifro ($).
7.3.4 Listeners
Para visualizar os resultados dos testes necessrio adicionar um Listener ao plano de teste. Os Listeners capturam os dados das informaes durante a execuo dos testes e criam relatrios e grficos com os resultados obtidos. Alm de exibir os resultados, os listeners tambm possibilitam a gerao de um arquivo, que pode ser inclusive uma planilha eletrnica, contendo tais resultados. Existem vrios tipos de Listeners, mas apenas trs sero abordados a seguir : "View Results Tree", "Assertion Results" e "Graph Results". View Results Tree O View Results Tree um listener que mostra uma rvore com as respostas de todos os samplers, permitindo assim que o testador veja o resultado de cada sampler que foi executado. Atravs dele, o usurio tambm toma conhecimento do tempo gasto para obteno da resposta, alm de outras informaes associadas requisio, como por exemplo, a URL acessada e os parmetros enviados. Esse elemento tambm permite visualizar o resultado de vrias formas diferentes, como por exemplo, no formato texto, HTML ou XML. A figura abaixo ilustra a utilizao desse listener. A partir da figura podemos observar que esse Listener ideal para visualizar o que exatamente o usurio final deveria de acordo com cada requisio.
91
Automao de Testes
Assertion Results O Assertion Results permite uma visualizao do resultado das asseres que falharam. Alm de indicar qual requisio teve falha na assero, ele indica qual assero falhou (Response ou Duration), e o porqu da falha. No exemplo ilustrado na figura abaixo, por exemplo, ele mostra que o Response Assertion da "requisio A"falhou, pois ele procurou pela palavra "teste"e no a encontrou na pgina resultante da execuo dessa requisio.
92
Automao de Testes Graph Results O Graph Results, ilustrado na figura abaixo, gera um grfico que plota os tempos de todas as requisies, o desvio padro, a mdia e a taxa de requisies realizadas por segundo. O testador tem a possibilidade de optar por quais desses dados ele quer visualizar no grfico e esse Listener, assim como os outros, permite a indicao de um arquivo para exportar a visualizao gerada.
93
Automao de Testes HTTP Cookie Manager Esse elemento, ilustrado na figura abaixo, pode ser usado de duas formas: sem preencher nenhum valor ou configurando o Cookie manualmente. No primeiro caso, esse componente guarda e envia os cookies como um browser e atua como se houvesse um Cookie Manager para cada thread. Isso quer dizer que aps o JMeter receber a resposta de uma requisio, se ela contiver um cookie, esse ser armazenado e enviado para as prximas requisies para o mesmo site. J no segundo, quando o testador adiciona manualmente um cookie, o Cookie Manager servir para compartilhar o mesmo cookie entre todas as threads.
HTTP Request Defaults Esse elemento permite a definio de propriedades para serem utilizados por todas as requsisies HTTP da sua mesma hierarquia ou e, uma hierarquia inferior. Se um teste contiver, por exemplo, 30 requisies para um mesmo site, ento elas provavelmente acessaro o mesmo servidor. Assim, ao invs de definirmos em cada HTTP Request o servidor, colocamos o endereo do servidor apenas no HTTP Request Defaults, ilustrado na figura abaixo, restando s HTTP Requests definir apenas os path e os parmetros das pginas testadas.
94
Automao de Testes
7.3.6 Assertions
Os Assertions permitem a validao das respostas recebidas do servidor que est sendo testado. Com as assertions, o testador obtm a certeza de que a aplicao est retornando o resultado esperado. Isso porque ela faz com que o JMeter procure determinado texto dentro do contedo retornado de uma requisio. Se o texto no for encontrado a assero falhar. Em testes para servidores Web, duas assertions so muito utilizadas: "Response Assertion"e "Duration Assertion". Response Assertion O Response Assertion faz com que o JMeter procure por um determinado texto, definido pelo testador, na requisio obtida como resposta. A procura por esse texto feito utilizando-se o sistema de expresso regular presente na ferramenta. Caso o texto no seja encontrado, a assero falhar e aparecer no Assertion Results em vermelho, aparecendo destacado no View Results Tree, caso esses elementes estejam adicionados a um plano de teste. Na figura abaixo , por exemplo, temos uma Response Assertion que possui um nico objetivo, que encontrar a palavra "teste"na reposta da requisio a qual ele est associado.
95
Automao de Testes
Duration Assertion O Duration Assertion, ilustrado na figura abaixo, usado para definir o tempo mximo que o sistema tem para responder a uma requisio. Caso a obteno da resposta demore mais que o tempo definido, a assero falhar. Essa assertion muito utilizada, pois a partir dela podemos verificar o atendimento a um dos principais requisitos de desempenho: o tempo de resposta das requisies.
7.3.7 Timers
Por default, o JMeter envia as requisies das threads sem pausar um tempo entre elas. Isso significa que as requisies sero disparadas rapidamente, uma seguida da outra. Como os usurios sempre analisam os resultados obtidos antes de executar a prxima ao, Timers devem ser usados para simular paradas entre as requisies, tornando-as mais realistas. Existem vrios tipos de timers, mas para simplificar, apresentamos aqui apenas o mais simples deles, o "Constant Timer", ilustrado na figura abaixo. Esse timer define o tempo em milisegundos que cada thread deve aguardar entre as requisies.
96
Automao de Testes
7.3.8 Pre-Processors
Um Pre-Processor um elemento que executa certas aes antes da requisio ser enviada. Eles so utilizados para modificar caractersticas ou atualizar valores de variveis das requisies antes que estas sejam executadas. Dentre os Pre-Processors disponveis temos o Counter, ilustrado na figura abaixo, que representa um contador que pode ser referenciado em qualquer lugar do Plano de Testes. Ele pode ser usado, por exemplo, para colocar um valor nico em um certo campo em cada iterao. Para isso, basta colocar como valor desse campo uma string qualquer seguido da referncia varivel que contm o valor do contador, o "Reference Name"do contador. Suponhamos, por exemplo, que temos como parmetro de uma requisio, um campo com nome "login", cujo valor deve ser nico toda vez que essa requisio for executada. Uma possvel soluo seria acrescentar um contador, definir suas propriedades (valor inicial, vamor mximo, incremento, nome da varivel) e colocar "login${cont}", onde "cont" o nome da varivel do contador, como valor do campo "login".
97
Automao de Testes
7.3.9 Post-Processors
Um Post-Processor um elemento que executa uma ao depois que uma requisio executada. Geralmente eles so utilizados para processar os dados recebidos da requisio e os seus resultados so utilizados para modificar as requisies seguintes. Dentre os Post-Processors, destacamos o Regular Expression Extractor, ilustrado na figura abaixo, que permite ao testador extrair valores da resposta proveniente do servidor a partir de expresses regulares.
Automao de Testes
Em seguida, adicionamos os listeners, o View Resulsts in Tree e o Graph Results. E como os testes seriam todos para um mesmo servidor, acrescentamos tambm o HTTP Request Defaults, configurando-o com o endereo do servidor que ser testado e o HTTP Cookie Manager, pois para acessar o sistema preciso logar e necessrio manter a sesso do usurio logado para permanecer no sistema. O estado do Test Plan com essas cofiguraes ilustrado na figura abaixo.
Por fim, basta colocar as requisies que realizam as operaes, bem como as asseres para verificar o atendimento aos requisitos de desempenho. Primeiro criamos a
99
Automao de Testes requisio "Login", cuja funo fazer o usurio virtual logar na pgina. Como j tnhamos configurado o HTTP Request Default, s precisamos agora definir o path e os parmetros da pgina testada, que no caso da requisio "Login"so os campos login e senha. Existem caractersticas importantes que devem ser observadas nesse ponto. Em primeiro lugar, o path supracitado no qualquer path do sistema. O path em questo o path que tratar os dados provenientes da requisio. Logo, para a configurao correta, muitas vezes necessrio olhar o cdigo-fonte da pgina ou algum documento que tenha toda a configurao dela, a fim de descobrir qual pgina receber aqueles dados. Na pgina de login do usurio, por exemplo, verificamos que a pgina que trata os dados a prpria pgina que os recebe. Assim, o path dessa requisio o mesmo path onde o usurio insere os dados. Isso pode ser facilmente visualizado atravs do cdigofonte da pgina onde o usurio insere o login e a senha, ilustrado na prxima figura. Nele observamos que a ao do formulrio que recebe o login e a senha est em branco, concluindo ento que ela prpria recebe e trata o login e a senha.
Outro detalhe que merece ser mencionado est relacionado aos re-direcionamentos de alguns sistemas Web. No sistema utilizado neste trabalho, por exemplo, quando o usurio efetua a operao de login, o sistema redireciona para a mesma pgina, se o login falhar, ou para a pgina principal caso o login seja bem sucedido. O problema que se a opo Follow Redirects no estiver marcada, o JMeter no "seguir"esse redirecionamento e, portanto, continuar na mesma pgina para o qual os dados foram enviados. Assim, devemos desmarcar a opo Redirect Automatically, que no segue os re-direcionamentos que vem como resposta de uma requisio, e marcar a opo Follow Redirects. Alm disso, devemos colocar como mtodo de submisso aquele utilizado pela pgina (GET,POST,...) e adicionar os parametros necessrios. No nosso exemplo, a partir do cdigo-fonte, ilustrado na fugura anterior, identificamos que o mtodo utilizado o POST e observamos que os campos necessrios no eram somente "login"e "senha".
100
Automao de Testes Para o correto funcionamento da requisio necessrio colocar tambm o campo "enviado". Isso porque os campos hidden so usados pela pgina para identificar a submisso de dados, logo so campos necessrios para a execuo da operao requisitada. Nesse caso devemos preencher os valores respectivos dos campos login e senha, colocando tambm o valor do campo "enviado"como sendo o valor definido na sua propriedade value, ou seja, o valor "ok". Como resultado de todas essas configuraes, o login foi bem sucedido, como visto na figura abaixo.
Como basta um login para cada usurio virtual, colocamos a requisio de login como filho do controlador Once Only Controller. Continuando a automao do teste, inserirmos uma Response Assertion, para nos certificarmos que a pgina alvo foi alcanada e um Duration Assertion, para medirmos o tempo gasto para responder a essa requisio. Por ltimo, devemos criar as outras requisies seguindo os mesmos passos: descobrindo o path, colocando os campos, o mtodo, adicionando um duration e um response assertion. Feitas todas as requisies, notamos que algumas asseres da requisio de Insero de Usurio falhavam. Observamos ento que isso acontecia porque na insero de Usurio o campo "login", que nesse caso era o nome de login do usurio, deveria ser nico para cada usurio. Adicionamos ento um Count, e modificamos o valor do campo login para usuario${cont}, em que "cont" o nome da varivel que contm o valor do contador. Isso significa que durante a execuo desses testes estamos inserindo usurios com os logins usuario1, usuario2, usuario3, etc, ou seja, criaremos um login nico para cada
101
Automao de Testes usurio. Feito isso, temos agora um teste automatizado de desempenho e estresse para o caso de uso Usurio, teste esse visualizado na figura abaixo.
Alm da construo dos testes, a anlise dos seus resultados importante para se identificar as reas crticas do sistema. Os resultados da execuo do nosso exemplo, em forma de grfico, podem ser visualizados na prxima imagem. Com esses dados, aliados aos resultados exibidos no View Results Tree, adicionado ao plano de teste, podem ser utilizados pelo testador para avaliar sobre o atendimento da aplicao aos requisitos de desempenho existentes.
102
Automao de Testes
103
Automao de Testes
No menu esquerda, clique em DOWNLOAD para baixar o software. Nesta primeira parte, a pgina da ferramenta Badboy informa aos usurios, que a mesma est
104
Automao de Testes disponvel gratuitamente. Mas, necessrio verificar o contrato de licena antes de baixar o aplicativo. O Cadastro para baixar o software solicitado, mas toda a informao opcional, voc poder pular esta etapa clicando no boto (Continue >>).
Ateno: Esta etapa opcional. O download da verso 2.1.3 recomendado para novos usurios. Mas, voc pode optar por baixar verses mais antigas que esto mais estveis, ou ainda, as verses beta que tm caractersticas melhores, mas no so to bem testado. Abaixo as verses que se encontram disponveis:
105
Automao de Testes
Ao clicar no link Download, a janela exibida na figura abaixo abrir automaticamente, observe:
O prximo passo clicar novamente no boto <Download> para baixar o arquivo de instalao do aplicativo. Na sequncia, o usurio visualizar um feedback (retorno da informao) de que o software est sendo salvo em um diretrio do seu computador. Normalmente, os arquivos so direcionados para a pasta Downloads, no caminho C:\Downloads.
106
Automao de Testes
Para prosseguir com os procedimentos de instalao, clique duas vezes no arquivo BadboyInstaller-2.1.3.exe. Caso voc estiver baixando o software atravs do Sistema Operacional Windows, a janela ser mostrada na tela:
A figura abaixo apresenta a tela em que o usurio deve aceitar a licena da ferramenta BadBoy para fazer uso das funcionalidades do software. Para continuar com a instalao, clique no boto em destaque abaixo:
107
Automao de Testes A prxima imagem exibe o caminho em que a ferramenta est sendo salva, bem como o diretrio que conter o arquivo executvel:
Ao clicar no boto <Install>, o usurio visualizar a janela que mostra a extrao dos arquivos do software.
Em seguida, abre-se uma tela perguntando ao usurio se o sistema pode adicionar o aplicativo aos Programas do seu computador.
108
Automao de Testes
Caso a ferramenta no abrir automaticamente aps voc finalizar a instalao, acesse menu >> Todos os programas, e selecione o programa BadBoy, conforme o cone em destaque:
109
Automao de Testes
8.2
Conhecendo o BadBoy
8.2.1 Gravando Como o Badboy trabalha no conceito de Record-and-Play (gravar e executar), voc percebe que logo que iniciamos o programa o modo gravao j est ativo, a fim de capturar todas nossas aes nas iteraes das pginas web. Podemos ativar ou desativar a gravao pelo boto Record:
110
Automao de Testes
Sabemos que o mesmo est ativo quando o boto pressionado palavra recording no ttulo do programa como na imagem acima.
ou quando h a
Ento sempre que voc quiser parar uma gravao necessrio clicar sobre o boto Record ou sobre o boto Stop Playing conforme abaixo:
8.2.2 Criando testes Aqui no badboy h distino entre Test Suite (Suite de Teste), Test (Teste) e Step (passo). Essa separao facilita no agrupamento de funcionalidades. Um Test Suite a maior o maior na hierarquia, sendo de certo modo o nosso caso de teste, agrupando diversos Tests e diversos Steps. Um Test pode ser utilizado como um agrupador de funes executadas cque possuam relao entre si, como por exemplo, Efetuar login sendo que cada Test pode ter uma ou mais iteraes. Um Step uma ao do sistema, geralmente cada ao de requisio tratado como um passo. Por exemplo: toda vez que clicamos e algo, seja um boto ou link numa pgina web ele gera uma requisio. Assim que entramos no Badboy a estrutura bsica da rvore de Script, exibe a organizao como Test Suit, Test e Step:
Automao de Testes
A figura acima mostra um script que foi criado para pesquisar o site da Alfamdia no site Google. Executando Para executarmos os scripts de testes tremos de utilizar os botes localizados na barra de ferramentas, ou clicando com o boto direito sobre o Test Suite, Test, ou Step desejado.
112
Automao de Testes
H duas formas de executarmos os scripts: passo-a-passo ou execuo contnua. Para executarmos o passo-a-passo temos de clicar no boto [Play] ou se for execuo contnua temos de clicar em [Play All]. Play executa o conjuntos de Tests (para execuo e verficao) do browser, para seguir com a execuo basta clicar em [Play] novamente. Play All Rewind executa todo o script sem esperar pela verificao do browser. volta um estado de execuo. executa somente o resquest selecionado.
113
Automao de Testes
E Test1 repita o mesmo processo com um nome de sua escolha. Em Step, clique duas vezes sobre ele, ser exbida a pop-up Documentation . No campo Name for this item preencha com <Acessando o Google>. Na barra de URL informe o endereo: www.google.com.br e clique em [Enter]. Uma request ser criada contendo www.google.com.br e uma response associada com o tempo de carregamento.
114
Automao de Testes
Na barra de ferramentas clique no boto [Create new step] , ser criado um novo step chamado Step2. Altere o nome deste para <Preencher a caixa de pesquisa com "Alfamdia"> . N pgina do Google informe Alfamdia e clique em [Pesquisa Google] . Uma request ser criada contendo /search, juntamente a uma response e vrios outros parmetros.
Crie outro Step e chame-o de < Verificar a existncia desta palavra>. Selecione o texto na gina do Google conforme abaixo:
115
Automao de Testes
V na barra de ferramentas e clique no boto [Create Easy Assertion] . Na revore do script de test ser criado um item Check for text, clique duas vezes sobre ele e altere o valor de Action para <Mark as Failed>.
Essa assero verificar se existe a palavra Alfamdia na pgina do Google, caso no existe o badboy marca como falha e continua a execuo do script.
116
Automao de Testes Crie um novo step e coloque seu nome como < Clicar em "Alfamdia">, clique no link da lista de resultado de busca do Google ode esteja o da Alfamdia. Ser criado um request para o site da Alfamdia.
117
Automao de Testes
No entanto, existem tambm algumas desvantagens importantes: Em alguns casos, os requests podem ser mais difceis de se trabalhar. Isto porque os requests substituem completamente as informaes enviadas da pgina web para o servidor com as informaes HTTP gravadas. s vezes, as pginas web colocam informaes na pgina que tem de ser especialmente calculado toda vez que um usurio vai para a pgina. Nesse caso, os requests precisam ter seus parmetros alterados para usar variveis depois de grav-los. Enquanto Requests so independentes do layout e da aparncia, s vezes isso pode ser uma desvantagem. Por exemplo, imagine que voc edite uma pgina e apague acidentalmente o boto de "logon". Voc provavelmente gosta que seu teste falhe para que voc possa encontrar e corrigir o problema. No entanto, quando voc usa requests isso no vai acontecer! Em vez disso, o Badboy vai jogar a solicitao da mesma forma, independentemente de o boto de logon est l ou no. Claro, voc pode verificar explicitamente se o boto de incio de sesso est l usando um Assertion, mas para isso voc teria que criar a assero de antecedncia - que seria muito trabalhoso para verificar cada item que voc gravar dessa maneira. Em vez disso, o modo de navegao pode ajudar a superar este problema.
Automao de Testes Em algumas pginas muito mais fcil de se trabalhar. Isto especialmente verdadeiro para pginas complexas, tais como pginas de logon. A razo que a navegao repetir a interao com o navegador e deixar o navegador fazer o trabalho de criao do request. Porque navegaes explcitas exercitam a interface do usurio que so muito melhores para os problemas que travam caso a interface esteja quebrada. No exemplo acima, para o mtodo de request, se voc tivesse gravado o seu boto de "logon" como navegao o teste seria um fracasso se algum tivesse apagado o boto da pgina. A principal desvantagem do modo de navegao que muitas vezes voc no pode usar este modo para a execuo de testes de carga. Isso ocorre porque o mecanismo de teste de carga executado sem exibir qualquer interface de usurio, e, portanto, no pode executar Navegaes. Outra desvantagem que os seus testes depender dos itens estarem presentes e corretos na interface utilizada para o trabalho. Assim, se o seu objetivo principal apenas para testar se a funcionalidade do seu site funciona sem se preocupar com a interface do usurio, o modo de request pode ser melhor.
A diferena entre estes dois modos muito importante. A escolha que voc faz na gravao ter um grande efeito sobre a forma como seus scripts se adaptaro s mudanas em seu site.
8.4.3 Navigations
Navigations so um tipo de item no Badboy, que registra cliques ou ativao de elementos de interface do usurio na janela do navegador. Quando voc gravar uma navegao, ele encontra o elemento browser que foi clicado (ou navegou de outra forma, por exemplo, clicando em espao ou entrar) e se recorda dele. Quando voc reproduz, o Badboy encontra o mesmo elemento e simula novamente um clique sobre ele para que o navegador execute a mesma navegao novamente.
119
Automao de Testes
Tipo de Navegao
Descrio
Representa um clique em um link. Isto pode ser qualquer tipo de ligao, incluindo um link de imagem ou de outro contedo no textual. Um clique sobre um boto. Estes so geralmente botes em formulrios, tais como botes de envio. Um clique sobre um item diverso na pgina. Freqentemente estas ocorrem quando na pgina foi utilizado um JavaScript para responder a "onclick" cliques em elementos da pgina que gera numa navegao de pgina ou um envio de formulrio.
120
Automao de Testes
Propriedade
Element Reference
Descrio
Isto identifica o elemento a ser navegado. Como este ser interpretado depende do tipo de referncia.
121
Automao de Testes Determina como o texto de referncia usado. For Visible Text, a referncia interpretado como o rtulo ou o contedo da pgina visvel que as exibies de elementos (por exemplo, o contedo exibido por um link, o texto em um boto ou uma dica de ferramenta que descreve o item). For Id/Name, a referncia interpretado como um ID ou conjunto nome no elemento a ser navegado. Se voc escolher "JavaScript Reference", o Badboy ir executar o texto como JavaScript que deve retornar o item a ser navegado. Voc pode usar isso para escrever uma lgica mais complexa para encontrar o elemento a ser navegado.
Element Type
Define o tipo de elementos que devem ser considerados para combinar o texto de referncia. Isso ajuda a garantir Element Filter que o Badboy escolher o elemento correto por triagem, fora todos os elementos que no combinam com o filtro. Voc pode escolher "Links", "Buttons" ou "All Elements". Faz com que o Badboy utilize a ocorrncia especificada do elemento correspondente na pgina. Por exemplo, se houver trs botes chamados 'Sair' na pgina, voc pode fazer o Badboy usar o terceiro, especificando "2" na propriedade Index Index. Note que esta propriedade default "0", assim que a primeira ocorrncia (o padro) for especificado usando o "0" e o segundo especificado usando "1" e assim por diante. Use Regex Match Faz com que a navegao trate a referncia como uma expresso regular durante a tentativa de combinar elementos da pgina. Isso til quando elemento que deseja acessar muda a cada execuo. Esta opo s se aplica ao "Visible Text Reference" tipo de referncia.
Se voc tiver problemas na sua navegao para localizar o elemento certo, voc pode clicar sobre a navegao e escolher "Highlight Element" para mostrar qual elemento na pgina ser o alvo. Se ele atinge o caminho errado, ento voc pode incrementar a opo "Index" nas propriedades para encontrar o prximo item na pgina at encontrar o elemento correto.
8.4.8 Variveis
As variveis so uma caracterstica fundamental do Badboy. Elas permitem que voc personalize itens de script como so reproduzidas em tempo de execuo, de modo que voc possa criar scripts que se comportem de forma inteligente em vez de simplesmente
122
Automao de Testes repetir a mesma ao e outra vez. Esta seo descreve como voc pode adicionar e usar variveis em scripts do Badboy.
123
Automao de Testes
124
Automao de Testes
8.4.15 Assertions/Asseres
Testar um site pode ser uma tarefa frustrante tediosa e montona. O Badboy ajuda a facilitar essa tarefa, automatizando a reproduo de scripts de teste, mas voc ainda vai adoecer de ver cada tela, para ver se funcionou da forma esperada. Voc pode se perguntar, no poderia o Badboy ajudar com isso tambm? Este o lugar onde Asseres entram em jogo.
O ponto de interrogao indica que a assero no foi testada ainda. Quando a assero executar, ir mudar para um carrapato ou uma cruz, dependendo se a assero encontrou para ser verdadeira.
125
Automao de Testes
8.4.18 Checks
Uma assero por si s no ir verificar nada e sempre passar - voc precisa adicionar Checks a partir da caixa de ferramentas para ele descrever as propriedades da pgina a ser verificada. Existem vrios tipos diferentes de itens de Checks que Badboy suporta. A tabela abaixo mostra alguns dos tipos diferentes:
Nome
Content Check Response Check Color Check
cone
Descrio
Verifica a presena de algum texto na pgina. Verifica caractersticas de tempo de resposta e tamanho Verifica cores especficas na pgina. Voc pode especificar uma gama de cores e localizao aproximada para permitir pequenas variaes. Verifica o resumo das informaes para itens no script. Por exemplo, ele pode verificar o nmero de vezes que um item foi executado, havia erro ou expirou. Executa JScript que voc forneceu e passa ou no a assero com baseando se o JScript retorna "verdadeiro" ou "falso". Verifica o valor de uma varivel para ver se ele corresponde a uma expresso regular que voc forneceu. Procura por uma janela com a legenda que voc especificar e, opcionalmente, olhar para uma janela filho (como um boto, um campo de texto, caixa, etc) com o texto especificado. Esta verificao no corresponde texto no contedo da web, apenas em janelas nativas.
Summary Check
Automao de Testes
Statistic
Played Succeeded Failed Assertions
Description
O nmero de itens de script que executou e retornou uma resposta. O nmero de itens de script que executou e retornou uma resposta bem sucedida. O nmero de itens de script que executou e retornou uma resposta de erro
O nmero de asseres que falharam.
Warnings
O nmero de Warnings gerados. Os Warnings so problemas que ocorrem durante a execuo que no a impedem de concluir, mas podem indicar problemas com o script ou o seu site. Por exemplo, se uma pgina vivencia erros de JavaScript, ou se um Form Populator executa mas no consegue encontrar o formulrio especificado ento warnings sero registrados como parte da resposta para cada item.
O nmero de Timeouts que ocorreram.
Timeouts
Avg Time (ms) A mdia de tempo em milissegundos para itens que executaram e receberam uma resposta. Max Time O tempo mximo para qualquer gravao individual que teve (ms) resposta.
8.6 Ferramentas
Usando Data Sources
127
Automao de Testes Aplicaes sofisticadas podem precisar testar o mesmo script usando uma srie de valores de a sua entrada. Por exemplo, voc pode querer testar todas as condies de limite para uma operao , o que acontece quando algum pedir quantidades de 0, 5, 10, 1000 de um item em particular? Fazer este tipo de operaes em que voc deseja executar o mesmo script ao longo de muitos valores diferentes para um parmetro (ou varivel) muito fcil ligando seus scripts a uma fonte de dados como um arquivo de banco de dados de planilha ou texto. O Badboy suporta a leitura de valores para as variveis atravs de duas tcnicas diferentes: Usando uma ferramenta Setter varivel da caixa de ferramentas; Utilizar fontes de dados ODBC para ler diretamente a partir de um banco de dados ou planilha; Esta seo descreve a segunda dessas opes: como voc pode conectar o Badboy diretamente a uma fonte de dados, como um banco de dados ou uma planilha. Isto significa que se voc configurar uma fonte de dados ODBC (que pode ser qualquer coisa desde um banco de dados Oracle a um arquivo de texto separado por vrgulas), ento o Badboy pode ler valores de variveis a partir dele e quando as variveis so incrementadas no seu script ele ir percorrer os valores em sua fonte. Isso ajuda a utilizar um arquivo do Excel como um exemplo - mas lembre-se que voc pode usar qualquer fonte ODBC. Outra forma de ler os dados do Excel primeiro exportar os dados da planilha no formato CSV selecionando o Arquivo > Salvar como, e em seguida, escolher CSV como o formato de arquivo em Excel. Uma vez exportado como CSV, voc pode ler dados em suas variveis usando o "contedo do arquivo" opo em uma ferramenta de Variable Setter. Por padro O Badboy requer fontes de dados para satisfazer determinados requisitos. (Nota:. Voc pode mudar ou evitar esses requisitos, se voc souber escrever SQL para sua fonte de) 1. Todos os valores para todas as variveis devem aparecer em uma nica tabela; 2. A tabela deve ter ttulos de colunas que correspondem aos nomes de variveis que voc deseja ler; 3. Os valores para as variveis devem aparecer nas colunas correspondentes; 4. Opcionalmente, pode incluir uma coluna chamada "SEQ". Se esta coluna existe, ento ele ir ser usada para ordenar os valores que sero lidos a partir da fonte de dados. Deve ser um tipo de dados classificveis (valores inteiros so sugeridos). Note que, se a coluna no existe, ento no h garantia sobre a ordem na qual os valores sero usados. Aqui mostraremos como um exemplo de planilha Excel pode satisfazer esses critrios:
128
Automao de Testes
Isso mostra como voc poderia criar um arquivo do Excel para carregar os valores para as variveis "Pieces" e "weight". Note que todos os nomes so case sensitive, e que em alguns casos o ODBC pode converter os nomes para upper case, sem pedir a voc. Voc vai precisar experimentar com sua fonte de dados para fazer isso direito. Adicionando Data Source Data source so configurados no Badboy, adicionando os itens "data source" da sua caixa de ferramentas em seu script. A imagem abaixo mostra como um item de Data Source exibido depois de adicionar a um script:
Quando voc adicionar um item de Data Source para o seu script voc ter como escolher todas as fontes de dados ODBC em seu sistema. Alguns Data Source devem ser definidos com antecedncia usando o painel de controle do seu computador (a partir do menu Iniciar, escolha Configuraes> Painel de controle > Ferramentas Administrativas > Fonte de Dados (ODBC) (depende da verso do windows) . Outras fontes de dados, como por exemplo arquivos do Excel, podem ser acessados diretamente do Badboy. Para arquivos do Excel deve haver uma "Excel Files" na opo do menu drop-down (voc deve ter o Excel, juntamente com seus drivers ODBC instalados). Selecione esta opo e o Badboy ir ler o arquivo e mostrar as planilhas dentro. Voc deve ento selecionar a planilha a partir da qual voc gostaria que Badboy carregasse os valores. Depois de ter selecionada a planilha, no Badboy, voc voltar para a pgina de Data Source Properties onde voc pode selecionar outras preferncias para como que dados devem ser carregados. O diagrama abaixo mostra a pgina de propriedades para configurar uma fonte de dados:
129
Automao de Testes
Um cenrio muito comum carregar valores de uma fonte de dados e, em seguida, repetir uma etapa para cada linha de valores na fonte de dados. O Badboy faz isso com uma forma muito fcil de fazer, usando as propriedades de looping de Step. Voc pode fazer isso tomando as seguintes aes: Adicionar a fonte de dados para o seu script para carregar os dados; Aps a fonte de dados, adicionar um novo Step; Coloque as aes que voc deseja que ocorra para cada linha do conjunto de dados para o novo Step; Execute a fonte de dados uma vez para carregar as variveis;
130
Automao de Testes Ajuste a nova etapa dar um loop sobre uma das variveis carregadas por sua fonte de dados; Quando tiver terminado, seu script seria algo parecido a figura abaixo:
Descrio
Inicia o script aps abrir o documento. Reproduz inteiro depois de abrir o documento, sem parar em Passos. Provoca o Badboy para sair automaticamente quando chega ao final do script. Define uma varivel para o script para usar. Exemplo: badboy /D foo=bar myscript.bb Previne a tela inicial que est sendo mostrado na inicializao.
131
Automao de Testes
132
Automao de Testes Voc pode se preocupar que o teste ento, no funciona corretamente porque a atividade posterior causada por uma requisio de AJAX no executada. No entanto, este no geralmente problemtico pois o Badboy registrou todas as interaes com o servidor web: se a requisio de AJAX passou a fazer outra requsio de AJAX ento o Badboy ter registrado a requisio posterior e vai reproduzi-la novamente. Por outro lado, se a requisio de AJAX realmente chamou um carregamento de pgina, ento Badboy ter registrado tambm. Assim, embora possa haver casos em que a interface de usurio no refletem as atualizaes causadas por uma requisio de AJAX, o servidor mantido sempre atualizado corretamente, e o carregamento da prxima pgina far com que o contedo correto seja exibido.
133
Automao de Testes
8.9.1 Limitaes
Infelizmente, h algumas limitaes do BadBoy ao apoio ao JMeter. Essas limitaes existem porque as caractersticas do JMeter e do Badboy no correspondem exatamente um ao outro e, em alguns casos, no possvel exportar itens diretamente. As seguintes limitaes devem ser observadas: JScript no podem ser exportados. o JMeter no pode executar JScript porque ele no tem uma janela de navegador incorporado. Itens de JScript sero ignorados no roteiro quando voc fizer a sua exportao; Fontes de dados no so exportados. o JMeter tem seu prprio conceito para substituir fontes de dados. Quando voc exporta o arquivo, todas as suas variveissero criadas no JMeter como "User Parameters". Voc pode, se quiser, fornecer um arquivo para o JMeter ler valores de variveis; Incrementos no so exportados. o JMeter no utiliza incrementos para modificar variveis. Pelo contrrio, as variveis so automaticamente modificadas pela iterao de um ciclo, e sa presena de um modificador de parmetros do usurio; Navegaes no so exportadas. Navegaes tambm necessitam em ter presente a janela do navegador e, portanto, no pode ser suportado diretamente pelo JMeter. Voc pode simular se quiser usando recursos o JMeter;
134
Automao de Testes
Asseres so exportadas, mas podem precisar de ajustes. O Badboy tentar exportar as asseres para o JMeter, mas devido a pequenas diferenas na forma como lidar com asseres entre JMeter e O Badboy possvel que eles nem sempre funcionem da mesma maneira. O Badboy verifica automaticamente por estes problemas e ir alert-lo com uma mensagem, depois da exportao que contenham detalhes sobre o que pode ter de ser ajustado.
135