Instalación IceScrum

logo-icescrumTras bastante tiempo trabajando con Jira, toca probar cosas nuevas. En este caso, trabajaremos con Ice Scrum, una aplicación opensource para gestionar proyectos bajo la metolodogía agile con Scrum.

El proyecto libre con las características básicas, http://www.icescrum.org/en/, está publicado en GitHub como repositorio público, en el que todo el mundo puede acceder, contribuir, adaptar, … Así mismo, la empresa kagilum.com se ha encargado de desarrollar algunos plugin bastante interesantes, así como de ofrecer un servicio basado en la nube, para despreocuparte de instalaciones, mantenimientos y demás tareas de administración.

En nuestro caso, vamos a instalar la versión openSource en un servidor propio.

Sigue leyendo

Bash – N entradas más recientes

Objetivo: 

Consultar las N entradas (ficheros, directorios o ambos) más recientes en un determinado directorio para borrar, copiar, renombrar, etc, etc

Etapas:

  • listar los nombres de los elementos
ls -dt
  • filtrar cuantas entradas queremos mantener
  • +N = N entradas más recientes | -N = N entradas más antiguas

tail -n +N
  • ejecutar la orden que necesitemos
xargs FUNCTION

Si concatenamos cada comando con el anterior, obtendremos

# Mantener últimos 3 ficheros de logs del sistema
 ls -dt /var/log/syslog* | tail -n +4 | xargs rm -rf

# Copiar el último backup a un NAS
 ls -dt /tu/ruta/al/backup | tail -n -2 |  xargs -i cp {} /ruta/al/NAS

Extensiones para Selenium webdriver

Si trabajas con Selenium y necesitas tener disponible cierta extensión en el navegador lanzado desde el driver, puedes hacerlo fácilmente añadiendo algunas líneas de código a la configuración del driver utilizado. Para hacerlo más elegante, nada como utilizar distintos profiles

  •  Firefox:
FirefoxProfile firefoxWithExtensions = new FirefoxProfile()
File myExtension = new File("/path/to/extension/extension.xpi");
firefoxWithExtensions.addExtension(myExtension)
  • Chrome:
ChromeOptions chromeWithExtensions = new ChromeOptions();
File myExtension = new File("/path/to/extension/extension.crx");
chromeWithExtensions.addExtensions(myExtension)

Pruebas como validación de la ingeniería del software


Excelente texto donde se pone de manifiesto la verdadera importancia y repercusión de las pruebas de software. Se puede debatir muy mucho sobre la similitud o no de la ingeniería del software contra otras ingenierías, pero lo que si debemos tener claro es que por su propia naturaleza, los métodos y procesos aplicados a un desarrollo software distan en gran medida de los empleados en una ingeniería clásica.

 Durante los últimos miles de años, los ingenieros han desarrollado las matemáticas y física que usan para una solución estructural sin tener que construirlo para ver lo que hace.

Sigue leyendo

Graficas para JMeter – Loadsophia

En general, cualquier plan de pruebas contemplará al menos tres hitos o fases intermedias claramente diferenciadas. Una fase inicial de preparación del entorno necesario, programación de los scripts, configuración de las herramientas necesarias, etc. El siguiente punto será la propia ejecución de las pruebas siguiendo el plan diseñado y finalmente, habrá una fase de análisis y reporte de datos, en la cual se deberá analizar todos los datos obtenidos durante las ejecuciones anteriores y presentarlos de manera que aporten la mayor información posible.

Para esta fase final de análisis y reporte de resultados se pueden utilizar multitud de herramientas y formatos. Por la naturaleza de este tipo de pruebas, quizás la manera más intuitiva y fácil de analizar los resultados sea dibujando estos gráficamente. En pruebas de rendimiento muchas veces se obtiene más información analizando la tendencia y progresión del test que conociendo un valor concreto. Para ello, Loadsophia nos ofrece una manera fácil, gratuita y cómoda de obtener buenas gráficas.

 ¿Qué es loadosophia?

Básicamente un servicio de análisis de resultados de pruebas de rendimiento y generación de gráficas. A partir de los datos extraidos de herramientas como Apache JMeter o Apache Benchmark podremos obtener una serie de gráficas útiles para nuestro informe final.

 ¿Cómo funciona?

Sigue leyendo

Modularizar con JMeter

En esto del desarrollo, es por todo conocidos que dividir, importar, reutilizar, … son acciones que nos reportarán un gran beneficio en el futuro, haciendo que nuestro código sea mucho más simple, se mantenga de una manera más sencilla, se eviten inter-dependencias, etc. Trabajando con JMeter en proyectos de cierto tamaño, es normal que el plan de pruebas de rendimiento empiece a crecer a poco que diseñes unos cuantos workflows o tengas numerosas peticiones a tu sistema.

En estos casos, es muy útil identificar aquellos escenarios genéricos que utilices en múltiples sitios, bien sea configuración para distintos escenarios, un conjunto de peticiones que siempre deben hacerse conjuntamente y en el mismo orden, o cualquier otro que consideres reutilizable.  Una vez identificados estos casos, podemos crear un pequeño repositorio de funciones que posteriormente podrás incluir en cualquier punto de tu plan de pruebas, así, si algo cambia, solo tendrás que tocar en un sitio, reduciendo el trabajo y sobre todo la posibilidad de cometer errores.

Cómo modularizar en JMeter

Haremos uso de un par de controladores. El primero de ellos, “Controlador simple”, nos servirá para agrupar todos aquellos recursos que queramos reutilizar, este será nuestro pequeño repositorio. Solo añade un controlador simple, desactiva su ejecución y bajo el, añade los módulos que quieras tener disponibles en el resto del plan de pruebas, utilizando también controladores simples

jmeter_1

Una vez tengamos nuestro repositorio creado, cuando necesitemos incluir ese “trozo” de código en nuestro plan de pruebas, bastará con añadir un “Controlador de módulo” y seleccionar el módulo que queramos incluir en ese punto, quedando el plan de pruebas como sigue.

jmeter_2

Además, tal y como se hace para el resto de controladores, si necesitas añadir alguna particularidad en un determidado punto, bastará con añadir como hijo del controlador aquel elemento que necesites, de modo que sus valores sobrescribirán a los definidos en el módulo importado. Por ejemplo, en la imagen anterior podemos ver como se ha añadido un elemento de configuración de cabecera HTTP, cuyos datos sobrescribirán a los definidos en el módulo inicial.

Con estos pequeños cambios, conseguiremos tener un plan de pruebas mucho más simple y facil de mantener.

Optimizando JMeter

jmeter-logo-g2khostingEn el diseño de un plan de pruebas de rendimiento, uno de los puntos a los que hay que prestarle gran atención es al diseño del sistema encargado de la generación del volumen de carga necesario. Antes de llegar a acciones más costosas y elaboradas como puede ser utilizar servicios en la nube, distribuir un grid de nodos, … podemos optimizar los recursos disponibles para obtener el máximo partido de ellos.

Una de las herramientas más utilizadas cuando trabajamos con pruebas de rendimiento es Apache JMeter. Código abierto, muy extendido entre los equipos de testing y respaldado por una gran comunidad. Los problemas más habituales comentados en los foros sobre el uso de esta herramienta suelen estar relacionados con el uso de memoria y CPU, los cuales se pueden reducir en gran parte siguiendo una serie de recomendaciones.

Es fácil ver que todos los recursos utilizados en el pre y post-procesado de las peticiones, reduce los recursos disponibles para las necesidades reales, por lo tanto, todo lo que puedas hacer antes/después, hazlo. Es más eficiente cargar un fichero de datos que tener que calcular estos durante la ejecución del plan. Otro punto a tener en cuenta son los listeners. Deshabilitalos todos, no los necesitas durante las pruebas de carga. Ya nos encargaremos de formatear los resultados una vez finalizado el test.

¿Qué más podemos mejorar?

Sigue leyendo