Mantis4Testers Docker

Este projeto foi criado com o intuito de fornecer um sistema com Front-end, uma API Rest e um banco de dados de forma simples para que QAs possam praticar automação de testes.

O sistema alvo é o Mantis BugTracker e é utilizado o Docker para gestão do ambiente e banco de dados.

Também é possível utilizar Selenium Grid neste projeto.

Abaixo um passo a passo para a instalação.

1. Preparação do ambiente Mantis

Serão necessárias as seguinte configurações para iniciar o projeto:

Docker-compose: neste repositório é possível encontrar um arquivo chamado "docker-compose.yml", este arquivo contem um grupo de imagens do Mantis, seu banco de dados e o Selenium Grid com seus nós (Mozilla Firefox e Google Chrome).

Crie o diretório local "C:\mantis", baixe o arquivo docker-compose.yml e cole neste diretório criado.

1.1 Setup Docker Mantis

  1. Instalar Docker Desktop e reiniciar a máquina
  2. Caso apresente o erro "WSL 2 installation is incomplete", baixe e instale o WSL2 Kernel e clique em Restart

  1. Abra o aplicativo Docker Desktop

  1. Deverá ser apresentado o tutorial, basta dar skip que você terá esta tela

  1. Abra um terminal e acesse o diretório recém criado: "C:/mantis"

  2. No diretório haverá o arquivo docker-compose.yml

  3. Execute o comando> docker-compose.exe up -d

  4. Após o processamento se tudo correr bem, as imagens serão baixadas e novos contêineres criados:

  1. Para validar a criação e execução dos execute o comando docker ps -a e os contêineres estarão disponíveis e executando:

  1. No aplicativo do Docker Desktop apresentará os containeres ativos conforme imagem:

1.2 Configuração inicial Mantis

Faça o seu primeiro acesso ao Mantis pelo endereço http://127.0.0.1:8989

Após acessar será necessário configurar o banco de dados conforme tabela e valores abaixo:

Variável Valor
Type of Database MySQL Improved
Hostname (for Database Server) mantis_db_1
Username (for Database) mantisbt
Password (for Database) mantisbt
Database name (for Database) bugtracker
Admin Username (to create Database if required) root
Admin Password (to create Database if required) root

Após preencher, clicar em Login/Continue e aguardar o processamento.

O primeiro acesso deverá ser feito utilizando as credenciais administrator/root. Redefinir a senha para o valor administrator ou outro valor fácil de lembrar.

1.3 Acessar banco de dados Mantis/MariaDB

Para acessar ao banco de dados do Mantis (MariaDB) siga os passos abaixo:

  1. Baixe e instale o software HeidiSQL

  2. Ao abrir o Gerenciador de sessões, preencha com os valores abaixo:

  1. Abra a conexão e será possível verificar todas as tabelas e registros:

2. Mantis Bug Tracker REST API

Uma vez com a aplicação sendo executada pelo Docker, é possível também realizar testes manuais ou automatizados de API Rest no Mantis.

Basta acessar a documentação oficial Mantis Bug Tracker REST API para visualizar cada endpoint, parâmetros, headers correspondentes.

É possível também importar todos os endpoints diretamente no Postman para testar ou automatizar esta API Rest. Basta clicar no botão indicado:

O Token é um parâmetro esssencial nas requisições do Mantis Bug Tracker REST API, para gerá-lo:

  1. Acesse o sistema Mantis com o usuário administrador - http://127.0.0.1:8989

  2. Acesse o menu com nome do usuário/Minha Conta

  1. Clique na aba Tokens API

  2. Preencha um novo nome para o token e clique em Criar Token API

  1. Copie o Token gerado e use-o como header em requisições nas suas automações (RestSharp, Postman, SuperTest, RestAssured e demais).

Para a instância local deverá ser usada a url de parâmetro localhost com a porta correspondente 8989. Exemplo de execução no Postman:

3. Selenium Grid

Para a execução remota dos testes automatizados, via selenum grid, serão utilizados os seguintes passos:

  • Configuração dos contêineres hub, node chrome e node mozilla

  • Verificação do console

  • Automação de testes e Selenium Grid

3.1 Configuração dos contêineres hub, node chrome e node mozilla

  • Abrir o prompt de comando

  • Validar que os contêineres estarão disponíveis executando o comando docker ps -a:

  • selenium/node-firefox

  • selenium/node-chrome

  • selenium/hub

3.2 Verificação do console

Após o processamento, os containeres estarão disponíveis e em execução. Em vermelho os referentes ao Selenium:

enter image description here

Ao executar o comando no navegador http://127.0.0.1:4444/grid/console também é possível verificar o console rodando corretamente com seus nós:

enter image description here

3.3 Automação de testes e Selenium Grid Basta fazer as devidas configurações de Remote WebDriver no seu projeto de testes automatizados que os testes poderão ser executados remotamente. Se necessário suba mais containeres para multiplicar os nós.

Exemplo de configuração Remote Driver - BrowserStack.