Leyendo archivos en Java

Muy bienvenidos a mi hermoso blog (debería escribir más seguido). En esta ocasión ver como leer de manera sencilla un archivo que tengamos linea a linea.

Lo primero que vamos a necesitar es nuestra clase encargada de leer el archivo, la cual vamos a llamar para el ejemplo LeerArchivos y a la cual le vamos a dar un método llamado leer.

public class LeerArchivos{
     public void leer(){}
}

Ya tenemos la clase, ahora tenemos que ir solucionando problemas uno a uno. Vamos a ver entonces primero en donde poner el texto del archivo ya leido. Para almacenar el texto vamos a usar un StringBuilder (No vamos a usar un String común ya que estos son inmutables, para más detalles, vean el video, pero algún día vamos a hablar de esto a fondo).

StringBuilder sb = new StringBuilder();

El siguiente problema es buscar el archivo, para esto vamos a usar Path y Paths. Básicamente lo que necesitamos es un path donde está nuestro archivo y este lo sacamos de usar Paths.get() (Que nos va a devolver el Path que necesitamos)

Path filePath = Paths.get("ruta del archivo\\archivo");

Notese que uso doble barra ya que en un String, las barras sirven para distintos tipos de escape (Por ejemplo \n significa salto de linea) y cuando quiero poner una barra en el texto necesito poner otra que la preceda.

Ya con el lugar donde vamos a depositar el texto leido y que archivo vamos a leer necesitamos el mecanismo que lea, para esto vamos a usar un objeto de tipo BufferedReader. Esto sirve básicamente para leer de algún tipo de input, en este caso de un archivo. Para leer de un archivo vamos a hacer esto:

BufferedReader br = Files.newBufferedReader(filePath);

Como abrir un archivo para su lectura es algo que puede traernos cantidades de excepciones, se nos va a requerir un bloque try/catch, con lo que nuestro código pasaría a ser algo así:

try{
    BufferedReader br = Files.newBufferedReader(filePath);
} catch(IOException e) {
    e.printStackTrace();
}

Después dejen lindo el try/catch a gusto, pero a priori esto sirve.

Ahora que ya tenemos esto, vamos pasando linea a linea nuestro texto al StringBuilder

String linea;
While((linea = br.readLine()) != null) {
     sb.append(linea).append("\n");
}

Si esto los marea les explico: En mi While, le digo que el ciclo va a repetirse leyendo una linea y sumándosela a la variable linea y se corte si eso da null, lo cual es como un «se terminó el archivo y no hay nada más que leer».

Dentro del While voy a ir agregando lo que se lee y se pasa a la variable linea y un \n para hacer el salto de linea.

Con esto ya tenemos nuestra clase de lectura de archivos que quedaría en definitiva así:

public class LeerArchivos{
     public void leer(){
         StringBuilder sb = new StringBuilder();
         Path filePath = Paths.get("ruta del archivo\\archivo");
         try{
              BufferedReader br = Files.newBufferedReader(filePath);
              String linea;
              While((linea = br.readLine()) != null) {
                   sb.append(linea).append("\n");
              }
         } catch(IOException e) {
              e.printStackTrace();
         }
    }
}

Con lo que si quieren ver como funciona, solo deben crear una clase main, poner dentro un objeto de tipo LeerArchivo y ejecutar nuestro método leer:

public class Principal {
     public static void main(String[] args){
          LeerArchivo leerArchivo = new LeerArchivo();
          leerArchivo.leer();
     }
}

Y esto es todo por hoy, espero que les haya servido.

Selenium con Java capítulo 1: Setup del proyecto

En el capítulo anterior vimos que vamos a hacer y con qué herramientas. Ahora vamos a ver como instalar todas esas herramientas.

Obviamente como todo, el contenido lo pueden encontrar en este video que pongo a continuación

JDK

Lo primero que vamos a necesitar si vamos a programar usando Java es el JDK (Java developement kit), el cual vamos a poder descargar de aquí.

Luego de buscar la versión que necesiten dependiendo del sistema operativo que tengan, van a tener un «license agreement» sobre la caja donde van a ver las versiones a bajar

Solo clickeen ahí.

Una vez que baje, el proceso es de lo más sencillo. Solo darle a siguiente (y no bajar si ni quieren ningún otro software que les proponga el instalador).

Maven

Lo siguiente es instalar Maven para poder trabajar más sencillamente con los paquetes (cosa que ya discutimos en la entrada anterior). La cosa es sencilla, solo deben entrar al sitio de Maven y presionar en Download.

Una vez ahí, simplemente es buscar la instalación que quieran, bajarlo y descomprimirlo donde quieran (y no se olviden agregarlo al path).

WebDrivers

Bien, ya tenemos el lenguaje, ya tenemos nuestro «gestor de paquetes». Ahora necesitamos algo a lo que podamos pegarle con nuestro código para que maneje el browser, y aquí es donde entran los webdriver.

Si quieren usar el webdriver de Chrome, aquí tienen el sitio.

Si quieren usar Firefox, entonces usen geckoDriver. Y así podemos buscar los webdrivers del browser que queramos.

Eclipse

Ya tenemos todo para nuestro proyecto, pero aun no definimos adonde y con qué lo vamos a escribir. Mi recomendación (y esto va en gustos) es usar Eclipse. Para mi un IDE ideal para proyectos Java (funciona para otros lenguajes pero Java es su «fuerte»).

Simplemente entren al sitio de Eclipse y van a encontrar un botón de download.

Siguen el camino a la descarga y luego, todo es tan sencillo como con cualquier instalador (siguiente, siguiente, siguiente, etc.).

Con todo esto instalado, ya tenemos el ambiente para comenzar nuestro camino a la automatización. Para no alargar demasiado este post, en el próximo capítulo vamos a seguir analizando el video que puse al inicio y vamos a hablar de como armar nuestro proyecto.

Selenium con Java Capítulo 0: Hablemos de Selenium

Vamos a comenzar a ver en este blog como hacer pruebas automatizadas. Se que muchos de los que están leyendo están esperando ver estos artículos.

Todo lo que voy a ir poniendo es una extensión del material que pongo en mi canal por lo que si ya siguen el canal sigan leyendo que voy a tratar de extenderme un poco sobre el tema y si no, este es un buen momento para suscribirse y poder así seguir los tutoriales que tengo al respecto.

Pero comencemos desde el principio: ¿Qué vamos a hacer durante el curso? ¿Con qué? Empecemos por el principio…

La idea de este curso o tutorial o como quieran llamarlo es no solo poder automatizar pruebas sino también hacerlo de la manera correcta, con código prolijo, siguiendo buenas prácticas, etc. Esto nos va a traer muchos beneficios:

  • Framework escalable: Si hay que agregar nuevas funcionalidades tiene que ser sencillo agregarlas. Con el paso del tiempo, si el sistema crece, no debe ser tan complicado que el framework crezca con el.
  • Mantenible: Si el código está bien escrito tiene que ser sencillo mantenerlo.
  • Legible: Cualquier persona que entre al proyecto va a poder entender rápidamente que está pasando y poder sumarse a ser productivo pronto.
  • Heredable: Si un día uno decide dejar el proyecto, quién lo suceda puede seguir rápidamente.

Qué vamos a necesitar para el curso?

  • Java JDK
  • Maven
  • Selenium
  • TestNG
  • Eclipse (Esto es a gusto mío y con lo que voy a mostrar el código, si les gusta otra cosa sientanse libres)
  • Git

Por qué utilizar Java para automatizar

Java tiene la particularidad de ser un lenguaje utilizado en muchísimos proyectos y sin dudas es buena idea automatizar en el mismo lenguaje que está siendo utilizado para el proyecto o la tecnología que use quién necesite la automatización. Tener todo en un mismo lenguaje suele tender puentes dentro de sistemas.

Por otro lado, su manejo de la programación orientada a objetos es muy buena y hace sencillo dedicarse a automatizar.

También es sencillo encontrar material de ayuda y la comunidad de desarrolladores es enorme, lo cual hace también más sencillo conseguir apoyo a la hora de programar.

Maven

Maven es un gestor de proyectos ampliamente utilizado en Java, que básicamente lo que hace es descargar y dejar preparadas las librerías y configuraciones que necesitemos para el proyecto de manera automática.

Con esto no van a tener que ponerse a buscar que librerías necesitan en un momento y como deben ser configuradas, ustedes solo tienen que decirle que quieren usar en el proyecto usando POM (Project Object Model), una especie de XML que les va a servir. En el video que presento en este posteo van a encontrar ejemplos.

TestNG

Durante el curso vamos a necesitar una librería de UnitTest (aunque no la vamos a usar para tests unitarios) para poder decirle a un conjunto de instrucciones que son un test. Java tiene dos grandes candidatos a ser usados, jUnit y TestNG. Personalmente me inclino por TestNG por la facilidad que tiene para hacer suits de testing, pero ya vamos a adentrarnos en esto.

Necesitamos un repositorio…

Y por eso necesitamos Git. Pueden descargar el software de aquí. La idea es que con esto van a poder guardar su código para poder recuperarlo en cualquier máquina, tener control de versiones, van a poder hacer varias ramas y unirlas nuevamente en la principal y muchas cosas más. Lugares donde pueden dejar su código son github, bitbucket, gitlab, etc.

Con todo esto dicho, les recomiendo miren el video introductorio al curso, que lo dejé arriba de todo donde explico con más detalle alguno de los puntos.

En la próxima entrada vamos a empezar a hacer código!!!!