Diferencia entre revisiones de «Testing en Python»

De MediaWiki
Ir a la navegación Ir a la búsqueda
 
(No se muestran 2 ediciones intermedias del mismo usuario)
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 =
 +
* [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://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://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]
 +
* [https://contabo.com/blog/integration-testing-cheat-sheet/ Integration Testing Cheat Sheet ]

Revisión actual del 08:59 14 ene 2025

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


Exemplo de load testing

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