Appium é uma ferramenta Open Source e multi-plataforma para automação de aplicações nativas, híbridas e sites mobile para os principais sistemas operacionais do mercado: Android, iOS (e agora para FirefoxOS).
É melhor instalar o Appium através da linha de comando, em vez de baixar o appium, uma vez que o aplicativo GUI do Appium é mais frágil.
Atenção: Não instale o Node ou o Appium utilizando
sudo
, vai te causar problemas.
É um ambiente de desenvolvimento integrado e software livre da Apple Inc. Também precisamos autorizar o uso do iOS Simulator:
sudo authorize_ios
Rodar o sudo authorize_ios somente é necessario para automação baseada em instrumentos, isso significa que parou de ser necessario apartir do Xcode 7.3, quando Instruments foi removido. Se você esta testando usando o XCUITest, não rode isso.
A partir da versão do Appium 1.6 XCUITest driver está disponivel. A biblioteca XCUITest da Apple está disponivel apenas nos simuladores iOS e aparelhos a partir do iOS >= 9.3 O Mac tem que ter o macOS 10.11 or 10.12 Xcode >= 7 é necessário Para correto funcionamento do driver, bibliotecas adicionais são necessarias Necessario adicionar ao capabilities: automationName: "XCUITest",
É a IDE oficial para criação de aplicativos em todos os tipos de dispositivos android Para baixar o android segue o link:
Para baixar o jdk8 segue o link:
https://www.java.com/pt_BR/download/faq/java_mac.xml https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html
Após a instalação é necessário setar as variáveis de ambiente JAVA_HOME
e ANDROID_HOME
no seu bash_profile.
Abra o terminal e digite:
open ~/.bash_profile # abre o arquivo bash_profile
E cole o código abaixo
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) # encontra a Home do Java 8 (1.8)
export ANDROID_HOME=~/Library/Android/sdk
PATH=$PATH:$ANDROID_HOME/platform-tools
PATH=$PATH:$ANDROID_HOME/tools
PATH=$PATH:$ANDROID_HOME/tools/bin
PATH=$PATH:$ANDROID_HOME/tools/lib
PATH=$PATH:$JAVA_HOME/bin
Logo após a última variável de ambiente do seu bash_profile exporte o PATH
export PATH
O Homebrew instala os pacotes que não vem por padrão no sistema da Apple. Para instalá-lo, execute o código abaixo no seu terminal:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
O Appium é um servidor HTTP escrito em node.js que cria e manipula várias sessões do WebDriver para diferentes plataformas, como iOS e Android.
A automação de aplicativos móveis híbridos e nativos para Android e iOS é uma função chave administrada pelo Appium, um servidor node.js. A interação entre o servidor node.js e as bibliotecas de client do Selenium é o que, em última análise, funciona em conjunto com a aplicação móvel.
Para instalar, basta colar no terminal:
brew install npm # instalar o appium via (source) npm (Node JS Package Manager)
npm --version # versão atual do npm
brew install node # instalar o node
node --version # versão atual do node
Verifica se todas as dependências do Appium são atendidas e se todas as dependências estão configuradas corretamente. Para instalar o appium-doctor basta colar no seu terminal:
npm install -g appium-doctor # instalar o appium-doctor
Uma vez que o node.js, npm e o appium-doctor estão instalados, você pode usar o comando abaixo para verificar se todas as dependências do appium são atendidas:
appium-doctor # verificar todas as dependencias necessarias para usar o appium
appium-doctor --android # verificar as dependencias somente para android
appium-doctor --ios # verificar as dependencias somente para ios
Execute o comando abaixo para instalar o Appium:
npm install -g appium
Para instalar uma versão específica do Appium:
npm install -g appium@versão
Após o término, inicie o servidor do Appium pelo seguinte comando:
appium
Para atualizar o Appium, você precisará executar
npm install -g appium
novamente.
São as linguagens de programação suportadas pelo Appium.
Execute o comando abaixo para instalar o Appium Client:
npm install wd # cliente do appium
São um conjunto de chave/valor que são enviados ao Appium Server para informar qual tipo de sessão desejamos iniciar.
É através do Desired Capabilities que informamos em qual dispositivo queremos executar e quais as configurações iniciais.
Exemplos:
[caps]
platformName = "Android"
deviceName = 'Nexus_5_API_23_mars'
app = '~/dev/android/app/build/outputs/apk/nome.apk'
[caps]
platformName = "iOS"
platformVersion = "10.3"
deviceName = "iPhone 6 Plus"
app = "~/dev/appium/build/mock/simulator/nome.app"
Como o Appium é um servidor, toda a comunicação com o dispositivo é realizada através de uma sessão. O cliente inicializa uma sessão com o servidor via POST /session
com um objeto JSON chamado Desired Capabilities.
Quando a sessão é criada um ID é atribuido a ela; E este ID é utilizado para realizar o envio dos comandos para o dispositivo apropriado.
Para criar um projeto Appium Android clique aqui
Para criar um projeto Appium iOS Abra o terminal e execute os comandos abaixo:
cucumber --init # criando estrutura do projeto
create features
create features/step_definitions
create features/support
create features/support/env.rb
Arc setup ios # cria um txt. para ios (Capabilities para iOS)
Abra o Capabilities para iOS e preencha o arquivo conforme exemplo:
[caps]
platformName = "ios" # Plataforma
platformVersion = "10.3" # OS
deviceName = "iPhone 5" # nome do dispositivo
app = '/Users/estudo_appium.apk' # caminho do apk
-
Inspecionando elemento
Para inspecionar os elementos na plataforma android podemos usar essas opções:
-
Console (Arc)
Inicie o servidor do Appium pelo seguinte comando:
appium # inicia o servidor do appium
Abre uma nova aba e digite o comando
Arc # inicia o modo console page # inspeciona os elementos da tela source # inspeciona os elementos da tela em HTML exit # sair do console
-
Macaca Js
Para inspecionar os elemento na tela usando Macaca acesse:
-
-
Executando seus testes
Para rodar os testes execute os comandos no terminal:
cucumber # rodar todos seus testes cucumber feature/<nome-da-feature> # executa todos os cenários de uma feature especifica.
Atenção: Antes de rodar seus testes inicie o servidor do Appium
-
Gerando relatório de teste
Para gerar o relatório no final dos testes, basta colocar o comando:
<--format html --out reports.html>
Exemplo:
cucumber feature/<nome-da-feature> --format html --out reports.html
- Documentação do Appium
- Github do Appium
- Configuração do JAVA_HOME
- Opções de instalação (Appium Doctor)
Erro: EACCES: permissão negada, mkdir '/usr/local/lib/node_modules/appium/node_modules/appium-chromedriver
acesse o link appium/appium#10020 ou
Abra o terminal e execute o comando abaixo :
sudo npm install -g appium --unsafe-perm=true --allow-root
Abra o terminal e execute os comandos abaixo :
emulator -list-avds # verifica os emuladores existentes
Abra o terminal e execute os comandos abaixo :
xcode-select --install # instala Xcode Command Line Tools
Abra o terminal e execute os comandos abaixo :
sudo xcode-select --reset
sudo xcode-select --switch /Applications/Xcode.app
[DEPRECATION] Appium::Driver.new(opts) will not generate global driver by default.If you would like to generate the global driver dy default, please initialise driver with Appium::Driver.new(opts, true)
Abra o terminal e execute os comandos abaixo :
gem list appium_console #verifica as versões instaladas
gem list appium_lib
Excluir todas as versões:
gem uninstall appium_console #Remove versão instalada
gem uninstall appium_lib
Updade na versão:
gem update appium_console #Atualiza a versão instalada
gem update appium_lib
#Atenção: Devo somente ter uma versão da gem instalada, sendo a mais recente
WARN: Unresolved specs during Gem::Specification.reset:
childprocess (~> 0.5)
awesome_print (~> 1.7)
json (>= 1.8)
nokogiri (>= 1.6.6, ~> 1.6)
Abra o terminal e execute os comandos abaixo :
Visualiza versão gem:
gem list [NomeGem] #verifica as versões instaladas
Excluir todas as versões:
gem uninstall [NomeGem] #Remove versão instalada
Updade na versão:
gem update [NomeGem] #Atualiza a versão instalada
#Atenção: Devo somente ter uma versão da gem instalada, sendo a mais recente.
Para as gem nokogiri deixar instalada a versão maior, exemplo:"nokogiri (1.6.8.1)".
Para a versão json deixar instalada a versão default, exemplo: "json (default: 1.8.3)".