Diferencia entre revisiones de «Testing en Python»
| Línea 89: | Línea 89: | ||
= Referencias = | = Referencias = | ||
| + | * [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] | ||
| + | |||
| + | == Selenium == | ||
* 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:// | + | * [https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/tutorial-de-selenium-webdriver/ Tutorial de Selenium: cómo usar el marco de pruebas cruzadas para navegador] |
| + | * [https://selenium-python.readthedocs.io/ Tutorial] by Baiju Muthukadan licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. | ||
| + | * [https://www.selenium.dev/documentation/webdriver/getting_started/first_script/ Primer script] | ||
Revisión del 11:15 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
Selenium
- Curso de Selenium con Python para principiantes e intermedio en Openwebinars
- Tutorial de Selenium: cómo usar el marco de pruebas cruzadas para navegador
- Tutorial by Baiju Muthukadan licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
- Primer script