Giter Club home page Giter Club logo

projetoapibase's Introduction

Projeto Desafio Mantis

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

1. hp

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.

1.1 hp5

  1. Instalar a Máquina Virtual (Virtual Box)

  2. Instalar o DockerToolbox

  3. Abra o aplicativo Docker QuickstartTerminal

  1. Abra um terminal e acesse o diretório onde contém o arquivo do docker-compose

  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:

  5. 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.2 hp6

  1. Com o tópico 1.1 já realizado, executar no Docker Quickstart Terminal, o comando docker-machine ip e coletar a informação

  2. Abrir o software VirtualBox (última versão deverá estar instalada)

  3. Encontrar a imagem referente ao docker

  4. Acessar "Configurações"

  5. Acessar "Redes"

  6. Acessar "Avançado"

  7. Acessar "Redirecionamento de Portas"

  8. A configuração para funcionar no docker toolbox deverá estar dessa maneira:

enter image description here

  1. Incluir linha conforme nome "docker"

  2. Protocolo: TCP

  3. Endereço de Hospedeiro: 127.0.0.1

  4. Porta de Hospedeiro: 80

  5. IP Convidado preenchido com o valor recebido do docker (docker-machine ip default): 192.168.99.100

  6. Porta do convidado: 80

MariaDb/Mantis/Jenkis:

  1. Encontrar a imagem referente ao docker

  2. Acessar "Configurações"

  3. Acessar "Redes"

  4. Acessar "Avançado"

  5. Acessar "Redirecionamento de Portas"

  6. A configuração para funcionar no docker toolbox deverá estar dessa maneira:

enter image description here

  1. Incluir linha conforme nome "docker"

  2. Protocolo: TCP

  3. Endereço de Hospedeiro: 127.0.0.1

  4. Porta de Hospedeiro: 3306

  5. IP Convidado preenchido com o valor recebido do docker (docker-machine ip default): 192.168.99.101

  6. Porta do convidado: 3306

  7. Faça isso para o Mantis e o Jenkins

1.3 hp7

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.

1.4 hp8

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

  1. Baixe e instale o Dbeaver

  2. Crie uma nova conexão é configure da seguinte maneira :

Variável Valor
Server Host localhost
Username root
Password root

2. hp2

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://192.168.99.101: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. hp3

Para a execução remota dos testes automatizados, via jenkins foi executados os seguintes passos:

  1. 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
  2. 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

jenkinsjob
✔️ Configure o Job (Nome e Tipo)

job

✔️Colocar o Projeto Git no Jenkins e Adicionar as credenciais git para baixar

adicionarChave

codigo

  1. Adicionar o Plugin o HTML Report

✔️ Gerenciar Jenkins

gerenciar

✔️ Gerenciar Plugins

gerenciarPlugins

✔️ HTML Plugin

htmlPlugin

  1. Configurar o SufireReport

jenkinssufire

  1. Configurar o HTML Report

html

  1. Rodar Projeto

buildJekins

4. hp4

✔️ Foram Criados mais de 50 Scripts de Automação Utilizando as API's

casosdeTeste

✔️ Criação de Projetos e Usuários Utilizando DataDriven

dataUser

projeto

✔️ Nome de Projeto e Usuário utilizando uma String Randomica gerada através do JavaScript(Node.Js)

classe

✔️ Script Utilizado

funcao

✔️ Criação de Queries para Inserir e Deletar informações necessárias

queries

✔️ Utilização do Jenkins como Ambiente de CI para rodar e também mostrar o relatório gerado

relatorio

4.1 hp9

Passos Abaixo:

  1. Gerenciar no Mantis
  2. Apos isso siga a imagem abaixo

timetracking

  1. A configuração será a seguinte

confiTrack

projetoapibase's People

Contributors

larissabicalho avatar

Watchers

James Cloos avatar  avatar

projetoapibase's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.