Blog > Appium - Mudando o idioma da app

07/mar

Quando uma app possui múltiplos idiomas, obviamente, é necessário uma validação dos idiomas contidos para que não ocorram erros simples. Validar de forma manual é muito, muito tedioso e lava ainda muito mais tempo.

Introdução

Quando uma app possui múltiplos idiomas, obviamente, é necessário uma validação dos idiomas contidos para que não ocorram erros simples.
Validar de forma manual é muito, muito tedioso e lava ainda muito mais tempo.

App de exemplo

Abaixo temos uma app de exemplo em Português (pt-BR) e Inglês (en-US) com uma simples tela de login.
Existem vários pontos de tradução nesta app, mas vamos focar em apenas quatro:

# Português Inglês
1 Internacionalização Internacionalization
2 Este campo é obrigatório This field is required
3 Senha (opcional) Password (optional)
4 LOGIN OU REGISTRAR SIGN IN OR REGISTER

 

 

Como executar um teste automatizado mudando o idioma?

No Appium é muito simples! Ele possui uma desired capability no server [1] chamada de language.

Através da classe DesiredCapabilities informamos uma capacidade (setCapability) que é o idioma (language), sendo este em Português (pt).
Para qualquer outro idioma basta colocar o código e pronto! Vale ressaltar que o idioma só é trocado na app se ela suportar este idioma.
Você pode ver a lista com os códigos de idiomas suportados aqui [2].

Como o Appium faz isso?

Ele reinicia o dispositivo trocando o idioma do aparelho (seja ele físico ou virtual) sem falhar o teste durante a reinicialização. Assim que o dispositivo volta a ficar funcional ele já apresenta o idioma e continua a execução do teste.

Visualize a imagem abaixo (gif) do teste sendo executado em Português e Inglês.

Vale lembrar….

Esta capacidade tem que ser enviada antes de iniciar a instância do driver (no caso do Android: new AndroidDriver());
Isso porque quando enviamos a capacidade do idioma, o Appium identifica qual idioma e faz a reinicialização do dispositivo deste idioma antes da execução do teste.

Exemplo de código

Abaixo segue o exemplo de código, também disponível  neste link um gist com o código completo com mais testes. 
Nele, para apresentar a mensagem do campo de e-mail vazio, há um clique no botão de login. No final uma screenshot é capturada.

E como eu faria para validar o texto?

Bem, o intuito deste post não é este, mas é simples: basta pegar o texto do componente (um getText).
Só não conseguimos pegar o texto do “balão” (tooltip) da mensagem de preenchimento do e-mail porque ele é fantasma (o UiAutomator não consegue identificar o componente).

[1] http://appium.io/slate/en/master/?ruby#appium-server-arguments
[2] http://www.apps4android.org/?p=3695

POSTS RELACIONADOS

AGENDA

CURSOS RELACIONADOS