TestProject una herramienta gratis para Pruebas Automatizadas.
Tags: testing, tooling, spanish
Published: 2021-05-24 21:30:24

Para los entusiastas de las Pruebas automatizadas (Test Automation), Testproject es una gran herramienta completamente gratis que nos facilita la integración de lenguajes como C#, Java, Python y actualmente Javascript usando sus SDKs. Y para los que quieren iniciar en el mundo de las Pruebas automatizadas, TestProject incluye un recorder que nos facilita mucho la obtención de elemento y nos va llevando paso a paso tanto para pruebas web como para móviles.

El dia de hoy me gustaría comentarles de cómo podemos tomar ventaja del SDK usando el lenguaje Python; antes que nada hay que seguir los siguientes pasos:

Si aún no tienes tu cuenta de TestProject, la puedes crear haciendo clic en el siguiente enlace, recuerda que es gratis > [Testproject](https://app.testproject.io/)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e5cr68kg4qimrkxo0vt3.png)

Una vez que tu cuenta ha sido creada, es tiempo de descargar el agente para poder correr nuestras pruebas, hay que descargar el que se adapta a nuestro sistema operativo. (Algo a destacar si también se puede usar TestProject con docker, ese tema será para un artículo más adelante).

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8wyn5vtvylu3eguzqr48.png)

Necesitamos correr el agente localmente y especificar un alias.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wolqcfr93myfk7pd9r3o.png)

Recuerda nombrar a tu agente con algo que sea facil y rapido de identificar.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q9mue1896121r96x3qpy.png)

Algo muy importante es adquirir nuestra llave de desarrollador (Llave de desarrollador, pero mi trabajo es hacer pruebas, en si es solo un token el cual nos ayudara a identificar nuestro agente y para sincronizar nuestro SDK) debes de hacer clic en el enlace [link](https://app.testproject.io/#/integrations/sdk).

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cixdyzu18x799xefhssn.png)

Ya que hemos instalado nuestro agente de TestProject es momento de instalar el SDK de python el cual se encuentra disponible en el administrador de Paquetes en Python, en este caso PIP.

```
pip install testproject-python-sdk
```

Una vez que la instalación ha finalizado estamos listos para hacer algunas Pruebas Automatizadas.

##Usando el SDK de Python y TestProject

Al momento de escribir esta reseña, el SDK Python soporta lo siguientes navegadores:

* Chrome (incluido headless)
* Firefox (incluido headless)
* Internet Explorer
* Edge
* Safari
* Android (usando appium)
* IOS (usando appium)

La implementación es sumamente sencilla si conoces algo de lenguaje Python, notaras que es super facil despues de instalar el agente de TestProject, enseguida podrás encontrar un ejemplo:

```
import os
from dotenv import load_dotenv
from selenium.webdriver import ChromeOptions
from src.testproject.sdk.drivers import webdriver
from src.testproject.decorator import report


@report(project='My python Project', job='First job')
def testproject_test():
    

  chrome_options = ChromeOptions()
  chrome_options.headless = True                    

driver = webdriver.Chrome(chrome_options=chrome_options, token=os.getenv('DEV_TOKEN'))
  
  <your code>
  
  driver.quit()

testproject_test()
```

A su vez puedes encontrar una implementación de Webdriver sumamente fácil.

```
if self.browser == "Iexplorer":
    driver = webdriver.Ie()
  elif self.browser == "Firefox":
      driver = webdriver.Firefox()
  elif self.browser == "Edge":
      driver = webdriver.Edge()
  elif self.browser == "Safari":
      driver = webdriver.Safari()
  elif self.browser == "Headless"
      chrome_options = ChromeOptions()
      chrome_options.headless = True
      driver = webdriver.Chrome(chrome_options=chrome_options) 
  else:
        driver = webdriver.Chrome()
```

Algo que hay que destacar al usar TestProject, son los reportes que genera, sin necesidad de instalar addons o plugins aparte TestProject nos entrega unos reportes detalladas de ejecución en formato PDF o HTML y la verdad son super útiles al momento de presentar algún estatus de la ejecución de Pruebas.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fyu0p0gpiippjxd3b53g.png)

Para aquellos familiarizados con los reportes que genera Allure o HMTLTestRunner (Pueden encontrar más detalles aquí), TestProject genera prácticamente esos reportes como mencionaba anteriormente sin la necesidad de alguna instalación aparte y podemos agregar cosas a esos reportes de manera fácil y rápida.

```
from src.testproject.decorator import report

result = driver.find_element_by_css_selector("#dropdown").is_displayed()

driver.report().step(description='Test Status', message='Reporting from Python SDK', passed=result, screenshot=True)
```
Algo a destacar es la facilidad de usar Pytest en conjunto con los reportes de TestProject, aquí puedes encontrar un ejemplo de ello.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jek3szvxjps1ti1et5pf.png)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oib365p766y6b2wwgzqf.png)

Para aquellos que piensen que es algo tardado, les comento que realice el setup de TestProject y SDK en una nueva máquina virtual y me tomó menos de 5 minutos la instalación y configuración del SDK en Python. Las validaciones se hicieron en los siguientes navegadores: Chrome, Chrome Headless, Firefox, Firefox Headless, Edge* y Safari. Todos se ejecutaron correctamente y sin ningún esfuerzo extra incluido el reporteador de TestProject.

Algo importante a destacar es el soporte de TestProject, muchos que usamos herramientas de código libre, comprendemos que el soporte es casi nulo y muchas veces nos apoyamos en la comunidad, para el caso de Testproject, el soporte es muy bueno en caso de que encuentres con algún problema, la respuesta es muy rápida y orientada a la solución.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kv5m4nu1mf3igfkhwwlq.png)

##Conclusión

TestProject es una gran herramienta que nos puede ayudar a ejecutar pruebas de Selenium y Appium como una plataforma unificadora de la cual se podemos tomar ventaja en la parte de configuración y mantenimiento usando los SDKs. Es muy versátil ya que podemos integrar scripts usando Java, C#, Python y Javascript.

Si actualmente estás usando Python o Javascript en tus pruebas, mi recomendación es que intentes TestProject, aparte de tener una configuración e instalación mas fácil y rápida sus reportes incluidos pueden ser de gran ayuda en nuestras Pruebas automatizadas. Si aún no tienes tu cuenta gratis de TestProject, me parece el momento de crear una, el proceso de creación no toma más de un minuto y los beneficios son muy altos.

**¡Felices Pruebas!**