Blog > Appium - Ligando/Desligando Wi-Fi, Dados e Modo Avião

16/mar

Você já pensou em testar sua app sem determinadas situações não é mesmo? E como seria controlar o Wi-Fi, Dados móveis e Modo Avião?

Introdução

Você já pensou em testar sua app sem determinadas situações não é mesmo?
E como seria controlar o Wi-Fi, Dados móveis e Modo Avião?


Porque eu precisaria de um teste assim?

A perda temporária de dados em uma app que necessita de internet entra no tipo de Teste de Interrupção. Sendo assim você precisa saber como a app vai se comportar neste cenário.

Algumas coisas que você pode testar com esta abordagem. Mas lembre-se que, provavelmente, sua app terá requisitos específicos para isso.

  • Quando uma app perde a conectividade de dados uma das opções é apresentar um retorno ao usuário.
  • Algumas aplicações também continuam em atividade e gravam os dados temporariamente no dispositivo para depois ser usado quando a conectividade voltar.


Como aplicar?

Existem dois passos básicos para aplicar o “ligar/desligar” para estes recursos...

1. Instanciar a classe NetworkConnectionSettings

Tudo começa com a classe NetworkConnectionSettings que tem duas variações quando for instanciada:


NetworkConnectionSettings(airplane, wifi, data)

Os parâmetros airplane, wifi e data recebem um boolean de true/false, onde true é ligado e false é desligado.

  • airplane: modo avião
  • wifi: wi-fi
  • data: dados móveis (gprs, 3g, 4g)

Ele cria um mix de possibilidades na utilização dos parâmetros em conjunto com os valores true ou false….

airplane wifi data O que acontece?
true false false Liga o modo avião sem conexão com internet
true true false Liga o modo avião, mas liga também o Wi-Fi
false true true Liga o Wi-Fi e dados móveis
false false true Liga somente os dados móveis
false true false Liga somente o Wi-Fi


NetworkConnectionSettings(bitmask)
O bitmask é um valor inteiro referente a qual recurso (modo avião, wi-fi ou dados) ficará disponível.

bitmaskO que acontece?
0Nada (tudo desligado)
1Somente modo avião
2Somente Wi-Fi
4Somente dados móveis
6Wi-Fi e dados móveis


2. Aplicar a mudança de conexão no driver

Após ter informado através do NetworkConnectionSettings o que você quer ligar/desligar é necessário informar ao driver a alteração, que fará a aplicação instantaneamente no emulador ou dispositivo, através do método setNetworkConnection no driver passando como parâmetro a instância do NetworkConnectionSettings.

Agora segue o exemplo de conexão para todos os modos.

Observações

  1. O Wi-Fi no emulador via AVD nunca fica ligado, porque ele apresenta a conexão de dados através de dados móveis.
  2. Os dados móveis no emulador via Genymotion sempre fica desligado, porque ele apresenta a conexão de dados através do Wi-Fi

Frente a estas observações, se você quiser ver todas as possibilidades funcionando o ideal é executar em um dispositivo fixo.

POSTS RELACIONADOS

AGENDA

CURSOS RELACIONADOS