Diferencia entre revisiones de «Testing en Python»
| Línea 64: | Línea 64: | ||
= Probas automáticas con Selenium = | = Probas automáticas con Selenium = | ||
| + | == Introdución == | ||
| + | |||
| + | == Instalación de Selenium Webdriver == | ||
| + | |||
| + | == Primeiros pasos == | ||
| + | |||
| + | == Mecanismos de espera == | ||
| + | |||
| + | == Introducindo datos en formularios == | ||
| + | |||
| + | == Probas con unittest == | ||
| + | |||
| + | == Elementos intermedios == | ||
| + | |||
| + | == Patrón Page Object Model (POM) == | ||
| + | |||
| + | == Behave == | ||
| + | |||
| + | == Virtualenv == | ||
| + | |||
| + | == PyBuilder == | ||
| + | |||
| + | == Selenium Grid == | ||
= Referencias = | = Referencias = | ||
* Curso de Selenium con Python para [https://openwebinars.net/academia/portada/selenium-python-principiantes/ principiantes] e [https://openwebinars.net/academia/portada/selenium-python-intermedio/ intermedio] en [https://openwebinars.net/academia/ Openwebinars] | * Curso de Selenium con Python para [https://openwebinars.net/academia/portada/selenium-python-principiantes/ principiantes] e [https://openwebinars.net/academia/portada/selenium-python-intermedio/ intermedio] en [https://openwebinars.net/academia/ Openwebinars] | ||
* [https://openwebinars.net/academia/portada/testing-python/ Testing] e [https://openwebinars.net/academia/portada/herramientas-testing-python/ ferramentas de testing] en [https://openwebinars.net/academia/ Openwebinars] | * [https://openwebinars.net/academia/portada/testing-python/ Testing] e [https://openwebinars.net/academia/portada/herramientas-testing-python/ ferramentas de testing] en [https://openwebinars.net/academia/ Openwebinars] | ||
Revisión del 11:13 29 jun 2023
Testing en Python
- Pytest
- Librería moi popular que permite crear tests unitarios de forma moi sinxela.
# test_sum.py
@pytest.mark.parametrize("test_input,expected", [(2,3,5), (3,4,7), (5,6,11)])
def test_sum_is_working(a, b, result):
assert sum(a,b) == result
- Unittest
- Librería estándar de python para facer testing (sobre todo unitario). Basease na creación de Test Cases para probar a aplicación.
- Mock
- Módulo pertencente á librería de unittest quefacilita a creación de Mocks que imiten o comportamento dunha clase para así poder testear a aplicación de forma independente.
- Patch
- Método que se atopa no módulo mock e que facilita a substitución de referencias en módulos python por obxectos Mock.
Exemplos
Para probar as aplicacións:
python -m calculadora.main add 1 1 python -m jokes.main
Para ver algunhas das súas opcións ou como funcionan engade o parámetro -h.
Todos os tests están no cartafol tests das aplicacións. Para correlos:
python -m unittest
Calculadora
Este proxecto de python emula o comportamento dunha calculadora. Ten varias operacións implementadas, e teremos que testear que funcionan correctamente.
Jokes
Este proxecto de python ataca a unha API Rest de bromas para recuperalas.
Calculadora con máis probas
O proxecto e as probas.
load_testing - locust
Basease na xeración de varios usuarios virtuais para xenerar carga sobre a aplicación e comprobar o seu comportamento
property_testing
Baesase na creación de tests válidos para calquer combinación de parámetros que se le poida pasar á función de testing.
1 @given(op1=st.integers(), op2=st.integers())
2 def test_calculate_is_working(op1: int, op2: int):
3 assert sum([op1, op2]) == op1 + op
contract testing
Basease na utilización de API contract para comprobar que a implementación realízase de xeito correcto.
schemathesis run http://localhost:8000/openapi.json
Probas automáticas con Selenium
Introdución
Instalación de Selenium Webdriver
Primeiros pasos
Mecanismos de espera
Introducindo datos en formularios
Probas con unittest
Elementos intermedios
Patrón Page Object Model (POM)
Behave
Virtualenv
PyBuilder
Selenium Grid
Referencias
- Curso de Selenium con Python para principiantes e intermedio en Openwebinars
- Testing e ferramentas de testing en Openwebinars