martes, 20 de agosto de 2019

Instalación NodeJS


  • Ingresamos a la página oficial de NodeJS donde lo descargaremos https://nodejs.org/en/download/
  • Escogemos el instalador que se ajuste a nuestro sistema operativo, en este caso Windows Installer (.msi). De inmediato debe empezar la descarga.

  • Luego de la descarga ejecutamos el instalador. Se recomienda instalarlo en la ruta por defecto para que sea más facil de hallar.
  • Para verificar que todo quedo bien, abre una consola, lo puedes hacer buscando cmd.

    • Al abrirlo veremos una consola como la siguiente.

    • Donde debemos ingresar el comando node -v lo que nos debe mostrar la versión actual de nodeJS que tenemos instalado, se debe ver algo como lo siguiente.


Esta es la última guía para configurar e instalar nuestro ambiente de automatización haz click acá para ver alguna de las guías anteriores. Si tienes algún problema no dudes en escribirme al correo cdanielmg200@gmail.com

viernes, 16 de agosto de 2019

Instalación Plugin Cucumber


  • Abrimos IntelliJ si es la primera vez o no haz abierto ningún proyecto veras una ventana muy parecida a esta.
  • En este caso hacemos click en Configure, en donde se despliega una lista en la cual debes hacer click en Settings.
  • En el caso en que tengas abierto un proyecto debes hacer click en File y luego en Settings.

  • Independiente del camino que hayas tomado veras la siguiente ventana.

  • En donde debes hacer click en la opción Plugins del menú vertical.
  • Ahora filtramos por la palabra cucumber ubicamos al plugin llamado Cucumber for Java y hacemos click en el botón Installed.

  • Hacemos click en OK.
  • Para finalizar IntelliJ nos pedirá reiniciar la aplicación, en caso de no ser así cierra y vuelve a abrir IntelliJ.

Esta es la quinta guía para configurar e instalar nuestro ambiente de automatización haz click acá para seguir con la configuración. Si tienes algún problema no dudes en escribirme al correo cdanielmg200@gmail.com

Instalación IntelliJ IDEA



  • Como se observa en la imagen anterior por defecto la página detecta el sistema operativo, en caso de no ser así puedes escogerlo en la zona marcada con el ovalo rojo, seguido a esto hacemos click en el botón de descarga de la versión Community, la cual es la versión gratuita y open-source.
  • Al finalizar la descarga, ejecutamos el instalador. 
Esta es la cuarta guía para configurar e instalar nuestro ambiente de automatización haz click acá para seguir con la configuración. Si tienes algún problema no dudes en escribirme al correo cdanielmg200@gmail.com

Instalación Git



  • Por lo general la página detecta el sistema operativo de tu computadora y te sugiere la versión a descargar puedes hacer click en el botón de descarga (en la imagen tiene el texto Download 2.22.0 for Windows) o en caso que esto no sea así, tienes la opción de escoger el sistema operativo, hacer click en el y de inmediato empezará la descarga.
  • Al finalizar la descarga, ejecutamos el instalador. 
  • Para verificar que todo quedo bien abre una consola, lo puedes hacer buscando cmd.


  • Al abrirlo veremos una consola como la siguiente.

  • Donde debemos ingresar el comando git version lo que nos debe mostrar la versión actual de Git que tenemos instalado, se debe ver algo como lo siguiente.



    Esta es la tercera guía para configurar e instalar nuestro ambiente de automatización haz click acá para seguir con la configuración. Si tienes algún problema no dudes en escribirme al correo cdanielmg200@gmail.com

Instalación Gradle


  • Ingresamos a la página oficial de Gradle donde descargaremos Gradle 4.7 https://gradle.org/next-steps/?version=4.7&format=bin
  • De inmediato se debe abrir una ventada donde debes seleccionar la ubicacion de la descarga o en su defecto debe empezar a descargar de inmediatamnte un archivo .zip.
  • Guardamos, al finalizar la descarga descomprimimos el arvhivo. Yo recomiendo que tengas una carpeta llamada Gradle y dentro de ella descomprimas las versiones de gradle que requieras (para nuestro entorno solo necesitamos la version 4.7), esta carpeta se vería algo así.
  • Si ingresamos a cualquiera de las versionas de gradle, como por ejemplo el gradle-4.7 deberiamos ver algo como lo siguiente.


Configurando la variable de entorno (Windows)

  • Al abrir cualquier carpeta puedes ver el icono de This PC o Este PC al cual le damos clic con el boton derecho del Mouse lo que nos mostrara la siguiente ventana.

  • Luego hacemos click en Propiedades, lo que nos abrirá la siguiente ventana.
  • Hacemos click en Configuración avanzada del sistema. Nos mostrará la siguiente ventana.
  • Hacemos click en variables de ambiente. Lo que nos muestra la siguiente ventana.
  • Hacemos click en nuevo y agregamos la siguiente información.
  • Hacemos click en OK.
  • NOTA: Es importante que el valor de la variable corresponda a la ubicación donde descomprimiste la version de Gradle.
  • Por ultimo vamos a modificar el Path para lo cual lo buscamos la variable de entorno con ese nombre, la seleccionamos y hacemos click en Editar.
  • En la ventana que se abre hacemos click en nuevo.

  • Agredamos %GRADLE_HOME%\bin

  • Hacemos click en OK, luego otra vez click en OK y por ultimo nuevamente click en OK.
  • Para verificar que todo quedo bien abre una consola, lo puedes hacer buscando cmd.

  • Al abrirlo veremos una consola como la siguiente.

  • Donde debemos ingresar el comando gradle -v lo que nos debe mostrar la versión actual de gradle que tenemos instalado, se debe ver algo como lo siguiente.





Esta es la segunda guía para configurar e instalar nuestro ambiente de automatización haz click acá para seguir con la configuración. Si tienes algún problema no dudes en escribirme al correo cdanielmg200@gmail.com

Instalación JDK (Java 8)




  • Si te vas a autenticar veras la siguiente página. 



  • Al autenticarte te lleva nuevamente a la página de descarga. 
  • Si escogiste crear una cuenta nueva debes llenar el siguiente formulario.


  • Luego de llenar el formulario y hacer click en Create Account veras la siguiente página.

  • Cuando entres a tu correo para confirmar tu correo encontraras un email como este.
  • Al hacer click en Verify email address te llevará a la siguiente página.

  • Al hacer clic en Continue te llevará a la página de descarga si por algún motivo no lo hace o aparece algun error como el siguiente, puedes repetir los dos primeros pasos y en el segundo ya escoges iniciar sesión.
  • Ya nuevamente en la página de descarga, en la parte inferior encontramos la siguiente información.

  • Aceptamos la Licencia y escogemos el instalador de acuerdo a nuestro sistema operativo. 
  • Escogemos la ruta de descarga

  • Después de este paso empieza la descarga.
  • Luego de la descarga ejecutamos el instalador. Se recomienda instalarlo en la ruta por defecto para que sea más facil de hallar.

Configurando la variable de entorno (Windows)

  • Al abrir cualquier carpeta puedes ver el icono de This PC o Este PC al cual le damos clic con el boton derecho del Mouse lo que nos mostrara la siguiente ventana.

  • Luego hacemos click en Propiedades, lo que nos abrirá la siguiente ventana.
  • Hacemos click en Configuración avanzada del sistema. Nos mostrará la siguiente ventana.
  • Hacemos click en variables de ambiente. Lo que nos muestra la siguiente ventana.
  • Hacemos click en nuevo y agregamos la siguiente información.

  • Hacemos click en OK.
  • NOTA: Es importante que el valor de la variable corresponda a la ubicación donde instalaste el JDK.
  • Por ultimo vamos a modificar el Path para lo cual lo buscamos la variable de entorno con ese nombre, la seleccionamos y hacemos click en Editar.
  • En la ventana que se abre hacemos click en nuevo.

  • Agredamos %JAVA_HOME%\bin
  • Hacemos click en OK, luego otra vez click en OK y por ultimo nuevamente click en OK.
  • Para verificar que todo quedo bien abre una consola, lo puedes hacer buscando cmd.

  • Al abrirlo veremos una consola como la siguiente.

  • Donde debemos ingresar el comando java -version lo que nos debe mostrar la versión actual de java que tenemos instalado, se debe ver algo como lo siguiente.



Esta es la primera guía para configurar e instalar nuestro ambiente de automatización haz click acá para seguir con la configuración. Si tienes algún problema no dudes en escribirme al correo cdanielmg200@gmail.com

Configurando mi ambiente de automatización

Vamos a configurar e instalar lo necesario para tener listo nuestro ambiente de automatización con Java, Gradle, IntelliJ IDEA, Cucumber (Plugin para IntelliJ ) y NodeJS lo que nos permitirá crear automatizaciones con SerenityBDD y Screenplay. Para no tener ningún inconveniente sigue los pasos en el mismo orden.

  1. Instalación JDK (Java 8)
  2. Instalación Gradle 4.7
  3. Instalación Git
  4. Instalación IntelliJ IDEA
  5. Instalación Plugin Cucumber for Java
  6. Instalación NodeJS
Adicional a los pasos anteriores es necesario crear cuentas gratuitas en 

  • GitHub (Les recomiendo primero crear la cuenta en GitHub, ya que, con ella pueden empezar a usar Azure Devops.)
  • Azure Devops
Si tienes algún problema no dudes en escribirme al correo cdanielmg200@gmail.com

lunes, 3 de diciembre de 2018

Excepciones en Java 2/2

Continuando con el tema de Excepciones que empezamos en el artículo Excepciones en Java 1/2 hablaremos de los bloques try, catch, finally y la declaración try-with-resources la cual es particularmente adecuada para situaciones que usan recursos de Closeable.

Bloque try: El primer paso para construir un controlador de excepciones es encerrar el código que podría generar una excepción dentro de un bloque try.

try {
        código
}bloques catch y finally . . .

El segmento código contiene una o más líneas legales de código que podrían generar una excepción.

Si ocurre una excepción dentro del bloque try, esa excepción es manejada por un controlador de excepciones asociado con él. Para asociar un controlador de excepciones con un bloque try, debe poner un bloque catch después de él.

Bloque catch: Usted asocia los controladores de excepciones con un bloque try al proporcionar uno o más bloques catch directamente después del bloque try. Ningún código puede estar entre el final del bloque try y el comienzo del primer bloque catch.

try {

} catch (ExceptionType name) {

} catch (ExceptionType name) {

}

Cada bloque catch es un controlador de excepciones que maneja el tipo de excepción indicado por su argumento. El tipo de argumento, ExceptionType, declara el tipo de excepción que el manejador puede manejar y debe ser el nombre de una clase que hereda de la clase Throwable. El manejador puede referirse a la excepción utilizando name.

El bloque catch contiene código que se ejecuta cuando se invoca el controlador de excepciones. Los manejadores de excepciones pueden hacer más que solo imprimir mensajes de error o detener el programa. Pueden realizar la recuperación de errores, pedir al usuario que tome una decisión o propagar el error hasta un controlador de nivel superior utilizando excepciones encadenadas.

En Java SE 7 y versiones posteriores, un solo bloque catch puede manejar más de un tipo de excepción. En la cláusula catch, especifique los tipos de excepciones que el bloque puede manejar y separe cada tipo de excepción con una barra vertical (|):

catch (IOException | SQLException ex) {
    logger.log(ex);
    throw ex;
}

Nota: Si un bloque catch maneja más de un tipo de excepción, entonces el parámetro catch es implícitamente final. En este ejemplo, el parámetro catch ex es final y, por lo tanto, no puede asignarle ningún valor dentro del bloque catch.

Bloque finally: El bloque finally siempre se ejecuta cuando el bloque try sale. Esto asegura que el bloque finally se ejecute incluso si ocurre una excepción inesperada. Pero, finalmente, es útil para algo más que el manejo de excepciones: permite al programador evitar que un código de limpieza se omita accidentalmente con una devolución, una continuación o una interrupción. Poner el código de limpieza en un bloque finally es siempre una buena práctica, incluso cuando no se prevén excepciones.

Declaración try-with-resources: La declaración try-with-resources es una declaración try que declara uno o más recursos. Un recurso es un objeto que debe cerrarse después de que el programa haya terminado con él. La declaración try-with-resources asegura que cada recurso se cierre al final de la declaración. Cualquier objeto que implemente java.lang.AutoCloseable, que incluye todos los objetos que implementan java.io.Closeable, puede usarse como un recurso.

static String readFirstLineFromFile(String path) throws IOException {
    try (BufferedReader br = new BufferedReader(new FileReader(path))) {
        return br.readLine();
    }
}

Veamos como se vería los bloques try-catch-finally juntos:

try {
     // Código que puede lanzar una excepción
}catch(TipoExcepcion e){
    // Código para manejar la excepción
}finally {
   // Código que se ejecuta al final se lance o no una excepción
}

En mi repositorio de GitHub de Programación Orientada a Objetos puedes encontrar ejemplos concretos en la sección de excepciones.

Excepciones en Java 1/2

El artículo a continuación es una traducción y resumen del tutorial facilitado por Oracle, con algunos aportes personales.

Partamos por la definición.
Una excepción es un evento, que ocurre durante la ejecución de un programa, que interrumpe el flujo normal de las instrucciones del programa. 
Ahora bien, ¿Qué pasa cuando ocurre durante la ejecución uno de estos eventos?, realmente lo que ocurre es que el método donde se origina la excepción crea un objeto y lo entrega al sistema de tiempo de ejecución. El objeto, llamado objeto de excepción, contiene información sobre el error, incluido su tipo y el estado del programa cuando ocurrió el error. Crear un objeto de excepción y entregarlo al sistema de tiempo de ejecución se llama lanzar una excepción.

Después de que un método lanza una excepción, el sistema de tiempo de ejecución intenta encontrar algo para manejarlo. El conjunto de posibles "cosas" para manejar la excepción es la lista ordenada de métodos que se habían llamado para llegar al método donde ocurrió el error. La lista de métodos se conoce como la pila de llamadas.


El sistema en tiempo de ejecución busca en la pila de llamadas un método que contenga un bloque de código que pueda manejar la excepción. Este bloque de código se llama un controlador de excepciones (exception handler). La búsqueda comienza con el método en el que se produjo el error y continúa a través de la pila de llamadas en el orden inverso en que se llamaron los métodos. Cuando se encuentra un controlador adecuado, el sistema de ejecución pasa la excepción al controlador. Un controlador de excepciones se considera apropiado si el tipo del objeto de excepción lanzado coincide con el tipo que puede manejar el controlador. Se dice que el controlador de excepciones elegido captura la excepción. Si el sistema en tiempo de ejecución busca exhaustivamente todos los métodos en la pila de llamadas sin encontrar un controlador de excepción apropiado, como se muestra en la siguiente figura, el sistema en tiempo de ejecución (y, en consecuencia, el programa) termina.


El requisito de captura o especificación

Java válido debe cumplir con el requisito de captura o especificación. Esto significa que el código que podría generar ciertas excepciones debe estar incluido por uno de los siguientes:

  • Una declaración try que atrapa la excepción. try debe proporcionar un controlador para la excepción (catch).
  • Un método que especifica que puede lanzar la excepción. El método debe proporcionar una cláusula throws  que enumera la excepción o excepciones que puede lanzar el método.
El código que no cumple con el requisito de captura o especificación no se compilará.

No todas las excepciones están sujetas al requisito de captura o especificación. Para entender por qué, debemos observar las tres categorías básicas de excepciones, de las cuales solo una está sujeta al Requisito.

  1. Excepción comprobada (checked exception) : Estas son condiciones excepcionales que una aplicación bien escrita debe anticipar y recuperar. Las excepciones comprobadas están sujetas al requisito de captura o especificación. Todas las excepciones son excepciones verificadas, excepto aquellas indicadas por Error, RuntimeException y sus subclases.
  2. Error :  Son condiciones excepcionales que son externas a la aplicación y de las cuales la aplicación generalmente no puede anticipar o recuperar. Los errores no están sujetos a los requisitos de captura o especificación. Los errores son aquellas excepciones indicadas por Error y sus subclases.
  3. Excepción de tiempo de ejecución (RuntimeException) :  Son condiciones excepcionales que son internas a la aplicación y de las cuales la aplicación generalmente no puede anticipar o recuperar. Estos suelen indicar errores de programación, como errores lógicos o uso incorrecto de una API. Las excepciones de tiempo de ejecución no están sujetas al requisito de captura o especificación. Las excepciones de tiempo de ejecución son aquellas indicadas por RuntimeException y sus subclases.
Debido a que este artículo se ha extendido un poco lo dejare hasta acá y seguiremos en Excepciones en Java 2/2 donde abordaremos los bloques necesarios para controlar una excepción.

Instalación NodeJS

Ingresamos a la página oficial de NodeJS donde lo descargaremos  https://nodejs.org/en/download/ Escogemos el instalador que se ajuste a ...