Archive

Posts Tagged ‘Java’

Step-by-step selenium tests with page objects, dsl and fun!

September 29, 2010 11 comments

Note: this is a long post!

Not long ago I wrote about functional tests and the page objects pattern in Aqris’ blog. Back then we at Aqris got all very excited about page objects as they were the solution we were looking for to solve our problems on maintaining our functional test code base, which by that time was based on a set of messy helpers that nobody really understood completely.

Before page objects, whenever a developer in our team had to write a test that had to perform an action no other test already performed, he or she would go through that bunch of helpers trying to figure out which one was the helper that should perform such an action. The result of this approach was that the team couldn’t get to a full agreement on what was each helper’s responsibilities. Everybody agreed that the code was not good, but each person had their point of view on why.

We first learned about the pattern here, when reading about WebDriver (now Selenium 2). Page objects came as the solution to separate the different actions our helpers contained in an extremely simple and even obvious way that nobody in our team had previously thought: simply creating a specialized helper for each page of the application.

It is in fact so simple that I still wonder how come we didn’t think of that before… I think that we were too busy trying to figure out how to deal with the helpers we had, and we were too used to have them that way. I guess that’s because the previous project we had worked on (and the first one we had a strong movement towards automated tests with Selenium) was a web app based on only one single page with lots of GWT-based ajax.

Anyway, excuses aside, we started using page objects and it was great! But then other doubts started to come up: how to deal with parts of a page that are common to many pages – for instance a side navigation bar? How to make our tests more readable? Should our page objects use selenium directly? If yes, how to resolve the selenium dependency? Can the page objects just encapsulate the locators for the html elements instead? Should page objects be responsible for the tests assertions too, depending on xUnit’s API, or should they just provide verification methods that would be used by our tests’ code itself?

I think that these are questions that may or may not have a straight correct answer, but here I will write a bit of what worked well for us or for me later on when dealing with that.
To do that I think we can write a test for an imagined scenario.
Let’s try that!

The problem

Let’s say that we have a test case to test the following hypothetical scenario:

We have a hypothetical book store application.
Every page in the application has a navigation bar on the side.
An user goes to our application home page and, by clicking on a link on the navigation bar, she goes to a page to search for books.
On the search books page she fills in a search form, entering “Tolkien” in the author field and “Rings” in the title field, and submits the form.
She is then redirected to a search result page that contains a list of books along with the same search form already filled in with the same search data she had entered – in this case, “Tolkien” in the author field and “Rings” in the title field.

We want to assure that, given our test data, the search result contains the book ‘The Return Of The King’.
We also want to assure that the search form in the result page still has the data she had previously entered.

The code solution after the jump :)

Read more…

Seek and hide

May 27, 2008 12 comments

É comum ver em blogs alguma secão em que as pessoas escrevem termos de busca que levaram outras pessoas a seus blogs. Nunca me interessei muito em fazer algo do tipo, provavelmente porque as buscas que traziam pessoas até aqui eram sempre baseadas em alguma dúvida com Linux ou Java ou algo do tipo.

Daí de uns tempos pra cá eu comecei a escrever sobre coisas diferentes e comecaram a aparecer termos de busca mais inusitados.. então.. vejam algumas coisas que pessoas buscaram em sites como Google e Yahoo! e acabaram vindo parar aqui:

nokia e51 bom negocio
Estou com ele a mais de uma semana e posso garantir que é um bom negócio :)

e51 não conecta
Não conecta o que? Onde? Se está na garantia e você for leigo leve na assistência técnica. Caso contrário use o Google mesmo (ou seja, comecou bem :))

‘o que levar na mala’ europa verão
Depende muito dos países pra onde você vai e onde você vai ficar hospedado.
Por exemplo, se for ficar num hotel não precisa se preocupar com toalha, mas se for ficar na casa de alguém ou surfar em algum colchão, é recomendado se preocupar com cada detalhe.
Quanto a roupas, eu recomendo trazer pelo menos uma troca de roupas de frio, alguma jaqueta por exemplo. Mesmo que seja verão, o verão daqui não é como o verão do Brasil (a não ser que você esteja indo somente a países do sul da Europa como Espanha, Grécia, Itália….).
Claro, traga seus documentos, remédios corriqueiros e algum que você tenha que usar regularmente (recomendo um tubo de Gelol também :)). Quando eu vim pra Europa eu trouxe dentro da minha mala um quilo de limão e quatro garrafas de cachaca. Daí vai de cada um hehe.
O mais importante aqui é saber o que levar na bagagem de mão: nada de líquidos nem objetos pontiagudos e por favor, o passaporte num lugar bem acessível (para você, não para os outros :P).

turismo rápido amsterdam
As principais atracões turísticas ficam no centro da cidade então dá pra conhecer muita coisa a pé se você gostar de andar. Mas o que recomendo mesmo é alugar uma bicicleta e passear pelo centro da cidade visitando os museus e ver os canais, Red Light District, etc. Se você falar inglês não se preocupe pois todo mundo fala inglês lá e há postos de informacões para turistas espalhados pela cidade inteira.
Os básicos são: ao chegar no aeroporto compre um ticket de trem para a estacão central. Chegando na estacão central, saia e você vai dar de cara com uma casinha com informacões para turistas, venda de tickets para passeios de barco, mapas, etc. Daí em diante depende do que você quiser visitar. Não perca o Red Light District e o museu Anne Frank :)

cidade sona vermelha em amisterdam
Zona vermelha em Amsterdam, certo? Sim, é uma zona, e tem putas. Com certeza você não fala inglês porque nem português você sabe então se programe direitinho antes de ir e de preferência leve alguém que saiba se comunicar. Se não der, já vá pelo menos com hotel ou albergue reservado e com um passeio tracado. Não esqueca a camisinha.

passagens para brasileiros amsterdam
KLM ou Air France. Boa viagem.

quantas horas de vôo de guarulhos a ams
10 horas aproximadamente.

passagens pára tallin
Olha só alguém querendo vir para Tallinn. O jeito mais fácil é comprar uma passagem da KLM ou equivalente fazendo escalas em alguma cidade européia como Paris, Frankfurt, Amsterdam, Berlim, etc.
O jeito mais barato é comprar no Brasil uma passagem Guarulhos -> Berlim e pela internet uma passagem Berlim -> Tallinn em alguma companhia aérea européia de baixo custo, como a Easy Jet.

carros antigos com a letra j
Me pergunto como essa pessoa chegou aqui… Jipe, Jaguar, Jiraiya, Jiban.. ops… não sei mais.

ulcera causa dor nas costas?
SIM! É preciso cuidado para não sofrer o que eu sofri. No meu caso eu sentia APENAS dores nas costas, nada no aparelho digestivo. Isso torna o diagnóstico bem mais complicado e se você tomar anti-inflamatórios e remédios para dores vai PIORAR E MUITO sua úlcera.
Úlceras do duodeno causam dores nas costas que melhoram após comer.
Úlceras do estômago causam dores que pioram após comer.
Se você está sentindo esse tipo de dor procure rapidamente seu médico e faca uma gastroscopia.

encontrei um bmw perdido
É meu!!!

como comprar maconha
Putz! Se você está no centro de Amsterdam, não importa o ponto inicial, é só fechar o olho e dar três passos para a esquerda que você estará dentro de um “Coffee Shop” (que não vende somente café, se é que você me entende).
Se não está, tem o jeito legal e o ilegal, o jeito legal requer comprar uma passagem pra Amsterdam antes.

piadas de besteiras legal
O Google funciona mesmo! Você saiu no lugar certo!

Instalar driver nVidia, Beryl ou Compiz no Debian, resolucão de tela no Linux, Instalar Java no Linux, ou buscas similares:
Instalando o Compiz e/ou Beryl no Debian Etch
Resolução de Tela no Linux
Instalando driver nVidia no Debian Etch
Instalando o JDK 6 RC no Linux e Waters no Brasil!

Tchau!

Tallinn -> Hospital -> Tallinn

May 4, 2008 7 comments

Recapitulando…..

No post anterior descrevi como foram as passagens por Amsterdam e Berlim. Agora vou falar um pouco como foi a chegada em Tallinn e falar da zica que aconteceu durante o mes passado.
Este post vai ser escrito sem qualquer tipo de acentuacao grafica devido ao teclado de layout sueco que estou usando agora. (Eh bizarro, merece um post a parte).

Cheguei em Tallinn no dia 29 de fevereiro, uma sexta-feira, e tinha um pessoal da AIESEC me esperando no aeroporto, onde tomei um shot de vodka estoniana com 80% de alcool e de onde fomos direto para o apartamento onde alguns trainees (Kike da Venezuela, Breno do Brasil e Mustafa da Turquia) moram para uma festinha de boas vindas.

AeroportoRecepcao no aeroporto de Tallinn: Eu (Brasil), Maris, Kike (Venezuela), Ott, Erkki, Elina, Kristi e Marina

No sabado e no domingo seguintes fomos conhecer a cidade e comer algumas comidas tipicas. Fotos aqui.
Na segunda-feira fui com a Kristi (minha buddy) abrirmos minha conta no banco Hanza.

O trabalho

Meu primeiro dia de trabalho foi na quarta-feira, na Aqris Software AS, uma empresa de desenvolvimento de software especializada em J2EE. Eh uma empresa pequena, com entre 30 e 40 funcionarios realizando desenvolvimento de sistemas internos e prestando servicos para varios outros clientes na Estonia e em outros paises da Escandinavia, principalmente Finlandia.

A empresa fica no predio do World Trade Center Tallinn. Mas ja esta planejada uma mudanca para um outro predio a ser realizada no segundo semestre do ano.

De quarta a sexta-feira fiquei apenas me ambientalizando com a empresa, lendo as informacoes na rede interna e conhecendo e aprendendo mais sobre as metodologias e tecnologias utilizadas.

A semana seguinte fiquei por conta de estudar Spring, um framework de desenvolvimento J2EE utilizado em praticamente todos os projetos da empresa. O negocio eh batuta, desde 2006 venho querendo estudar Spring, mas nunca tinha tempo. Agora consegui unir o util ao agradavel :)

Na outra semana iniciou um projeto novo, em que fui alocado. Desenvolver um novo sistema de gerenciamento interno da empresa, utilizando tecnologias de ponta: Java 6, Spring 2, Hibernate e GWT.

Predio do WTC Tallinn, onde fica a Aqris


Indo para o trabalho durante o inverno

A zica

Alguns dias antes de sair do Brasil comecei a sentir incomodas dores nas costas. Cheguei a ir no medico, que pediu um raio-X e disse ser apenas uma dor passageira por alguma contusao… me recomendou um pouco de repouso e remedios para dor.

Ao chegar na Estonia, a dor ainda nao havia melhorado. Claro, depois de uma semana viajando pela Europa carregando uma mochila de 70L, nao deveria melhorar mesmo. Fui num pronto socorro e o medico repetiu a mesma coisa que ja havia ouvido no Brasil.

Comprei mais anti-inflamatorios, que segundo o medico deveriam ser tomados por 5 dias. 5 dias, e nada da dor melhorar, pelo contrario, apenas piorava. Continuei tomando os remedios enquanto tentava marcar uma consulta com um medico especializado. Duas consideracoes aqui:

a) sempre odiei tomar remedios, seja compridos, seja (principalmente..) injecoes. Neste caso eu realmente fui imprudente e abusei dos medicamentos, pois as dores eram imensamente fortes. No periodo em que a dor estava pior (antes do colapso total), eu fiquei 2 semanas direto sem conseguir dormir. Minhas noites eram: 1 hora tentando dormir, 2 horas acordado andando de um lado para o outro no quarto ou tomando um banho quente (que relaxava e melhorava um pouco a dor).

b) o sistema de saude estoniano eh bom, mas o funcionamento eh complicado se voce nao tem um ID estoniano (meu caso naquela situacao) e por mais que eu estivesse tentando uma consulta com um medico especializado, demorei semanas ateh realmente conseguir.

No dia 13 de abril, um domingo, acordei e comecei a passar muito mal. Os outros trainees chamaram uma ambulancia que me levou ao hospital, onde descobriram a causa das fortes dores nas costas: uma ulcera no duodeno. Fiquei no hospital ate a quinta-feira seguinte, quando era pra ter sido liberado, quando de repente comecei a passar muito mal de novo, pior do que antes. Meia hora depois, eu estava na mesa de cirurgia sendo anestesiado.

Resumo: segundo os medicos, a ulcera estava bem avancada, o que significa que eu provavelmente ja a trazia desde o Brasil. Isso nao necessariamente quer dizer que as dores inicialmente fossem causadas pela ulcera, mas esta definitivamente piorou e muito as dores. A ulcera, por sua vez, foi ultramente agravada (ou iniciada) pelo uso continuo dos anti-inflamatorios. Ou seja, quanto mais remedios contra dor eu tomava, mais dores eu sentia. Fiquei mais uma semana no hospital depois da cirurgia, e fui liberado para ficar mais uma semana de repouso em casa. Amanha, dia 5 de maio, depois de praticamente um mes fora, volto a trabalhar.

Mudanca

Patinhos muito comuns em Tallinn, ainda no inverno

Durante este mes de abril que passei praticamente inteiro no hospital, as coisas mudaram.

A primavera chegou e Tallinn eh uma cidade muito mais agradavel do que antes. A temperatura varia de 12 a 20 graus. As arvores estao cheias de folhas e a grama esta num verde muito bonito mesmo depois de meses enterrada sob a neve. Como o verao esta chegando, os dias estao mais longos. O sol esta nascendo em media 5 e meia da manha, e se pondo 9 e 30 da noite. Na verdade, agora sao 9 e 40 da noite aqui, e ainda esta um pouco claro.

Hoje fomos para a casa do Gabo fazer churrasco. Abaixo uma foto, tirada pelo Javier (Espanha). Reparem como todos estao sem blusas!

Carlos (Rep. Dominicana), Eu (Brasil), Gabo (Bolivia), Marc (em pe, Espanha), Mustafa (sentado, Turquia).

Agora nao moro mais no hotel. Estou morando no apartamento dos trainees. O Kike esta passando um tempo na Rep. Tcheca e depois ele vai se mudar para a Malasia e eu vou ficar por aqui.

Vista da janela do meu novo quarto. Foto tirada as 21:15.

Depois vou tirar e postar mais fotos de onde estou morando agora e de como Tallinn esta mais legal agora :)

Abracos!

Follow

Get every new post delivered to your Inbox.