Cosas Interesantes para Ver

martes, 3 de noviembre de 2015

Code UI Automation con .NET - PkosTestEngine

En el proceso de desarrollo es muy normal tener que realizar tareas repetitivas tales como modificar sectores de la aplicación y tener que repetir varios pasos para llegar al punto de cambio.
Por otro lado los Ingenieros de Control de Calidad realizan tareas de pruebas muchas veces mecánicas pudiendo delegar las mismas a otros agentes, dicho de otra manera crear test automáticos.

Opciones

Existen muchas opciones para crear test automáticos:

  • Selenium
  • Test Complete
  • Page Factory de .NET

Code UI .NET

Esta última tecnología es la que conozco, pero me resultó mucho trabajo realizar un simple test. Es decir CodeUI requiere crear una clase por cada página con la que el Automation interactuará y además una clase por cada componente en la página. 

Mucho trabajo
La creación de test requiere mucho tiempo frente al desarrollo para los programadores.

PkosTestEngine

Es tu framework que desarrollé para agilizar el Automation, trabaja de forma excelente sobre Internet Explorer para aplicaciones ASP.NET especialmente y otras tecnologías como php, html regular, etc.

está basado de CodeUI de .NET y por esa razón brinda la riqueza del lenguaje C#

Como funciona?

Simple, primero se require clonar el proyecto 
git clone https://github.com/p-kos/PkosTestEngine.git
O puedes bajarte la dll compilada de:

https://dl.dropboxusercontent.com/u/32795617/PkosTestEngine.zip

Luego abre el proyecto y crea un nuevo CodeUI test heredando de la clase WebApp

Para comenzar tu Test necesitas "attachar" tu test a la página que necesites automatizar

LaunchApp("https://github.com");

Luego cada paso de test que necesites realizar se simplifica en una línea de código donde se hace referencia a un control en la página donde te encuentres:

FindControl( "#username" ).Text = "marco";

FindControls( ".boxLang" ).Where( b=> b.InnerText == "ok" ).FirstOrDefault( ).Click( );

Donde es FindControl es un generic que acepta HtmlControl y en los parámetros del método se require un selector para ubicar el componente

Selectores

Los selectores que se utilizan son:

  • #MyControl : control cuyo id es MyControl
  • .controlType: control cuya clase CSS es controlType
  • a[href='http://google.com'] : control de hipervículo (a) cuya referencia es http://google.com
Final

Una vez que se tiene el test escrito, solo se requiere ejecutarlo.

Este framework está escrito sobre Visual Studio 2010 Premiun, se requiere esta versión o Ultimate. Esto debido a que las versiones mencionadas tienen las librerías necesarias para CodeUI.






lunes, 31 de agosto de 2015

Video vigilancia en Raspberry PI, con NodeJS y AngularJS

Existen muchas alternativas para video vigilancia, a continuación una barata, configurable y extendible.

Picam

Es un proyecto personal sencillo que salir bastante interesante al terminarlo.

El Proyecto

Puede encontrarse en github

https://github.com/p-kos/picam

Para clonar:

git clone https://github.com/p-kos/picam.git

Instalación

Se debe instalar NodeJS, y motion en el Raspberry. Luego de tener NodeJS se requiere algunos paquetes que se podrán instalar corriendo

npm install

En el directorio donde se realizó el clon proyecto.

Configuración

En el archivo README.md se detallan los pasos para configurar motion

Ejecución

Para la ejecución de la video vigilancia se corre la aplicación motion

motion

Con Ctrl + C se puede parar el programa.

Para correr el Server se corre node en el directorio donde se clonó el proyecto

node app.js

Este comando ejecutará un webserver sobre el puerto 3705 y se podrá acceder por browser

Uso

Para mi uso personal yo instalé screen para poder dejar en ejecución cuando salga de casa
Para instalar screen solo corra

sudo apt-get screen

una vez instalado se ejecuta escribiendo screen en la línea de comando y luego con Ctrl + A + C crea una nueva pantalla, con Ctrl + A + N cambia de pantalla. De esa forma se puede ir sin tener que preocuparse de que se cancele cuando cierre su computadora desde donde ejecutó remotamente.




Tuitealo ;)

FB Comentarios