jueves, 27 de octubre de 2016

Introducción a Vagrant

¿Qué es Vagrant?
Vagrant es una herramienta opensource la cual permite la creación de entornos virtuales donde los desarrolladores pueden trabajar libremente independiente del sistema operativo que ellos estén utilizando.

¿Por qué usar Vagrant?
Vagrant es extremadamente simple de utilizar, por lo tanto, sus archivos de configuración son fáciles de reproducir y portables. Además posee una cantidad gigantesca de boxes para llegar e instalar, por ejemplo: hay boxes de diferentes versiones de ubuntu e incluso otras con todo lo necesario para comenzar a utilizar laravel o un servidor lamp. A estas alturas, Vagrant es un estándar de la industria del software.

Prerrequisitos para utilizar vagrant.
Para poder utilizar vagrant necesitamos un virtualizador de máquinas virtuales, siempre se recomienda utilizar Virtualbox. La razón de esto, es que el proyecto Vagrant ha sido ideado para trabajar con esta aplicación.

Instalación de Vagrant.
Despues de instalar Virtualbox es necesario ir a la página de descargas de Vagrant y descargar el instalador para tu sistema operativo. Al tener el instalador, en nuestra máquina debemos ejecutarlo e instalar Vagrant. En Mac y Windows esto es muy fácil, por lo tanto, solamente enseñaré como instalarlo en sistemas GNU/Linux.
  1. Abre un terminal.
  2. Ve al directorio donde está el instalador de Vagrant.
  3. Ejecuta el siguiente comando.
    $ sudo dpkg -i vagrant_TU_ARCHIVO.deb
  4. Para verificar la instalación, ejecuta este comando para ver la versión de Vagrant.
    $ vagrant -v

Creando y corriendo nuestra primera máquina Vagrant.
¡Ahora que tenemos todo lo necesario instalado podremos crear nuestra primera máquina Vagrant!. Para poder hacer esto, ejecuta los siguiente pasos:
  1. Abre un terminal y crea un directorio de prueba.
  2. Ve al directorio recién creado y ejecuta los siguientes comandos.
    $ vagrant init hashicorp/presice64
    $ vagrant up
¿Qué hicimos con estos comandos?
Con 'vagrant init hashicorp/precise64' le ordenamos a vagrant que cree un archivo Vagrantfile con todo lo necesario para descargar la box hashicorp/precise64. Después con el comando 'vagrant up', Vagrant utiliza el Vagrantfile para descargar la box solicitada y después levantar la máquina virtual cuando todo esté listo.

Accediendo a la máquina Vagrant.
Para acceder ala máquina recién creada debes ejecutar el siguiente comando:
$ vagrant ssh
Después de esto nos encontraremos dentro de la máquina virtual y podremos ejecutar todos los comandos que queramos. Cabe mencionar que vagrant siempre crea credenciales root en la máquinas virtuales que son levantadas con sus boxes públicas, usualmente estás credenciales  son:
Usuario: vagrant
Password: vagrant

Conclusión.
Cómo se comentó al comienzo de este post, Vagrant es una excelente solución para levantar entornos de desarrollo replicables y fáciles de configurar. Siguiendo los pasos descritos podemos demostrar la facilidad de uso de esta tecnología.

Cabe mencionar, que esta es la primera entrada de varios tutoriales y tips que compartiré de Vagrant, por lo tanto, no te enojes con la simpleza de este post jeje.

sábado, 15 de octubre de 2016

Downgrade de Firefox para no perder la compatibilidad con webdriver.


Uno de los últimos grandes problemas que me he enfrentado como QA de automatización ha sido el problema de compatibilidad de webdriver con Firefox. A partir de la versión 47 de Firefox,  no será posible utilizar webdriver con este navegador. Es decir, ya no podremos simplemente llamar a webdriver.Firefox() para hacer uso de él.

Las solución actual ante esto es instalar marionette. Suena fácil, pero créanme que no lo es. Es necesario hacer diferentes tipos de instalaciones por sistema operativo, lo cual no es lo ideal si estamos trabajando en testing multiplataforma.

Como notaran por mis palabras, no fui capaz de instalar marionette en el framework de automatización en el que trabajo. Me niego rotundamente a hacer una instalación ad hoc para cada sistema operativo, esto rompe totalmente la filosofía de mi trabajo. Por lo tanto, decidí hacer un downgrade de Firefox y esperar por una mejor solución al instalar marionette.

En sistemas operativos como OSX o Windows se puede desactivar las actualizaciones fácilmente mediante las opciones de configuración de Firefox. Por lo tanto, ahora compartiré la solución que utilicé para Ubuntu. Dicha solución es la siguiente:

1. Abrir un terminal.

2. Después debes correr este comando para instalar la versión 45 de Firefox:
sudo apt-get install firefox=45.0.2+build1-0ubuntu1
Nota: Puede que el sistema te advierta de que se llevará a cabo un downgrade, da tu consentimiento para continuar. 3. Para mantener la versión de Firefox sin permitir updates, se debe usar este comando:
sudo apt-mark hold firefox
Nota: Esto excluirá Firefox de cualquier actualización. Si quieres remover este cambio, es decir, volver a aceptar actualizaciones en Firefox, utiliza estos comandos para revertir el estado actual.
sudo apt-mark unhold firefox
sudo apt-get upgrade
Conclusión. Con estos cambios Firefox no volverá a ser actualizado, por lo cual podremos continuar usando sin problemas webdriver con Firefox, mientras esperamos por una versión más madura de marionette.

Como activar el comando python en el CMD de windows 10.

Un problema bastante común para los novatos de python que usan windows 10 es correr scripts en la linea de comando. Generalmente este proble...