Web
Grado en Ingeniería Informática
Dep. de Lenguajes y Sistemas Informáticos
Jorge Vicente Cantero / Vlad Filip
Testing
Tools
Prof. Ramón Alberto Mollineda Cardenas
El objetivo de las aplicaciones web es el de transmitir el mensaje de una compañia u ofrecer un servicio accesible desde el exterior a todo el mundo.
La implementación de tecnologías web permite crear un sistema con clientes ligeros (normalmente el navegador) separado del servidor donde residen centralizados el hardware, software y datos. Por esta razón, es imprescindible tener un sistema eficiente y sin errores.
Qué
queremos
css
html
compatibilidad
scripts
base de datos
api
www
js
ui
Qué
necesitamos
Necesitamos herramientas diseñadas para probar las diferentes partes de la arquitectura de un producto web: scripts, formato gráfico, seguridad, entorno multiplataforma etc.
Cómo
lo
queremos
- rapidez
- flexibilidad
- automatización
- escribir poco código
Cómo
lo
queremos
y si es gratis, hemos encontrado el santo grial
Trade-off
Tiempo invertido
Ganancias
Test sin automatizar
Pagar un servicio
Test manuales
Aprender nuevos lenguajes
Humano
Máquina
vs
Web
testing
tools
Son herramientas especiales enfocadas a comprobar la correcta funcionalidad de las aplicaciones web.
Intentan descubrir fallos en funcionalidad, seguridad, accesibilidad, usabilidad, compatibilidad y eficiencia antes de lanzar un producto final al público.
tipos
de
test
- Load, stress and Performance testing Tools
- Web Functional, GUI or Regression testing Tools
- Link Manager testing tools
- Web Site Security testing Tools
- Cross-browser testing tools
- W3C CSS validator
- W3C Link Checker
Selenium
Sirve para
Crear tests robustos y suits de automatización de la pruebas de regresión para diferentes navegadores
Escalar y distribuir scripts en diferentes entornos
Automatizar tareas aburridas cuando se despliegan aplicaciones web
Productos
Selenium Webdriver
Selenium Grid
Selenium IDE
Selenium
Características
Ejecutable en cualquier navegador y sistema operativo
Soporte para C#, Java, Ruby, PHP, Python
Entornos de test soportados: JUnit, TestNG, Nunit, pyunit
Muy buena documentación y comunidad
Innovador en ofrecer el servicio
Muy utilizado
Nos ofrece
Flexibilidad, potencia y soporte para lenguajes comunes
Selenium
Problemas
Fallan los tests por problemas de timing
Tenemos que usar nuestros propios servidores
Difícil de usar
Selenium
public class TestMultipleThreads {
@Test(invocationCount = 5)
public void loadTestThisWebsite() {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
System.out.println("Page Title is " + driver.getTitle());
Assert.assertEquals("Google", driver.getTitle());
driver.quit();
}
}
helium
Características
Ejecutable en cualquier navegador y sistema operativo
Soporte Java/Python
Multiplataforma Mac OS, Linux y Windows
Soporte Maven
Integrado en IDEs como Eclipse
Nos ofrece
Automatización web de una manera sencilla basándose en Selenium.
Usa un lenguaje de scripting de alto nivel.
helium
startChrome();
goTo("facebook.com");
write("email", into("Email or Phone"));
write("password", into("Password"));
click("Log In");
write("Hello from Helium!", into("Update Status"));
click("Post");
Actulizar status en Facebook
helium
from . import TheInternetTestCase
from helium.api import Text, write, press, ENTER, click
class BasicAuthTest(TheInternetTestCase):
def get_page(self):
return "http://the-internet.herokuapp.com/login"
def test_valid_credentials(self):
self._login("tomsmith", "SuperSecretPassword!")
self.assertTrue(Text("Secure Area").exists())
self._logout()
def test_no_credentials(self):
click("Login")
self.assertTrue(Text("Your username is invalid!").exists())
def test_invalid_password(self):
self._login("tomsmith", "INVALID_PASSWORD")
self.assertTrue(Text("Your password is invalid!").exists())
def _login(self, username, password):
write(username, into="Username")
write(password, into="Password")
press(ENTER)
def _logout(self):
click("Logout")
self.assertTrue(Text("You logged out of the secure area!").exists())
Código para comprobar el login
continous
tools
Sauce Labs
Equafy
Integration
web
sauce labs
Automatización múltiples navegadores
Automatización testing para móviles
Testing manual
Utiliza Selenium tests, soporte Maven
Grabación y compartir
Test seguros
Herramientas debugging
Compatibilidad con otros tests o CI
Localizar problemas fácilmente (log visual)
sauce labs
sauce labs
equafy
- Escaneado automático del sitio web en búsqueda de fallos de compatibilidad con diferentes navegadores.
- Test de herramientas en la intranet y detrás del firewall.
- Ejecución de scripts Selenium.
- Open source.
equafy
equafy
nibbler
nibbler
nibbler
otros
Load, Stress and Performance Testing Tools
- Sahi
- TestCafe
- CasperJS
Web Functional/Regression testing Tools
- Apache JMeter
- NeoLoad
- LoadRunner
otros
Link Manager Testing Tools
- NTOSpider
- Brakeman
- SiteDigger
Web Site Security Testing Tools
- SpringTrax
- LinkTiger
- LinkScan
otros
Cross Browser Testing Tools
- Browsera
- IE NetRenderer
- IETester
if (publico.leHaGustado()){
publico.aplaudir(3000);
}
Gracias
Seminario Web Testing Tools
By Vlad Filip
Seminario Web Testing Tools
- 772