TechAIDBlogCómo ejecutar pruebas remotas en BrowserStack con Selenium
By Mike Arias 08/18/2019 3

Cómo ejecutar pruebas remotas en BrowserStack con Selenium

BrowserStack es uno de los servicios que se puede usar para ejecutar pruebas remotas. Imagínate la posibilidad de probar tu sistema con cualquier entorno. Tener esa oportunidad es el santo grial de las pruebas, ya que elimina gran parte del juego de adivinanzas de la ecuación.

Con BrowserStack puedes ejecutar pruebas automatizadas para aplicaciones web o móviles, pero también se puede ejecutar pruebas manuales en dispositivos virtuales. Para este tutorial, nos centraremos en la parte automatizada con aplicaciones web.

run-test-selenium

 

EL PROYECTO

Para este tutorial utilizaremos este marco de prueba automatizado como base de código. Si estás interesado en saber cómo se creó ese marco paso a paso, puede consultar este tutorial. Además, si quieres echar un vistazo a otros tutoriales de Selenium, puedes consultarlo también.

 

THE SETUP

Antes de tocar nuestro código, necesitamos crear una cuenta BrowserStack. Para esto, ve a https://www.browserstack.com/automate, haz clic en el botón de prueba gratuita en la esquina superior derecha y crea una cuenta.

Ahora que estamos dentro de la sección Automatizar de BrowserStack, necesitamos encontrar las capacidades que necesitaremos para nuestras pruebas. Para esto, haz clic en la opción «Integrar su conjunto de pruebas».

 

test-selenium

 

Allí debes seleccionar un idioma; elegimos Python (también, asegúrate de tener habilitadas las ventanas emergentes).  Esto te llevará a tu página de documentación para Python aquí, que te guiará sobre cómo instalar Selenium para resolver los requisitos básicos. Esto no es necesario en este momento ya que ya preparamos nuestro entorno utilizando este tutorial de donde obtuvimos nuestra base de código.

Lo que debemos hacer es seleccionar el sistema operativo, el dispositivo y la resolución que queremos que ejecuten nuestras pruebas. Esto nos dará nuestras capacidades deseadas.

 

testing-selenium

 

THE CODE

BrowserStack ahora generará todo el código que necesitamos para que podamos usarlo como queramos. Haremos algunos pequeños cambios en este código para hacerlo más útil.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

desired_cap = {
‘browser’: ‘Chrome’,
‘browser_version’: ‘64.0’,
‘os’: ‘Windows’,
‘os_version’: ’10’,
‘resolution’: ‘1024×768’
}

driver = webdriver.Remote(
command_executor=’http://mikearias2:6FB489KGkKpshxcFyqzR@hub.browserstack.com:80/wd/hub’,
desired_capabilities=desired_cap)

driver.get(«http://www.google.com»)
if not «Google» in driver.title:
raise Exception(«Unable to load google page!»)
elem = driver.find_element_by_name(«q»)
elem.send_keys(«BrowserStack»)
elem.submit()
print driver.title
driver.quit()

Nuestro webdriver luce así hasta el momento:

from selenium import webdriver

class Driver:

    def __init__(self):
        self.instance = webdriver.Chrome()

    def navigate(self, url):
        if isinstance(url, str):
            self.instance.get(url)
        else:
            raise TypeError(«URL must be a string.»)

Primero, agregaremos las capacidades deseadas como un atributo de la clase.

from selenium import webdriver

class Driver:

    def __init__(self):
        desired_cap = {
            ‘browser’: ‘Chrome’,
            ‘browser_version’: ‘64.0’,
             ‘os’: ‘Windows’,

             ‘os_version’: ’10’,
              ‘resolution’: ‘1024×768’

        }

                self.instance = webdriver.Chrome()

    def navigate(self, url):
        if isinstance(url, str):
             self.instance.get(url)
   else:
            raise TypeError(«URL must be a string.»)

Ahora, en lugar de usar webdriver.Chrome () para iniciar nuestro controlador, usaremos webdriver.Remote (). A lo cual pasaremos la URL del centro en el que se ejecutarán nuestras pruebas y las capacidades deseadas.

class Driver:

def __init__(self):
desired_cap = {
‘browser’: ‘Chrome’,
‘browser_version’: ‘64.0’,
‘os’: ‘Windows’,
‘os_version’: ’10’,
‘resolution’: ‘1024×768’
}

self.instance = webdriver.Remote(
command_executor=’http://mikearias2:6FB489KGkKpshxcFyqzR@hub.browserstack.com:80/wd/hub’,
desired_capabilities=desired_cap)

def navigate(self, url):
if isinstance(url, str):
self.instance.get(url)
else:
raise TypeError(«URL must be a string.»)

 

Y con estos pequeños cambios en nuestro código, ¡hemos terminado! Ahora todo lo que queda es ejecutar nuestro código. BrowserStack nos dará un video, todos los registros de la ejecución y nos informará.

 

run-test-selenium

 

Puede usar un proceso muy similar para lograr los mismos resultados con otro servicio como SauceLabs o incluso ejecutar aplicaciones nativas en la sección Automatizar aplicaciones (con algunas pequeñas variaciones)

¿Qué piensas sobre esto? ¡Compártelo en los comentarios!

This article was written by Mike Arias
Senior Software Testing Engineer of TechAID.
Twitter: @theqaboy
Blog: qaboy.com/

GO BACK TO Herramientas

Deja una respuesta

OTHER POSTS YOU MIGHT LIKE

API- Herramientas de prueba: Una guía basada en ejemplos

By Manuel Marinez 04/08/2021 8

  Para las pruebas de API, existen muchas herramientas que nos permiten realizar las pruebas y recopilar los resultados. En este artículo, me enfocaré en tres herramientas mostrando directamente cómo hacer una solicitud usando la API de Trello.   Pero antes de comenzar, dado que…

Clausula IF vs. ASSERT – ¿Cuándo se debe usar cuál?

By Mike Arias 09/17/2020 0

La clausula IF  y la declaración ASSERT cumplen funciones diferentes, pero similares. El objetivo de este artículo es establecer de una vez por todas cuándo usar «IF» y cuándo usar «ASSERT» en nuestros casos de prueba. Habrán situaciones en las que esta decisión no pueda…

pruebas-remotas

Thank you for downloading our free resources.

We hope you can find it useful for your daily work. Learn more about what we do.

Your resume was uploaded!

Thank you for being interested in making part of our family.

Redirecting…

¡Tu currículum fue enviado!

Gracias por interesarte en formar parte de nuestra familia.

Redirigiendo…