Giter Site home page Giter Site logo

project_base_karate's Introduction

Proyecto Base de Karate para pruebas de integración en AcceptanceTest - REST, GraphQL, SOAP

Karate es una herramienta de código abierto que combina la automatización de pruebas de API, simulacros , pruebas de rendimiento e incluso la automatización de la interfaz de usuario en un marco único y unificado . La sintaxis BDD popularizada por Cucumber es un lenguaje neutro y fácil incluso para los no programadores. Las afirmaciones y los informes HTML están integrados y puede ejecutar pruebas en paralelo para aumentar la velocidad.

Si está familiarizado con Cucumber / Gherkin, la gran diferencia aquí es que no necesita escribir código extra de "pegamento" o "definiciones de pasos" de Java.

RECOMENDACION !!!: Visitar la documentacion oficial para obtener todas las ventajas de este potencial framework: https://github.com/intuit/karate

Comenzando 🚀

Este proyecto se descargará por medio del plugin del scaffold de clean architecture desarrollado por Ingenieria del Software expuesto en github como aporte OpenSource

Pre-requisitos 📋

Para desarrollar y ejecutar pruebas con karate requieres unas cosas muy simples:

  • Java >= 1.8
  • gradlew >= 6.0
  • dependencias de karate en el build.gradle: karate-junit5:1.0.1

Instalación 🔧

Este proyecto se descargará por medio del plugin del scaffold de clean architecture desarrollado por Ingenieria del Software expuesto en github como aporte OpenSource

IMPORTANTE: Este proyecto es una demo, proyecto base, para estructurar las pruebas de integracion (AcceptanceTest) que se realizarán, no es funcional si se ejecuta sin modificar, por eso a continuacion de contamos que debes modificar y configurar para comenzar en tu contexto de aplicacion con las pruebas:

  • Ir al karate-config.js y modifical la urlBase por la url o endpoint de tu aplicacion
  • Ir a los archivos .feature (src>test>resources>karate) agregar tus escenarios, metodos de prueba, aserciones, y todo lo necesario para tus pruebas en particular
  • Ir a los runners de prueba (src>test>java>karate) y agregar en Runner.path(nombre del feature a probar)

Aquí se detalla la estructura que debe guiar las pruebas con Karate, es un ejemplo:

├───src
    └───test
        ├───java
        │   └───karate
        │   |    ├───demo1
        |   |    |    └───DemoUnoRunner.java
        │   |    └───demo2
        |   |         └───DemoDosRunner.java
        |   └───TestParallel.java
        |
        └───resources
            └───karate
            |    ├───demo1
            |    |   └───demo_uno.feature
            |    └───demo2
            |        └───demo_dos.feature
            └───karate-config.js
            └───logback-test.xml
  • TestParallel -> Clase general en java que ejecuta los TESTS de karate en Paralelo y tambien genera el reporte de dichos TESTS en formato json que luego se convierte en reporte cucumber

Ejecutando las pruebas ⚙️

gradlew clean test -i

Despliegue 📦

Las pruebas de karate se deben promover por medio de una tarea publish artifact apuntando al path, esto en el pipeline de CI/CD en Azure DevOps que está enlazado con el repositorio contenedor de las pruebas

Construido con 🛠️

  • Karate - El framework usado para integration test
  • Gradle - Manejador de dependencias
  • Cucumber Reporting - Usado para generar reporte documentacion viva

Wiki 📖

Puedes encontrar mucho más de cómo utilizar este framework karate en nuestra Wiki

Autores ✒️

  • Mauricio Puerta - Pruebas Continuas
  • Santiago Garcia - Ingeniería de Software

⌨️ con ❤️ por maupuert 😊

project_base_karate's People

Watchers

 avatar  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.