Este projeto foi criado com o intuito de aprender sobre o RESTASSURED e cumprir metas de um desafio de automação de APIREST.
O sistema alvo é o Mantis BugTracker
Durante o Desenvolvimento foram abordados os seguintes tópicos:
👉 Setup inicial de projeto com Docker (MariaDB, Jenkins e Mantis BT)
👉 Criação de testes DataDriven para Usuários e Projetos lendo de um arquivo Excel
👉 Criação de modelo de dados para o mapeamento de entidades em bancos de dados
👉 Desenvolvimento de operações para: Criar,Remover, Atualizar e Buscar (Issues,Projetos,Usuários, Filtros e Configurações)
👉 Desenvolvimento de testes unitários para validação de funcionalides básicas: Criação, listagem, remoção, atualização de (Usuários,Projetos,Issues,Filtros e Configurações)
👉 Criação de um Script para criar uma string randomica em Java Script
👉 Criação de testes DataDriven para Usuários e Projetos lendo de um arquivo Excel Ambiente de CI utilizando o Jenkins
Serão necessárias as seguinte configurações para iniciar o projeto:
📗 Foi utilizado com o DockerToolBox para instalação do DockerQuickStartTerminal e VirtualBox
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 Jenkins onde vai rodar o ambiente de CI.
-
Instalar a Máquina Virtual (Virtual Box)
-
Instalar o DockerToolbox
-
Abra o aplicativo Docker QuickstartTerminal
-
Abra um terminal e acesse o diretório onde contém o arquivo do docker-compose
-
No diretório haverá o arquivo docker-compose.yml
-
Execute o comando>
docker-compose.exe up -d
-
Após o processamento se tudo correr bem, as imagens serão baixadas e novos contêineres criados:
-
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.
-
Com o tópico 1.1 já realizado, executar no Docker Quickstart Terminal, o comando
docker-machine ip
e coletar a informação -
Abrir o software VirtualBox (última versão deverá estar instalada)
-
Encontrar a imagem referente ao docker
-
Acessar "Configurações"
-
Acessar "Redes"
-
Acessar "Avançado"
-
Acessar "Redirecionamento de Portas"
-
A configuração para funcionar no docker toolbox deverá estar dessa maneira:
-
Incluir linha conforme nome "docker"
-
Protocolo: TCP
-
Endereço de Hospedeiro: 127.0.0.1
-
Porta de Hospedeiro: 80
-
IP Convidado preenchido com o valor recebido do docker (docker-machine ip default): 192.168.99.100
-
Porta do convidado: 80
MariaDb/Mantis/Jenkis:
-
Encontrar a imagem referente ao docker
-
Acessar "Configurações"
-
Acessar "Redes"
-
Acessar "Avançado"
-
Acessar "Redirecionamento de Portas"
-
A configuração para funcionar no docker toolbox deverá estar dessa maneira:
-
Incluir linha conforme nome "docker"
-
Protocolo: TCP
-
Endereço de Hospedeiro: 127.0.0.1
-
Porta de Hospedeiro: 3306
-
IP Convidado preenchido com o valor recebido do docker (docker-machine ip default): 192.168.99.101
-
Porta do convidado: 3306
-
Faça isso para o Mantis e o Jenkins
Faça o seu primeiro acesso ao Mantis pelo endereço http://192.168.99.101: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) | 192.168.99.101 |
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.
Para acessar ao banco de dados do Mantis (MariaDB) siga os passos abaixo:
-
Baixe e instale o Dbeaver
-
Crie uma nova conexão é configure da seguinte maneira :
Variável | Valor |
---|---|
Server Host | localhost |
Username | root |
Password | root |
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:
-
Acesse o sistema Mantis com o usuário administrador - http://192.168.99.101:8989/
-
Acesse o menu com nome do usuário/Minha Conta
-
Clique na aba Tokens API
-
Preencha um novo nome para o token e clique em Criar Token API
- 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:
Para a execução remota dos testes automatizados, via jenkins foi executados os seguintes passos:
- Criação de um DockerFile, que está na pasta Utils do Projeto (atráves desse Dockerfile e criado uma imagem do Jenkins contendo o Maven)
Execute o comando no QuickStartTerminal>
docker build -t jenkins-maven .
ex. Faça isso antes de subir o compose - Acessar o endereço do Jenkins vai ter provávelmente nesse endereço : http://192.168.99.101:8081 vai ser necessário uma chave.
Execute o comando no QuickStartTerminal>
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
✔️ Crie um novo Job
✔️ Configure o Job (Nome e Tipo)
✔️Colocar o Projeto Git no Jenkins e Adicionar as credenciais git para baixar
- Adicionar o Plugin o HTML Report
✔️ Gerenciar Jenkins
✔️ Gerenciar Plugins
✔️ HTML Plugin
- Configurar o SufireReport
- Configurar o HTML Report
- Rodar Projeto
✔️ Foram Criados mais de 50 Scripts de Automação Utilizando as API's
✔️ Criação de Projetos e Usuários Utilizando DataDriven
✔️ Nome de Projeto e Usuário utilizando uma String Randomica gerada através do JavaScript(Node.Js)
✔️ Script Utilizado
✔️ Criação de Queries para Inserir e Deletar informações necessárias
✔️ Utilização do Jenkins como Ambiente de CI para rodar e também mostrar o relatório gerado
Passos Abaixo:
- Gerenciar no Mantis
- Apos isso siga a imagem abaixo
- A configuração será a seguinte