automation site
UI Playground

Playwright es una librería de automatización de navegadores Web creada y mantenida por Microsoft. Funciona con los navegadores Chromium, Firefox y Webkit. Se puede enlazar con los lenguajes de programación Python, Java, .Net y JavasCript. La extensión de Python tiene un plugin para ser usado con Pytest.

Instalación

pip install playwright
playwright install  # También: python -m playwright install

Ejemplo de uso para visitar una página:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    page.goto("http://playwright.dev")
    print(page.title())
    browser.close()

Para usar con pytest instalamos el wrapper que nos permite usar fixtures:

pip install pytest-playwright

Las funciones tienen acceso a los fixtures cuando se usan como argumentos de la función:

def test_invalid_input(page):
    page.goto("/sampleapp")
    assert page.inner_text('h3') == 'Sample App'
    page.click("text=Log In")
    assert page.inner_text('#loginstatus') == 'Invalid username/password'

def test_bad_button(page):
    page.goto("/click")
    assert page.inner_text('h3') == 'Click'
    button_class = page.get_attribute('#badButton', 'class')
    assert button_class == 'btn btn-primary'
    page.click("#badButton")
    button_class = page.get_attribute('#badButton', 'class')
    assert button_class == 'btn btn-success'

El archivo de configuración de pytest se puede usar para señalar la URL base:

[pytest]
# Run firefox with UI
addopts = --base-url http://www.uitestingplayground.com/

Al ejecutar el test se puede crear un reporte en formato HTML. Previamente hay que instalar el paquete:

pip install pytest-reporter-html1

Y con este comando realizamos el test y creamos el reporte:

pytest --template=html1/index.html --report=report.html

Y este es el reporte que se obtiene:

test report
Test Report