├── README.md ├── cypress ├── README.md └── images │ ├── cypress2.png │ ├── cypress3.png │ └── cypress4.png └── robot-framework ├── README.md └── images ├── robot1.png └── robot2.png /README.md: -------------------------------------------------------------------------------- 1 | # Manuais - Frameworks do dia a dia de um QA 2 | 3 | Caso queira contribuir, é só criar uma pasta na raiz do projeto com o nome do framework com um arquivo markdown dentro nomeado de "README.md" 4 | -------------------------------------------------------------------------------- /cypress/README.md: -------------------------------------------------------------------------------- 1 |

2 | Automatização de testes web: configurando ambiente Cypress + Mochawesome 3 |

4 | 5 |

6 | O Cypress utiliza linguagem Javascript com algumas bibliotecas para sintaxe de comportamento (Mocha, Chai, Sinon). 7 |
8 | Você precisará ter o Node instalado na máquina para conseguir rodar as automatizações. 9 |
10 | Podemos rodar o Cypress em modo ‘headless’ (sem abrir o navegador visualmente) ou abrindo com o módulo para desktop. 11 |
12 | Também é possível gerar relatórios com a instalação de bibliotecas adicionais. 13 |

14 | 15 |

Passo a passo inicial:

16 | 17 |

18 | 1. Caso você esteja começando o projeto do zero precisará criar o arquivo ‘package.json’. 19 | Utilizando npm, abra o terminal na raiz do projeto e digite: 20 | 21 | ```bash 22 | npm init 23 | ``` 24 |

25 | 26 |

27 | 2. Instale o Cypress como dependência de desenvolvimento via terminal: 28 | 29 | ```bash 30 | npm --save-dev cypress 31 | ``` 32 |

33 | 34 |

35 | 3. Você também precisará instalar o Cypress para desktop para usufruir do selector playground 36 | (vai te ajudar a muito a localizar os elementos!): 37 |
38 | Link para download: Cypress 39 | versão para desktop 40 | 41 |

42 | 43 |

44 | 4. Para rodar o Cypress pela primeira vez e instalar a estrutura de pastas e algumas specs exemplos de teste, você pode digitar comando no terminal: 45 | 46 | ```bash 47 | npx cypress open 48 | ``` 49 |

50 | 51 |

52 | 5. Para gerar relatórios, utilizo o mochawesome, um dos reporters recomendados pela documentação oficial. 53 |
54 | Ao rodar o comando do mochawesome, além de podermos gravar a execução em mp4, serão criados vários JSON (um para cada spec de teste). Para uni-los, utilizo o mochawesome-merge, que criará um arquivo 'output.json'. 55 |
56 | Para facilitar a visualização, utilizo o mochawesome-report-generator para transformar o 'output.json' em um arquivo .html. 57 | 58 | ```bash 59 | npm install --save-dev mochawesome mochawesome-merge mochawesome-report-generator 60 | ``` 61 |

62 | 63 |

64 | E depois de rodar esses comandos, a estrutura de pastas será assim: 65 |

66 | 67 |

68 | 69 |

70 | 71 |

72 | Ajuste as configurações do Reporter no arquivo 'cypress.json' (na raiz do projeto) 73 |

74 | 75 |

76 | 77 |

78 | 79 |

80 | Configure scripts para facilitar os comandos do Reporter no arquivo 'package.json' (na raiz do projeto) 81 |

82 | 83 |

84 | 85 |

86 | 87 |

88 | Explicando cada linha do ‘package.json’ 89 |

90 | 91 |
  • 92 | Para abrir o módulo desktop do Cypress: 93 | 94 | ```bash 95 | "cy:open": "cypress open" 96 | ``` 97 |
  • 98 | 99 |
  • 100 | Para rodar as specs de teste no formato 'headless' (usa Electron por default): 101 | 102 | ```bash 103 | "cy:run": "cypress run" 104 | ``` 105 |
  • 106 | 107 |
  • 108 | Para apagar as pastas de relatórios e vídeos antigos: 109 | 110 | ```bash 111 | "report:cleanup": "rm -fr cypress/report/" 112 | ``` 113 | 114 | ```bash 115 | "video:cleanup": "rm -fr cypress/videos/" 116 | ``` 117 |
  • 118 | 119 |
  • 120 | Para rodar os testes no Chrome, em modo 'headless', e gerar os relatórios na extensão '.json' na pasta ‘cypress/report/mochawesome-report’: 121 | 122 | ```bash 123 | "test:e2e": "cypress run --headless --browser chrome" 124 | ``` 125 |
  • 126 | 127 |
  • 128 | Para unificar todos os relatórios de teste no 'cypress/report/output.json’: 129 | 130 | ```bash 131 | "report:merge": "mochawesome-merge cypress/report/mochawesome-report/*.json > cypress/report/output.json" 132 | ``` 133 |
  • 134 | 135 |
  • 136 | Para transformar o relatório em extensão html (‘cypress/report/output.html’): 137 | 138 | ```bash 139 | "report:generate": "marge cypress/report/output.json --reportDir ./ --inline" 140 | ``` 141 |
  • -------------------------------------------------------------------------------- /cypress/images/cypress2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorainegarutti/manuais/44260836f7cb98f9f594e54497834354587684cf/cypress/images/cypress2.png -------------------------------------------------------------------------------- /cypress/images/cypress3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorainegarutti/manuais/44260836f7cb98f9f594e54497834354587684cf/cypress/images/cypress3.png -------------------------------------------------------------------------------- /cypress/images/cypress4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorainegarutti/manuais/44260836f7cb98f9f594e54497834354587684cf/cypress/images/cypress4.png -------------------------------------------------------------------------------- /robot-framework/README.md: -------------------------------------------------------------------------------- 1 |

    2 | Automatização de testes mobile: configurando ambiente Robot + Appium Library 3 |

    4 | 5 |

    6 | Conhecendo o Robot Framework 7 |

    8 | 9 |

    10 | Clique aqui para acessar a documentação oficial do Robot. 11 |

    12 | É um framework open source escrito em Python e é utilizado para automatização de testes em geral (APIs, web, mobile). Traduz linguagem natural para Python, então não é preciso muito conhecimento técnico de programação para automatizar os testes. 13 |
    14 | Utiliza bibliotecas e ferramentas adicionais que fazem a tradução de palavras-chave em código. Usaremos a Appium Library para automatizar aplicações mobile. 15 | Clique aqui para ver a documentação da Appium Library. 16 |

    17 | A Appium Library permitirá que utilizemos palavras-chave como ‘Click Element’, ‘Close Application’, ‘Element Text Should Be’, etc.. 18 |
    19 | Os únicos locators válidos para Appium + Android UIAutomator2 são: 'accessibility id', 'id', 'class name' ou 'xpath' — altamente desencorajado por causa da instabilidade da ‘DOM’. 20 |

    21 | 22 |

    23 | 24 | O Robot Framework roda em Python e precisa ter o Node instalado na máquina para conseguir rodar as automatizações. 25 |
    26 | Para o setup, é necessário configurar as variáveis de ambiente JAVA_HOME e ANDROID_HOME, bem como a instalação do Appium para Desktop (auxílio na inspeção de elementos) 27 |
    28 |
    29 | Clique aqui para acompanhar o manual de configuração da Maria Clara. 30 |

    31 | 32 |

    33 | Instalando o Robot Framework 34 |

    35 | 36 |

    37 | 1. Abra o prompt de comando do Windows e digite o comando: 38 | 39 | ```bash 40 | pip install robotframework 41 | ``` 42 |

    43 | 44 |

    45 | 2. Instale as extensões específicas do VSCode: 46 |

    47 | Instale a versão oficial para rodar o Python: 48 |

    49 | 50 |

    51 | 52 | E também a extensão do Robot Framework Intellisense (ele te ajudará em sintaxes próprias dos arquivos de teste '.resource' e '.robot'): 53 |

    54 | 55 |

    56 |

    57 | -------------------------------------------------------------------------------- /robot-framework/images/robot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorainegarutti/manuais/44260836f7cb98f9f594e54497834354587684cf/robot-framework/images/robot1.png -------------------------------------------------------------------------------- /robot-framework/images/robot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorainegarutti/manuais/44260836f7cb98f9f594e54497834354587684cf/robot-framework/images/robot2.png --------------------------------------------------------------------------------