SlideShare una empresa de Scribd logo
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
TESTING USER HAPPINESS
WebPageTest workshop
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
import random
import time
import requests
class Speaker(object):
def __init__(self):
born = "Avilés - Asturias"
studies = "Applied Maths and Computability"
jobdescription = "Performance Jedi"
company = "Telefónica I+D"
team = "Product Engineering"
project = "AWAZZA"
talks = [ExpoQA, VLC Testing, DevopsDays, WebPerfDays, Velocity]
def talk(self):
start_timer = time.time()
r = requests.get('http://www.slideshare.net/almudenavivanco')
r.raw.read()
latency = time.time() - start_timer
self.custom_timers[‘VLTesting’'] = latency
if __name__ == '__main__':
speech = Speaker()
speech.talk()
print trans.custom_timers
Almudena Vivanco
(@MrsDaehin)
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
• Satisfacción del Usuario
• Qué vamos a medir
• Cómo lo vamos a medir
• Qué queremos tracear
What are we going to focuson?
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Medir
Tener un Objetivo
Medir siempre cuanto antes mejor
Continuous Performance Testing
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Optimizar
Reducir el Throughput
Reducir el número de recursos críticos
Acortar el Critical Path ( CRP )
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Satisfacción del Usuario
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Online free tool for synthetic performance testing
#PerfMatters
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
http://usingwpt.com
Aimed at Novices and Power Users
Includes:
Basics
Getting started, running tests, understanding waterfall
charts and the metrics WebPageTest captures
Intermediate
Picking the right test parameters, scripting multi-page tests
and using your existing analytics data to help the decisions
Advanced
Using the API, integrating WebPageTest into build and CI
processes, and setting up your own private instances
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Qué no es?
WebPageTest NO es una herramienta de carga
No vamos a comprobar el rendimiento en situaciones de saturación
No es una herramienta que nos permita conocer el estado de nuestro servicio
No es una auditoría de código de front end ni consola de errores de javascript
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Qué es?
WebPageTest es una herramienta de rendimiento a nivel browser que nos permite determinar y
automatizar resultados de visualización y renderización.
En definitiva, nos permite comprobar cuál es la experiencia de usuario
www.webpagetest.org
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Cómo funciona?
Poll por tareas, mide carga y
devuelve los resultados al WPT
server
Carga la página / páginas
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Qué nos permite? Mobile Testing
Mobile emulation Mode y Dispositivos móviles
desde distintas localizaciones y con distintos
User Agents
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Agentes Móviles
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaFear the Latency
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaFear the Latency
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Fear is the path to the
dark side. Fear leads to
Inertia. Inertia Leads to
paralysis. Paralysis leads
to going out of Business.
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaLet’s Aim for Speed
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Simple Test
Una vez ejecutado veremos
http://bit.ly/2sfPAlv
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaQué tenemos que Medir?
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaOptimizar
https://csswizardry.com/
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Vista Waterfall
Una vez ejecutado veremos
Sin
Cache de
Browser
Con
Cache de
Browser
Golden
Performance
Rules
http://bit.ly/2rfmROM
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Advanced Settings…
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaTime is Relative
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Analytical Review Parameters
Localización
Browser
Velocidad de Conexión
Número de test a ejecutar ( coger un número Impar ;) )
First View and Repeat View ( Cache!!! )
Document Complete vs OnLoad
Ignorar Errores SSL
Capturar tcpdump
User Agent ad Hoc
Custom Headers
Qué tenemos que Medir?
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaSize?
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaOptimizar
Reducir cantidad de Bytes
● Minificar, comprimir y cachear
○ HTML
○ CSS → http://www.cssanalyzer.com/
○ JavaScript → https://jscompress.com/
● Quitar estilos no usados
○ unused-css.com
● Comprimir imagenes
○ compressor.io
● Comprimir y unificar fuentes
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaWhat shall we Measure?
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaNumber of Requests?
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaNumber of Domains?
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
SPOF y Block
La opción de Block nos simula un error tipo 404 mientras que si usamos el SPOF nos simula un timeout.
Por ejemplo podemos comprobar con Block la diferencia entre el tiempo de carga con y sin anuncios ( bloqueando
anuncios o trackers ;) )
En cambio cuando probamos el Single Point of Failure lo que queremos comprobar es que nuestro site es resilient a 3rd
parties como por ejemplo los trackers, cómo se comporta nuestro site si el acceso a google analytics es lento o realmente
no hay servicio.
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
“My Mean time is fine."
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Apdex Index
t = acceptable response time
satisfied = response time < t
tolerating = t < response time > 4t
frustrated = response time > 4t
Apdex [t] = (satisfied + tolerating/2)/total requests
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Afterwards … in PROD ...
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Time To
FIRST
BYTE
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Waterfall Detalles
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Cómo analizar el waterfall
Cuántos Kb tiene el html inicial
En qué segundo comienza el evento render
Cuántos socket connections hay hacia un host en concreto
Cuántas redirecciones
En qué momento hay un socket abierto contra un recurso y por qué
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Custom Metrics
[iframe-count]
return document.getElementsByTagName("iframe").length;
[script-tag-count]
return document.getElementsByTagName("script").length;
[meta-viewport]
var viewport = undefined;
var metaTags=document.getElementsByTagName("meta");
for (var i = 0; i < metaTags.length; i++) {
if (metaTags[i].getAttribute("name") == "viewport") {
viewport = metaTags[i].getAttribute("content");
break;
}
}
return viewport
NO se pueden añadir operaciones asincronas :( Timers, Ajax requests etc ...
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Performance
It's not just about adding more servers
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
http://bit.ly/2sUfZn5
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
REAL
USER
MONITO
RING
Bring Up
RUM*
real user monitoring
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaReal User Monitoring
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
THINK BIG
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
HOW TO … Private Instance
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Analytical Review Parámetros
Localización
Browser
Velocidad de Conexión
Número de test a ejecutar ( coger un número Impar ;) )
First View and Repeat View ( Cache!!! )
Document Complete vs OnLoad
Ignorar Errores SSL
Capturar tcpdump
User Agent ad Hoc
Custom Headers
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Custom Metrics
[iframe-count]
return document.getElementsByTagName("iframe").length;
[script-tag-count]
return document.getElementsByTagName("script").length;
[meta-viewport]
var viewport = undefined;
var metaTags=document.getElementsByTagName("meta");
for (var i = 0; i < metaTags.length; i++) {
if (metaTags[i].getAttribute("name") == "viewport") {
viewport = metaTags[i].getAttribute("content");
break;
}
}
return viewport
NO se pueden añadir operaciones asincronas :( Timers, Ajax requests etc ...
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Vista Waterfall
Una vez ejecutado veremos
Sin
Cache de
Browser
Con
Cache de
Browser
Golden
Performance
Rules
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Waterfall → Har File
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Cómo analizar el waterfall
Cuántos Kb tiene el html inicial
En qué segundo comienza el evento render
Cuántos socket connections hay hacia un host en concreto
Cuántas redirecciones
En qué momento hay un socket abierto contra un recurso y por qué
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Waterfall Detalles
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
SPOF y Block
La opción de Block nos simula un error tipo 404 mientras que si usamos el SPOF nos simula un timeout.
Por ejemplo podemos comprobar con Block la diferencia entre el tiempo de carga con y sin anuncios ( bloqueando
anuncios o trackers ;) )
En cambio cuando probamos el Single Point of Failure lo que queremos comprobar es que nuestro site es resilient a 3rd
parties como por ejemplo los trackers, cómo se comporta nuestro site si el acceso a google analytics es lento o realmente
no hay servicio.
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
CÓMO DETECTAR SPOF
con Charles Proxy y WPO
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Análisis de Impacto!
API server down?
AdBulk down?
Tracker down?
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
https://www.charlesproxy.com/
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
http://www.webpagetest.org/
http://bit.ly/2svef6a
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
uno fácil
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Búsqueda en
google
logData 0
navigate http://www.google.es
setvalue id=lst-ib ExpoQA
logData 1
submitformid=tsf
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Searching Google
Results page only -
Search and results page -
Waterfall for results page only
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Chrome Devtools
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
¿Ro.Bot?
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Proxy > Throttiling
Tools > Map Remote
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Traceroute
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
WPT Bulk Tester by Andy Davis
http://calendar.perfplanet.com/2014/driving-webpagetest-from-a-google-docs-spreadsheet/
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
https://github.com/andydavies/WPT-Bulk-Tester
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Demo - http://man.gl/1UxjYjs
@MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
Private instances too!

Más contenido relacionado

Similar a Dia02 t03-s04-vlctesting2017-seminario-almudena-vivanco

REPRESENTACION ALGORITMOS
REPRESENTACION ALGORITMOSREPRESENTACION ALGORITMOS
REPRESENTACION ALGORITMOSluisbecerracruz
 
Net conf uy 2017 Workshop Microsoft Flow - Power BI
Net conf uy 2017 Workshop Microsoft Flow - Power BINet conf uy 2017 Workshop Microsoft Flow - Power BI
Net conf uy 2017 Workshop Microsoft Flow - Power BIGaston Cruz
 
Construir una App con AI nunca fue tan fácil
Construir una App con AI nunca fue tan fácilConstruir una App con AI nunca fue tan fácil
Construir una App con AI nunca fue tan fácilRuben Chavarri
 
Las aplicaciones en tiempo real con SIGNALR son un excelente recurso para pro...
Las aplicaciones en tiempo real con SIGNALR son un excelente recurso para pro...Las aplicaciones en tiempo real con SIGNALR son un excelente recurso para pro...
Las aplicaciones en tiempo real con SIGNALR son un excelente recurso para pro...Florencia Nodar💻
 
Proyecto portal web BATEMS
Proyecto portal web BATEMSProyecto portal web BATEMS
Proyecto portal web BATEMSCarlos Hdez
 
¿Cuándo utilizar prototipos digitales?
¿Cuándo utilizar prototipos digitales?¿Cuándo utilizar prototipos digitales?
¿Cuándo utilizar prototipos digitales?Carlos Elias Ochoa
 
VLCtesting 2013 - Comprobando y refutando las promesas del testing automatiza...
VLCtesting 2013 - Comprobando y refutando las promesas del testing automatiza...VLCtesting 2013 - Comprobando y refutando las promesas del testing automatiza...
VLCtesting 2013 - Comprobando y refutando las promesas del testing automatiza...Abstracta
 
anexos Wendy Orellana Gutierrez
anexos Wendy Orellana Gutierrezanexos Wendy Orellana Gutierrez
anexos Wendy Orellana GutierrezWendy337
 
Scrum y la gestión de proyecto Web
Scrum y la gestión de proyecto WebScrum y la gestión de proyecto Web
Scrum y la gestión de proyecto Webinvestic
 

Similar a Dia02 t03-s04-vlctesting2017-seminario-almudena-vivanco (12)

Tabajo final unidad 4
Tabajo final unidad 4Tabajo final unidad 4
Tabajo final unidad 4
 
REPRESENTACION ALGORITMOS
REPRESENTACION ALGORITMOSREPRESENTACION ALGORITMOS
REPRESENTACION ALGORITMOS
 
Mis primeros pasos en xamarin
Mis primeros pasos en xamarinMis primeros pasos en xamarin
Mis primeros pasos en xamarin
 
Net conf uy 2017 Workshop Microsoft Flow - Power BI
Net conf uy 2017 Workshop Microsoft Flow - Power BINet conf uy 2017 Workshop Microsoft Flow - Power BI
Net conf uy 2017 Workshop Microsoft Flow - Power BI
 
Construir una App con AI nunca fue tan fácil
Construir una App con AI nunca fue tan fácilConstruir una App con AI nunca fue tan fácil
Construir una App con AI nunca fue tan fácil
 
Las aplicaciones en tiempo real con SIGNALR son un excelente recurso para pro...
Las aplicaciones en tiempo real con SIGNALR son un excelente recurso para pro...Las aplicaciones en tiempo real con SIGNALR son un excelente recurso para pro...
Las aplicaciones en tiempo real con SIGNALR son un excelente recurso para pro...
 
Proyecto portal web BATEMS
Proyecto portal web BATEMSProyecto portal web BATEMS
Proyecto portal web BATEMS
 
El pequeño se hace mayor
El pequeño se hace mayor El pequeño se hace mayor
El pequeño se hace mayor
 
¿Cuándo utilizar prototipos digitales?
¿Cuándo utilizar prototipos digitales?¿Cuándo utilizar prototipos digitales?
¿Cuándo utilizar prototipos digitales?
 
VLCtesting 2013 - Comprobando y refutando las promesas del testing automatiza...
VLCtesting 2013 - Comprobando y refutando las promesas del testing automatiza...VLCtesting 2013 - Comprobando y refutando las promesas del testing automatiza...
VLCtesting 2013 - Comprobando y refutando las promesas del testing automatiza...
 
anexos Wendy Orellana Gutierrez
anexos Wendy Orellana Gutierrezanexos Wendy Orellana Gutierrez
anexos Wendy Orellana Gutierrez
 
Scrum y la gestión de proyecto Web
Scrum y la gestión de proyecto WebScrum y la gestión de proyecto Web
Scrum y la gestión de proyecto Web
 

Más de Almudena Vivanco

Performance Microservices in the Cloud
Performance Microservices in the CloudPerformance Microservices in the Cloud
Performance Microservices in the CloudAlmudena Vivanco
 
The sWag of performance Testing
The sWag of performance TestingThe sWag of performance Testing
The sWag of performance TestingAlmudena Vivanco
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance TestingAlmudena Vivanco
 
Integrating taurus and jmeter
Integrating taurus and jmeterIntegrating taurus and jmeter
Integrating taurus and jmeterAlmudena Vivanco
 
Fine line between performance and security
Fine line between performance and securityFine line between performance and security
Fine line between performance and securityAlmudena Vivanco
 
Modelling performance tests
Modelling performance testsModelling performance tests
Modelling performance testsAlmudena Vivanco
 
Web pagetest Meetup At Trovit
Web pagetest Meetup At TrovitWeb pagetest Meetup At Trovit
Web pagetest Meetup At TrovitAlmudena Vivanco
 
After test Barcelona 20160303
After test Barcelona 20160303After test Barcelona 20160303
After test Barcelona 20160303Almudena Vivanco
 
Workshop performance vl ctesting
Workshop performance vl ctestingWorkshop performance vl ctesting
Workshop performance vl ctestingAlmudena Vivanco
 
Deployment Driven Development and Performance Testing TEFCON2015
Deployment Driven Development and Performance Testing TEFCON2015Deployment Driven Development and Performance Testing TEFCON2015
Deployment Driven Development and Performance Testing TEFCON2015Almudena Vivanco
 
Webperfdays2014 movistar tv
Webperfdays2014 movistar tvWebperfdays2014 movistar tv
Webperfdays2014 movistar tvAlmudena Vivanco
 
Performance Best Practices
Performance Best PracticesPerformance Best Practices
Performance Best PracticesAlmudena Vivanco
 

Más de Almudena Vivanco (20)

Performance Microservices in the Cloud
Performance Microservices in the CloudPerformance Microservices in the Cloud
Performance Microservices in the Cloud
 
Dotnet conf2019 barcelona
Dotnet conf2019 barcelonaDotnet conf2019 barcelona
Dotnet conf2019 barcelona
 
The sWag of performance Testing
The sWag of performance TestingThe sWag of performance Testing
The sWag of performance Testing
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
 
Integrating taurus and jmeter
Integrating taurus and jmeterIntegrating taurus and jmeter
Integrating taurus and jmeter
 
Fine line between performance and security
Fine line between performance and securityFine line between performance and security
Fine line between performance and security
 
Modelling performance tests
Modelling performance testsModelling performance tests
Modelling performance tests
 
WPT Midiendo la Felicidad
WPT Midiendo la FelicidadWPT Midiendo la Felicidad
WPT Midiendo la Felicidad
 
Web pagetest Meetup At Trovit
Web pagetest Meetup At TrovitWeb pagetest Meetup At Trovit
Web pagetest Meetup At Trovit
 
Expo qa 2016
Expo qa 2016Expo qa 2016
Expo qa 2016
 
Niji power to the user
Niji power to the userNiji power to the user
Niji power to the user
 
After test Barcelona 20160303
After test Barcelona 20160303After test Barcelona 20160303
After test Barcelona 20160303
 
Workshop performance vl ctesting
Workshop performance vl ctestingWorkshop performance vl ctesting
Workshop performance vl ctesting
 
Deployment Driven Development and Performance Testing TEFCON2015
Deployment Driven Development and Performance Testing TEFCON2015Deployment Driven Development and Performance Testing TEFCON2015
Deployment Driven Development and Performance Testing TEFCON2015
 
Webperfdays2014 movistar tv
Webperfdays2014 movistar tvWebperfdays2014 movistar tv
Webperfdays2014 movistar tv
 
Workshop for newcomers
Workshop for newcomersWorkshop for newcomers
Workshop for newcomers
 
Velocity2014 gvp
Velocity2014 gvpVelocity2014 gvp
Velocity2014 gvp
 
Devopsdays barcelona
Devopsdays barcelonaDevopsdays barcelona
Devopsdays barcelona
 
Performance Best Practices
Performance Best PracticesPerformance Best Practices
Performance Best Practices
 
Speed me up!
Speed me up!Speed me up!
Speed me up!
 

Último

Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfManuelCampos464987
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxJohanna4222
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.saravalentinat22
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesssuserbe0d1c
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfMarianneBAyn
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerRobertoCarrancioFern
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusraquelariza02
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfcj3806354
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdfIsabelHuairaGarma
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestrerafaelsalazar0615
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docxwerito139410
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxTaim11
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadaspqeilyn0827
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdffrank0071
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfjjfch3110
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxencinasm992
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaFernando Villares
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
 

Último (20)

Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptx
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 

Dia02 t03-s04-vlctesting2017-seminario-almudena-vivanco

  • 1. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 2. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España TESTING USER HAPPINESS WebPageTest workshop
  • 3. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España import random import time import requests class Speaker(object): def __init__(self): born = "Avilés - Asturias" studies = "Applied Maths and Computability" jobdescription = "Performance Jedi" company = "Telefónica I+D" team = "Product Engineering" project = "AWAZZA" talks = [ExpoQA, VLC Testing, DevopsDays, WebPerfDays, Velocity] def talk(self): start_timer = time.time() r = requests.get('http://www.slideshare.net/almudenavivanco') r.raw.read() latency = time.time() - start_timer self.custom_timers[‘VLTesting’'] = latency if __name__ == '__main__': speech = Speaker() speech.talk() print trans.custom_timers Almudena Vivanco (@MrsDaehin)
  • 4. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España • Satisfacción del Usuario • Qué vamos a medir • Cómo lo vamos a medir • Qué queremos tracear What are we going to focuson?
  • 5. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Medir Tener un Objetivo Medir siempre cuanto antes mejor Continuous Performance Testing
  • 6. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Optimizar Reducir el Throughput Reducir el número de recursos críticos Acortar el Critical Path ( CRP )
  • 7. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Satisfacción del Usuario
  • 8. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Online free tool for synthetic performance testing #PerfMatters
  • 9. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España http://usingwpt.com Aimed at Novices and Power Users Includes: Basics Getting started, running tests, understanding waterfall charts and the metrics WebPageTest captures Intermediate Picking the right test parameters, scripting multi-page tests and using your existing analytics data to help the decisions Advanced Using the API, integrating WebPageTest into build and CI processes, and setting up your own private instances
  • 10. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Qué no es? WebPageTest NO es una herramienta de carga No vamos a comprobar el rendimiento en situaciones de saturación No es una herramienta que nos permita conocer el estado de nuestro servicio No es una auditoría de código de front end ni consola de errores de javascript
  • 11. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Qué es? WebPageTest es una herramienta de rendimiento a nivel browser que nos permite determinar y automatizar resultados de visualización y renderización. En definitiva, nos permite comprobar cuál es la experiencia de usuario www.webpagetest.org
  • 12. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Cómo funciona? Poll por tareas, mide carga y devuelve los resultados al WPT server Carga la página / páginas
  • 13. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Qué nos permite? Mobile Testing Mobile emulation Mode y Dispositivos móviles desde distintas localizaciones y con distintos User Agents
  • 14. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Agentes Móviles
  • 15. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 16. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaFear the Latency
  • 17. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaFear the Latency
  • 18. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Fear is the path to the dark side. Fear leads to Inertia. Inertia Leads to paralysis. Paralysis leads to going out of Business.
  • 19. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaLet’s Aim for Speed
  • 20. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 21. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Simple Test Una vez ejecutado veremos http://bit.ly/2sfPAlv
  • 22. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaQué tenemos que Medir?
  • 23. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 24. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 25. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaOptimizar https://csswizardry.com/
  • 26. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Vista Waterfall Una vez ejecutado veremos Sin Cache de Browser Con Cache de Browser Golden Performance Rules http://bit.ly/2rfmROM
  • 27. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Advanced Settings…
  • 28. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaTime is Relative
  • 29. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Analytical Review Parameters Localización Browser Velocidad de Conexión Número de test a ejecutar ( coger un número Impar ;) ) First View and Repeat View ( Cache!!! ) Document Complete vs OnLoad Ignorar Errores SSL Capturar tcpdump User Agent ad Hoc Custom Headers Qué tenemos que Medir?
  • 30. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaSize?
  • 31. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaOptimizar Reducir cantidad de Bytes ● Minificar, comprimir y cachear ○ HTML ○ CSS → http://www.cssanalyzer.com/ ○ JavaScript → https://jscompress.com/ ● Quitar estilos no usados ○ unused-css.com ● Comprimir imagenes ○ compressor.io ● Comprimir y unificar fuentes
  • 32. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaWhat shall we Measure?
  • 33. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaNumber of Requests?
  • 34. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 35. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 36. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaNumber of Domains?
  • 37. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España SPOF y Block La opción de Block nos simula un error tipo 404 mientras que si usamos el SPOF nos simula un timeout. Por ejemplo podemos comprobar con Block la diferencia entre el tiempo de carga con y sin anuncios ( bloqueando anuncios o trackers ;) ) En cambio cuando probamos el Single Point of Failure lo que queremos comprobar es que nuestro site es resilient a 3rd parties como por ejemplo los trackers, cómo se comporta nuestro site si el acceso a google analytics es lento o realmente no hay servicio.
  • 38. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 39. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España “My Mean time is fine."
  • 40. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Apdex Index t = acceptable response time satisfied = response time < t tolerating = t < response time > 4t frustrated = response time > 4t Apdex [t] = (satisfied + tolerating/2)/total requests
  • 41. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Afterwards … in PROD ...
  • 42. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Time To FIRST BYTE
  • 43. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 44. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 45. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Waterfall Detalles
  • 46. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Cómo analizar el waterfall Cuántos Kb tiene el html inicial En qué segundo comienza el evento render Cuántos socket connections hay hacia un host en concreto Cuántas redirecciones En qué momento hay un socket abierto contra un recurso y por qué
  • 47. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Custom Metrics [iframe-count] return document.getElementsByTagName("iframe").length; [script-tag-count] return document.getElementsByTagName("script").length; [meta-viewport] var viewport = undefined; var metaTags=document.getElementsByTagName("meta"); for (var i = 0; i < metaTags.length; i++) { if (metaTags[i].getAttribute("name") == "viewport") { viewport = metaTags[i].getAttribute("content"); break; } } return viewport NO se pueden añadir operaciones asincronas :( Timers, Ajax requests etc ...
  • 48. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Performance It's not just about adding more servers
  • 49. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España http://bit.ly/2sUfZn5
  • 50. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España REAL USER MONITO RING Bring Up RUM* real user monitoring
  • 51. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 52. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, EspañaReal User Monitoring
  • 53. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 54. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 55. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España THINK BIG
  • 56. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España HOW TO … Private Instance
  • 57. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 58. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Analytical Review Parámetros Localización Browser Velocidad de Conexión Número de test a ejecutar ( coger un número Impar ;) ) First View and Repeat View ( Cache!!! ) Document Complete vs OnLoad Ignorar Errores SSL Capturar tcpdump User Agent ad Hoc Custom Headers
  • 59. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Custom Metrics [iframe-count] return document.getElementsByTagName("iframe").length; [script-tag-count] return document.getElementsByTagName("script").length; [meta-viewport] var viewport = undefined; var metaTags=document.getElementsByTagName("meta"); for (var i = 0; i < metaTags.length; i++) { if (metaTags[i].getAttribute("name") == "viewport") { viewport = metaTags[i].getAttribute("content"); break; } } return viewport NO se pueden añadir operaciones asincronas :( Timers, Ajax requests etc ...
  • 60. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Vista Waterfall Una vez ejecutado veremos Sin Cache de Browser Con Cache de Browser Golden Performance Rules
  • 61. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Waterfall → Har File
  • 62. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Cómo analizar el waterfall Cuántos Kb tiene el html inicial En qué segundo comienza el evento render Cuántos socket connections hay hacia un host en concreto Cuántas redirecciones En qué momento hay un socket abierto contra un recurso y por qué
  • 63. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Waterfall Detalles
  • 64. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 65. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 66. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 67. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España SPOF y Block La opción de Block nos simula un error tipo 404 mientras que si usamos el SPOF nos simula un timeout. Por ejemplo podemos comprobar con Block la diferencia entre el tiempo de carga con y sin anuncios ( bloqueando anuncios o trackers ;) ) En cambio cuando probamos el Single Point of Failure lo que queremos comprobar es que nuestro site es resilient a 3rd parties como por ejemplo los trackers, cómo se comporta nuestro site si el acceso a google analytics es lento o realmente no hay servicio.
  • 68. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España CÓMO DETECTAR SPOF con Charles Proxy y WPO
  • 69. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Análisis de Impacto! API server down? AdBulk down? Tracker down?
  • 70. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España https://www.charlesproxy.com/
  • 71. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España http://www.webpagetest.org/ http://bit.ly/2svef6a
  • 72. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España
  • 73. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España uno fácil
  • 74. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Búsqueda en google logData 0 navigate http://www.google.es setvalue id=lst-ib ExpoQA logData 1 submitformid=tsf
  • 75. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Searching Google Results page only - Search and results page - Waterfall for results page only
  • 76. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Chrome Devtools
  • 77. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España ¿Ro.Bot?
  • 78. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Proxy > Throttiling Tools > Map Remote
  • 79. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Traceroute
  • 80. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España WPT Bulk Tester by Andy Davis http://calendar.perfplanet.com/2014/driving-webpagetest-from-a-google-docs-spreadsheet/
  • 81. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España https://github.com/andydavies/WPT-Bulk-Tester
  • 82. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Demo - http://man.gl/1UxjYjs
  • 83. @MrsDaehin29 y 30 de Noviembre de 2017. Valencia, España Private instances too!