Diferencia entre revisiones de «Pruebas de las Vistas»

De Wiki de EGC
Saltar a: navegación, buscar
(Página creada con «Selelinum -------------- Selenium es un framework para testing y automatización de servidores en general que nos permite simular como actuaría un usuario frente a nuestr...»)
 
Línea 16: Línea 16:
 
     def setUp(self):
 
     def setUp(self):
 
         self.driver = webdriver.Firefox()
 
         self.driver = webdriver.Firefox()
 
+
       
 
     def test_signup_fire(self):
 
     def test_signup_fire(self):
         self.driver.get("http://localhost:8000/add/")
+
         self.driver.get("http://localhost:5000/admin/login/?next=/admin/")
         self.driver.find_element_by_id('id_title').send_keys("test title")
+
         self.driver.find_element_by_id('id_username').send_keys("practica")
         self.driver.find_element_by_id('id_body').send_keys("test body")
+
         self.driver.find_element_by_id('id_password').send_keys("practica")
         self.driver.find_element_by_id('submit').click()
+
         self.driver.find_element_by_id('login-form').click()
         self.assertIn("http://localhost:8000/", self.driver.current_url)
+
         self.assertTrue(len(self.driver.find_elements_by_id('user-tools'))>0)  
 
 
 
     def tearDown(self):
 
     def tearDown(self):
 
         self.driver.quit
 
         self.driver.quit

Revisión del 10:21 16 nov 2019

Selelinum


Selenium es un framework para testing y automatización de servidores en general que nos permite simular como actuaría un usuario frente a nuestra aplicación[[1]]

En nuestro caso usaremos selenium dada la dificutad de probar las vistas en django. Estas vistas, normalmente tienen que lidiar con dependencias AJAX, Javascript, etc para poder ejecutarse normalmente.

Por ejemplo podemos probar si el acceso a la web de login es correcto o no:

import unittest
from selenium import webdriver

class TestSignup(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Firefox()
        
    def test_signup_fire(self):
        self.driver.get("http://localhost:5000/admin/login/?next=/admin/")
        self.driver.find_element_by_id('id_username').send_keys("practica")
        self.driver.find_element_by_id('id_password').send_keys("practica")
        self.driver.find_element_by_id('login-form').click()
        self.assertTrue(len(self.driver.find_elements_by_id('user-tools'))>0) 
    def tearDown(self):
        self.driver.quit

if __name__ == '__main__':
    unittest.main()
  • Importante estos tests los podemos ejecutar desde dentro del propio sistema django o bien implementarlos para ejecutarlos de manera autonoma