bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


python_web_test

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
python_web_test [2022/11/30 10:23]
enric_mieza_sanchez [Pytest amb Selenium]
python_web_test [2022/12/13 19:16] (actual)
enric_mieza_sanchez [Exercici : login]
Línia 1: Línia 1:
 ====== Python web test amb Pytest ====== ====== Python web test amb Pytest ======
 +
 +{{ pytest_logo.svg?200|By Holger Krekel - https://pypi.org/project/pytest/, CC BY 2.5, https://commons.wikimedia.org/w/index.php?curid=116199948 }}
  
 Referències: Referències:
-  * Continua de [[Python Web]]+  * Continua de [[Python Web]] , cal conèixer Flask
   * Necessitaràs [[Python venv]]   * Necessitaràs [[Python venv]]
  
Línia 10: Línia 12:
 \\ \\
  
 +<WRAP important>
 +Per poder seguir els exemples d'aquesta pàgina cal que abans hagis fet l'app bàsica amb el formulari que apareix a [[Python web]].
 +</WRAP>
  
 ===== Pytest + client de tests de Flask ===== ===== Pytest + client de tests de Flask =====
-Anem a veure com podem testejar les nostres aplicacions fetes amb Flask.+En aquesta primera aproximació **testejarem la webapp Flask amb un client intern de ''pytest'', és a dir, que no farà servir un //browser// real**.
  
 Fem-li un cop d'ull a la [[https://flask.palletsprojects.com/testing/|documentació de test amb Flask]]. Fem-li un cop d'ull a la [[https://flask.palletsprojects.com/testing/|documentació de test amb Flask]].
Línia 62: Línia 67:
 Primer caldrà que instal·lem el package de pytest-selenium: Primer caldrà que instal·lem el package de pytest-selenium:
   (env) $ pip install pytest-selenium   (env) $ pip install pytest-selenium
 +
 +I també el driver per a automatitzar el Firefox:
 +  $ sudo apt install firefox-geckodriver
  
 Documentacions importants: Documentacions importants:
Línia 77: Línia 85:
 def test_home(selenium): def test_home(selenium):
     selenium.get('http://localhost:5000')     selenium.get('http://localhost:5000')
 +    # podem examinar el què ens retorna el browser a "page_source"
     assert "Hello, World" in selenium.page_source     assert "Hello, World" in selenium.page_source
  
Línia 96: Línia 105:
     assert "Salut, manolo" in selenium.page_source     assert "Salut, manolo" in selenium.page_source
 </file> </file>
 +
 +Per posar en marxa el test ens caldrà 2 shells. En la 1a, posem en marxa la app:
 +  (env) $ flask --app web run
 +
 +I a la 2a shell engeguem els tests:
 +  (env) $ pytest --driver Firefox
 +
 +<WRAP info>
 +Fixa't en què per trobar elements fem servir ''find_element'' amb un ''By.XPATH''.
 +
 +Pots trobar més info de com localitzar elements a la **doc oficial de Selenium per Python**:
 +  * [[https://selenium-python.readthedocs.io/navigating.html|Secció Navigating]]
 +  * [[https://selenium-python.readthedocs.io/api.html#locate-elements-by|Secció API]]
 +</WRAP>
  
 \\ \\
Línia 119: Línia 142:
  
 \\ \\
 +
 +===== Per saber més =====
 +En [[https://testdriven.io/blog/flask-pytest/|aquesta pàgina s'expliquen molts conceptes de testing en Flask i pytest]].
  
  
python_web_test.1669803784.txt.gz · Darrera modificació: 2022/11/30 10:23 per enric_mieza_sanchez