Git Product home page Git Product logo

s206's Introduction

CypressCI KarateCI

S206 - Qualidade de Software

  • Repositório da disciplina Qualidade de Software - S206.
  • Instituto Nacional de Telecomunicações - Inatel.
  • Curso: Engenharia de Software.
  • Prof. Christopher Lima

Para acompanhar a parte prática desta disciplina, será necessário utilizar algumas ferramentas para quem utiliza o SO Windows:

Instalação do ambiente de desenvolvimento:

  1. Git Bash (Git for Windows - mais leve) https://gitforwindows.org/

  2. Nodejs (node): https://nodejs.org/en/

  3. IDE VSCode (code): https://code.visualstudio.com/ OBS: Pode usar qualquer IDE. Eclipse, InteliJ...fica a seu critério.

  4. JDK (java): https://www.oracle.com/java/technologies/javase-downloads.html

  5. Maven (mvn) https://maven.apache.org

Instalação - Cypress (Teste de UI):

  1. Faça a instalação do cypress via linha de comando. Abra o terminal e digite
npm install cypress
  1. Caso não queira utilizar o cypress pelo NPM, pode fazer o download direto do site: https://www.cypress.io/

Link para download direto: https://download.cypress.io/desktop

Basta baixar, extrair, executar o Cypress.exe e apontar para o diretório do projeto desejado na interface do cypress. Utilize a IDE para editar o código.

Instalação - Karate (Teste de API):

  1. Utilizaremos o maven (mvn) para fazer a instalação do Karate via pom.xml. Então crie um projeto Maven e cole a seguinte dependencia no pom.xml:
<dependency>
    <groupId>com.intuit.karate</groupId>
    <artifactId>karate-junit5</artifactId>
    <version>1.1.0</version>
    <scope>test</scope>
</dependency>
  1. Abre o terminal e digite o comando, no diretório do pom.xml criado anteriormente.
mvn clean install

Após a instalação de todos os itens, teste seu ambiente: Abra a linha de comando (gitbash ou cmder) e digite:

Testando as instalações

which git
which node
which code (Se tiver usando o VSCode)
which mvn

A resposta de cada comando deve ser o local de instalação de cada ferramenta.

java --version
mvn --version

A resposta de cada comando deve ser a versão instalada.

Comandos úteis cypress (utilize a aula para enteder o que cada comando faz):

Criar o diretório inicial e indicar para o node que o diretório é um projeto
npm init

Baixar as dependencias do projeto (caso já tenha baixado o código do git)
npm install

Abrir cypress pela linha de comando:
./node_modules/.bin/cypress open

Rodar specs por linha de comando:
./node_modules/.bin/cypress run --spec 'cypress/integration/aula_inatel/**/'

Para gerar um report HTML, siga os 3 comandos abaixo:

1. Adicionando as dependências necessárias para gerar o reporte de testes:
npm install --save-dev mochawesome mochawesome-merge mochawesome-report-generator 
	
2. Fazendo merge dos arquivos .json gerados (Após a execução dos testes):
npx mochawesome-merge "cypress/reports/*.json" > mochawesome.json 

3. Gerando o HTML bonito com os reports:
npx marge mochawesome.json 

Comandos úteis Karate (utilize a aula para enteder o que cada comando faz):

Criar estrutura inicial Karate:

mvn archetype:generate \
-DarchetypeGroupId=com.intuit.karate \
-DarchetypeArtifactId=karate-archetype \
-DarchetypeVersion=1.0.1 \
-DgroupId=aula.inatel \
-DartifactId=aula_inatel

Executar um teste a partir do Runner ou suíte:
mvn test –Dtest=StarWarsRunner

Executar testes separados por tags:
mvn test -Dkarate.options="--tags @tag”

Para ignorar alguma tag:
mvn test -Dkarate.options="--tags ~@tag" 

Todas as tags podem ser configuradas na classe da suíte de testes. (InatelTest.Java)

s206's People

Contributors

chrislima avatar

Stargazers

Rangel avatar Fabio Fiorita avatar ÁlvaroBreno avatar Luiza Monroe de Pádua avatar

Watchers

 avatar

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.