Este repositório contém a configuração e execução de testes automatizados para aplicativos mobile utilizando WebdriverIO, Appium e BrowserStack.
- Linguagem: JavaScript
- Framework: WebdriverIO + Appium
- Ferramenta de Automação: Appium
- Relatório: Allure Report ou HTML Report
O projeto segue o padrão Page Object Model (POM) para organização do código e melhor manutenção dos testes.
features/: Contém os arquivos.featureque definem os cenários de teste em Gherkin.features/login.feature: Arquivo de especificação do teste.
features/step-definitions/: Implementação dos passos dos testes definidos nos arquivos.feature.features/step-definitions/steps.js: Implementação das etapas de teste.
features/pageobjects/: Camada que abstrai a interação com a interface do usuário.features/pageobjects/login.page.js: Classe contendo os métodos da tela de login.
features/elements/: Define os elementos da interface, facilitando a manutenção do código.features/elements/login.elements.js: Mapeamento dos elementos da tela de login.
Antes de prosseguir, verifique se o Node.js e o NPM estão instalados:
node -v
npm -vCaso não estejam instalados, baixe e instale Node.js.
Instale o Appium globalmente:
npm install -g appium
npm install -g wdio-cliCrie o diretório do projeto e instale as dependências:
mkdir mobile-tests && cd mobile-tests
npm init -y
npm install webdriverio @wdio/appium-service @wdio/mocha-framework @wdio/spec-reporterExecute o seguinte comando para configurar o WebdriverIO:
npx wdio configConfigurações recomendadas:
- E2E Testing
- On my local machine
- Mobile - Android/iOS
- UIAutomator2 (para Android)
- Cucumber (BDD)
- Feature files e Step Definitions
- Page Object Pattern
- Spec, allure reporters
- Appium como serviço
appium driver install uiautomator2Navegue até a pasta do projeto e execute:
appiumOu especifique o caminho base:
appium --base-path /wd/hubVerifique se as variáveis de ambiente do Android estão configuradas corretamente:
echo $Env:ANDROID_HOME
echo $Env:ANDROID_SDK_ROOTPara iniciar um emulador específico:
emulator -avd Pixel_6_API_34Se quiser manter o emulador aberto mesmo após fechar o terminal:
Start-Process emulator -ArgumentList "-avd Pixel_6_API_34"adb install C:\projetos\app\apk\VodQA.apkOu navegue até a pasta e execute:
cd C:\projetos\app\apk
adb install VodQA.apkadb shell getprop ro.build.version.release
adb shell dumpsys package com.android.chrome | findstr versionNameArquivo wdio.conf.js:
{
"platformName": "Android",
"deviceName": "Pixel_6_API_34",
"automationName": "UiAutomator2",
"appPackage": "com.vodqareactnative",
"appActivity": "com.vodqareactnative.MainActivity",
"noReset": true
}Para descobrir o nome do pacote e a activity do app:
adb shell pm list packages | findstr "appium"
adb shell dumpsys window | findstr mCurrentFocus
adb shell dumpsys activity activities | findstr "mResumedActivity"Invoke-WebRequest -Uri "http://127.0.0.1:4723/wd/hub/session" -Method Post -Headers @{"Content-Type"="application/json"} -Body (Get-Content -Raw capabilities.json)Ou execute diretamente os testes:
npx wdio run wdio.conf.jsConfigurar Appium Inspector:
- Remote Host: 127.0.0.1
- Remote Port: 4723
- Remote Path: /wd/hub
Capabilities:
{
"platformName": "Android",
"appium:deviceName": "Pixel_6_API_34",
"appium:automationName": "UiAutomator2",
"appium:appPackage": "com.vodqareactnative",
"appium:appActivity": "com.vodqareactnative.MainActivity",
"appium:noReset": true
}services: ['browserstack'],
user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,
capabilities: [{
platformName: "Android",
"appium:deviceName": "Google Pixel 6",
"appium:platformVersion": "12.0",
"appium:automationName": "UiAutomator2",
"appium:app": "bs://08a17866d26d781a7b92efdf06933aff2fc6aecf",
"bstack:options": {
projectName: "VodQA",
buildName: "Teste WebdriverIO",
sessionName: "Teste via Github Actions",
}
}]npm install wdio-browserstack-service --save-devBROWSERSTACK_USERNAME=rodrigodias_lR4iP9 BROWSERSTACK_ACCESS_KEY=b8HCbbsyyhRXKEDmys95 npx wdio run wdio.conf.jsOu apenas:
npx wdio wdio.conf.jsOs relatórios podem ser gerados com Allure ou HTML Report.
Para instalar o Allure:
npm install @wdio/allure-reporter --save-devPara visualizar os relatórios:
allure generate allure-results --clean -o allure-report
allure open allure-reportEste projeto cobre a configuração e execução de testes automatizados mobile com WebdriverIO, Appium e integração com BrowserStack. Siga os passos acima para rodar os testes com sucesso!