Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/caioandrian/mobile_webdriverio
template_ci com webdriverio e page objects
https://github.com/caioandrian/mobile_webdriverio
Last synced: 14 days ago
JSON representation
template_ci com webdriverio e page objects
- Host: GitHub
- URL: https://github.com/caioandrian/mobile_webdriverio
- Owner: caioandrian
- License: mit
- Created: 2023-09-02T16:18:39.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-03T12:54:49.000Z (about 1 year ago)
- Last Synced: 2024-10-10T23:48:38.683Z (about 1 month ago)
- Language: JavaScript
- Size: 37.1 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Template Appium com Webdriverio
Esta documentação tem como objetivo auxiliar na compreensão da arquitetura do framework de automação.
**Seções:**
[Template Appium com Webdriverio](#template-appium-com-webdriverio)
- [Instalação e Execução do Projeto](#instalação-e-execução-do-projeto)
- [Instalação NodeJs](#instalação-nodejs)
- [Instalação Visual Studio Code](#instalação-visual-studio-code)
- [Instalação Android Studio](#instalação-do-android-studio)
- [Instalação Appium](#instalação-do-appium)
- [Execução do Projeto](#execução-do-projeto)
- [Extensões](#extensões-do-visual-studio)
- [Entendendo o Padrão Page Object](#entendendo-o-padrão-page-object)
- [Sobre o Webdriverio](#sobre-o-webdriverio)
- [Arquitetura do projeto e framework de automação](#arquitetura-do-projeto-e-framework-de-automação)
## Instalação e Execução do Projeto
Para realizar nossa automação, usamos o Appium com Webdriver WD que é um framework que usa como base o Javascript para a escrita do seu código.
Para utilizar o projeto de automação mobile, é necessário realizar as seguintes instalações:
- NodeJs (versão LTS)
- Visual Studio Code
- Android Studio
- Appium### Instalação NodeJs
**1**. Acessar página e recomenda-se baixar a versão mais estável;
**2**. Após download, abrir o instalador e clicar nos botões de _Next_ até o final e, por último, nos botões de _Install_ e _Finish_.
**Pronto, o NodeJs foi instalado!**### Instalação Visual Studio Code
**1**. Acessar https://code.visualstudio.com/download e baixar a versão para Windows;
**2**. Após download, abrir o instalador e clicar nos botões de _Next_ até o final e, por último, no botão de _Finish_.
O Visual Studio Code abrirá automaticamente e pronto.
**Instalação concluída!**### Instalação do Android Studio
**1**. Acessar https://developer.android.com/studio e baixar a versão para Windows;
**2**. Após download, abrir o instalador e clicar nos botões de _Next_ até o final e, por último, no botão de _Finish_.
**Instalação concluída!**### Instalação do Appium
**1**. Acessar https://appium.io/ e baixar a versão para Windows;
**Instalação concluída!**
### Execução do Projeto
**1**. Dentro do VScode, abrir a pasta clonada e executar no terminal o comando ```npm install```;
> Isso fará com que, na nossa estrutura de pastas, seja criado um _node_modules_ com várias dependências, incluindo o webdriverio.
**2**. Com o Android Studio aberto, criar um novo device em Tools/AVD Manager.
> Exemplo, Nexus 5X, Android 11.0, API lvl 30
**3**. A próxima etapa é executar o comando ``` npm run android-web:local-bdd-google```.
> Lembre-se de estar na pasta appium-mobile/test
**Pronto!**
#### Extensões do Visual Studio
Abaixo seguem alguns plugins que nos auxiliam na nossa automação. São eles:
- JavaScript (ES6) code snippets
- Commit Message Editor - **Formatador de commits**
- Markdown Preview Enhanced - **Visualizador de arquivos .md**
- Prettier - Code formatter - **Formatador de código**
- Material Icon Theme
- Cucumber (Gherkin) Full Support
- Snippets and Syntax Highlight for Gherkin (Cucumber)
- Bracket Pair Colorizer 2
- ES6 Mocha Snippets## Entendendo o Padrão Page Object
O padrão Page Objects é muito utilizado nos projetos de automação de testes como uma forma de organizar melhor nosso código.
Ele serve para separar responsabilidades, ou seja:
- Vamos ter um local onde ficará descrita a **ação** da página que estamos trabalhando.
- E um outro local para os **elementos** dessa página.
Resumidamente, ao usar o Page Objects, estamos construindo uma classe para cada página de testes.
Esses são os passos necessários para usar o padrão Page Objects no nosso projeto!
####Vantagens de usar Page Objects:
Dentro as muitas vantagens, podemos destacar:
- Padronização;
- Organização;
- Independência dos testes;
- Evita duplicação de código;
- Fácil de manter;
- Seletores de elementos em um único lugar.## Sobre o Webdriverio
O framework é uma estrutura de automação progressiva desenvolvida para automatizar aplicativos mobile, web e desktop
Link da documentação: https://webdriver.io/docs/gettingstarted## Arquitetura do projeto e framework de automação
- **config**: Arquivos de configurações para teste local, browserstack, lambdatest e saucelabs
- **web**: Para teste em navegador no mobile
- **app**: Para teste em APP no mobile
- **e2e**: Para teste em APP no mobile
- spec - Features com cenários em BDD
- steps_definitions - Lista de métodos/steps que estão associados ao BDD.- **fixtures**: Arquivos de massas a serem usadas na automação, sendo estáticas ou dinâmicas.
- **Pages**: Representa abstração de páginas, com métodos e seus elementos. Fica definida as seguintes convenções:
- Pasta com o nome da página
- - elements.js - lista de seletores usados na página
- - index.js - lista de métodos usados nos cenários dessa página