terça-feira, 30 de abril de 2013

Prove seu sistema com o JMetter

Há alguns  posts atrás, eu havia comentado que faria um post sobre Jmetter para que a gente possa estar sobrecarregando nosso sistema.
"Muahaha"!!!!
Já que vamos estressar nosso software fique atento as seguintes situaçoes:
1) o ambiente que vamos utilizar é o mais próximo possível do real?
2) caso negativo existe a possibilidade de simularmos esse ambiente? (Quando falo em ambiente não me refiro somente a base e versão do seu software, mas sim a infraestrutura,  middleware).
3) Existe a possibilidade de executar esses testes em produção? Se sim combine com o negócio e as áreas envolvidas e teste em janelas que tem impacto.
Feito isso vamos aos testes.
O primeiro passo é fazermos download do Jmetter:
A sua instalação é muito simples, basta apenas descompactar o arquivo e usar o jar.
Ao abrir o jmetter vemos a separação de dois grupos:
- Plano de Teste
- Área de Trabalho

Basicamente essa divisão serve para uma melhor organização. A área de trabalho é como se fosse uma área de rascunho, de testes. Já o plano de teste é aquilo que você realmente vai executar quando der um play.
Um exemplo simples, é quando precisamos configurar um proxy para captura, usamos a área de trabalho. Quando temos os artefatos necessários os colocamos em um Grupo de Usuários no Plano de Teste.
Se você já sabe o que vai precisar testar, quais urls vai utilizar (com suas variáveis, seus métodos, exe: GET, POST), podemos direto utilizar a opção de plano de teste.
Caso ao contrario, você pode capturar essas informaçõee, estarei mostrando como fazer isso em um próximo Post.
Passo a passo para quem está começando:
Na opção Plano de Teste clique com o botão direito e vá em -> Adicionar-> Thread(Users)-> Grupo de Usuários.
Você pode colocar o nome desse grupo de usuários conforme a sua necessidade.
Nessa tela nós temos uma série de opções, parte delas estão relacionadas a ações se houver falha e outra parte as configurações dos usuários virtuais. Vamos nos concentrar mais na configuração dos usuários.
  • Número de Usuários Virtuais: Com quantos usuários vamos simular o teste;
  • Tempo de inicialização em segundos: Tempo total de inicialização dos usuários. Se você colocar 200 usuário e 1 segundo o jmetter vai inicializar todos ao mesmo tempo;
  • Contador de Iteração: Quantas iterações (pense como laços de repetição) irão serem necessárias a cada usuário para que o teste finalize.
Indico que para começarmos a brincadeira, que deixemos um usuário virtual e as outras opções o default.
O próximo passo é adicionarmos um gerenciador HTTP, que será o responsável pelo gerenciamento de sua conexão.
Nele é possivel configurar o User Agent que iremos simular no teste.
Para isso vá em Grupo de Trabalho clique com o botão direito e então vá em  Adicionar->Elemento de Configuração-> Gerenciador de cabeçalho http:

O user agent vai variar de acordo com o que você quer simular.
Esse geralmente é o que eu uso:

User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0
Para testes com mobiles é só mudar o user Agent:
 
User-Agent Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5
Feito isso vamos aos testes.
 Vamos adicionar nossos testadores, para isso clique com o botão direito sobre o Grupo de usuários e vá em Adicionar-> Testador> Requisição HTTP

Devem ser informados os seguintes dados:

  • Nome para a requisição (qualquer nome que identique bem a etapa do teste para você)
  • Nome do Servidor: aqui você coloca somente o dominio.
  • Caminho: O resto da URL.

Nesse ponto já podemos dar um play.
No momento que deres play, verás que o contador a direita irá ficar 1/1 e logo em seguida 0/1.
E se seu site estiver ok, nenhum alerta seá contado:

Vamos adicionar alguns ouvintes para vermos o que está sendo executado. Há várias opções de ouvintes, eu gosto de usar duas: View Results Three e Simple Data Writer
Para adicioná-los vamos clicar com o botão direito sobre o Grupo de usuários e ir em Adicionar->Ouvintes->View Results Three
Se dermos play novamente, podemos ver o retorno do teste:

Podemos escolher o que queremos que seja exibido, se somente erro, sucesso ou ambos. Também é possivel exibir não somente o texto de resposta mas fazer download dos resources e exibir o html

Podemos também gerar um relatório desses testes, com um Simple Data Writer.
Adicionar->Ouvintes->View Results Three


Nesse tipo de escritor, todos os resultados dos seus testes ficarão armazenados em um arquivo. Uma dica legal é usar parametros para sempre  gerar um novo arquivo. Para isso adicione parametros como data e hora no nome do arquivo: D:\JMETTER\TesteGuriatech_${__time(YMDHMS)}.xls

O basicão é isso.
O proximo passo é começarmos a brincar com os temporizadores e alguns parametros nos testadores. Isso fará com que o nosso teste fique mais real, visto que nossos usuários não irão entrar todos ao mesmo tempo e executar todos os links no mesmo momento.
Sem o temporizador é isso que o jmetter tenta fazer, colocar todos a rodar.

Enquanto isso podemos ir adicionando mais requisições HTTP, e aumentando o número de usuários virtuais.
Divirtam-se!
No próximo post sobre Jmetter vou falar um pouco desses temporizadores e dos parametros para as requisições http.

Ficou com dúvida?
Escreva nos comentários abaixo que respoderei!





sexta-feira, 26 de abril de 2013

Compra da China

Fiz a minha primeira compra de roupas da china!
Estava acostumada a encomendar algumas coisinhas (principalmente capinhas para o Iphone) do DealeXtreme, mas roupas e coisinhas fofas, ainda não tinha tido coragem. O meu escolhido da vez foi o SammyDress.
Fiz uma boa pesquisa antes, dando uma lida em reviews, inclusive de brasileiras, e a conclusão a que eu cheguei é: Não espere muito de um produto que você está pagando um valor baixissimo.
Não espere Qualidade!
E por falar em qualidade, me surpreendi com site de deles, funciona muito bem em desktops, igualmente com mobiles, e eles ainda tem um app bem bacana para iphone.

Como SQA posso avaliar o site deles como muito bom.
Bem intuitivo, e está certo que não fiquei fuçando muito, fiz operações básicas e não encontrei bugs pelo caminho, a não ser por alguns erros no app para Iphone, onde em várias categorias foi apresentado o erro "Erro1: Data transmission error, please try again", embora eu "try again" (hahahaha) várias vezes não funcionou, e as categorias estivam funcionais no site. Como porém era m categorias que eu imagino que sejam pouco usadas, ou eles não devem ter percebido, ou deve estar no backlog deles.
Agora como mulher consumista, amei de paixão o site! Se podesse comprava de tudo um pouco! Vou esperar essa primeira compra chegar para decidir a próxima compra. Gastei 36 reias já com o frete e comprei várias coisinhas. Quando elas chegarem digo  se aprovo ou não.
O que eu comprei:


http://www.sammydress.com/product246829.html

Tá eu sei é um ralador! Mas me deu vontade de comprar tá!
http://www.sammydress.com/product71136.html

http://www.sammydress.com/product306343.html

http://www.sammydress.com/product292235.html

http://www.sammydress.com/product284777.html





quinta-feira, 11 de abril de 2013

CTFL

No mês de março fiz a prova de certificação do ISTQB para CTFL. Recebi o resultado positivo a poucos dias.
Gostaria de então dar uma mãozinha a quem pretende encarar o próximo exame com algumas dicas.
A primeira dica é: leia o silabus e o glossário, mas não concentre seus maiores esforços neles.
A segunda dica é: faca os simulados que estão na página do ISTQB. Muitas das questões que aparecem não terão suas respostas no silabus, e aconselho que caso você não saiba a resposta procure saber porque ela é a correta ( e nisso o Google te ajuda muito).
Terceira dica: procure os simulados na internet, fiz muito uso deles enquanto estudei e só parava de fazê-los quando acertava todas as questões. Abaixo vou deixar os links dos blogs que usei para estudar.
Ultra super mega dica: gaste a maior parte do seu tempo com esses simulados! Eles contém muitas perguntas que vão te ajudar a guiar o seu estudo.
Exemplo a não seguir: comecei a estudar cerca de uma semana antes da prova, pois como já trabalho há algum tempo na área pensei que ia ser tranquilo. Engano meu. Quando comecei a fazer os simulados, e os fiz após estudar o silabus, comecei a me desesperar, pois pouquíssimas questões eu consegui responder com o auxílio do que eu já havia lido. Embora o pouco tempo de estudo deu para passar com folga, mas isso vai da facilidade que cada um tem de assimilar o que esta estudando. Por isso não deixe para a última hora! Comece a estudar o quanto antes.
Links:
http://bugbox.com.br/aprender/138
Esse link contem os atalhos de outros simulados.
Muito obrigado ao pessoal do BugBox que os compartilhou! Foram muito úteis!
http://www.bstqb.org.br/
É preciso estar logado para obter acesso.
Bye!

quarta-feira, 10 de abril de 2013

Provando a estabilidade do seu software

Recentemente, passamos por um problemão aqui com as nossas aplicações. Houve uma mudança na arquitetura e falhamente não efetuamos testes de stress antes de subir a versão. É obvio que assim que o site começou a ter muitos acessos ele começou a cair. Resultado: tivemos que fazer rollback de tudo, e como foi uma mudança de arquitetura isso implicou em substituição de servidores, que embora sejam virtualizados, ainda não é rapida assim a sua substuição, deixando o site por algumas horas fora.
Isso gerou um grande stress para o negócio e sabemos claramente que houveram falhas tanto na área de dev como na área de infra. O importante é o que aprendemos com erros e o que fazemos para que eles não se repitam. Nesse caso fizemos um acerto com a infra, e ao invés de fazer várias mudanças na arquitetura fizemos apenas uma das alterações e aplicamos a versão para minimizar os locais de erro.
Após estudamos uma estratégia de testes de stress e junto com a equipe de Web Analitcs verificamos qual seria a quantidade de acessos simultâneos para testar a estabilidade. Como responsável pelos testes preparei scripts no Jmetter para testar isso, e após scripts e usuários configurados no Jmetter colocamos a rodar. Resultado: derrubamos os sites(em homologação é claro). Após vários ajustes de arquitetura, conseguimos estabilizar o ambiente e só com uma grande quantidade de acessos é que derrubamos o site, quantidade essa que não se replica em número de acessos em produção. Se você está pensando em verificar a estabilidade do seu software vamos as seguintes dicas:
1) Conheça bem a arquitetura do seu sistema, isso vai ajudar muito a você determinar o quanto seu teste é válido. Por exemplo aqui nós temos balanceamento e um stick, ou seja sempre que eu realizava testes com o Jmetter na minha máquina estava sobrecarregando somente um dos servers, pois quando eu caia no balancer ele reconhecia meu IP e me mandava sempre para o mesmo server. Para resolver isso forçamos junto com a infra que a minha máquina caisse em um servidor e a máquina de outro colega caisse em outro server, e dividimos as conexões.
2) Se você não é o gerenciador do ambiente, mantenha contato com eles para juntos avaliarem a melhor forma de stressar seu ambiente.
3) Escolha a ferramenta certa para testar seu software.
4) Estude a ferramente e como você irá conseguir tirar melhor proveito dela para seu teste.
5) Não esqueça de incluir este tempo na sua preparação do teste e que para que esse teste tenha sucesso, você deve garantir que os outros atributos de qualidade sejam garantidos:
 * Seu software precisa estar funcional!
* Seu software precisa ser confiavel!
 * Seu software precisa ser usável!
 * Seu software precisa ser eficaz!
* Seu software precisa ser manutenivel!
* Seu software precisa ser portável!
6) Use os principios da agilidade e sempre entregue valor ao seu cliente!
Quer saber mais sobre Jmetter? Acompanhe meu próximo post.