![Page 1: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/1.jpg)
Ajax TruClient
Erfarenheter, tips och trix från Swedbank IT
Christian Gerdes
Performance Engineer, LIGHTS IN LINE AB
![Page 2: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/2.jpg)
Intro
• Lite om Swedbanks Teknik Test
• Varför TruClient
• En ny teknik kräver ett nytt tänk
• Lite utmaningar med tekniken
• Tips på verktyg
• Lite demo och ställ frågor
![Page 3: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/3.jpg)
Swedbank Teknik Test
• Började redan 1997
• Idag ett team på 5 PT, 1 TL, 1 MF
• Utarbetade och väl etablerade metoder och processer
• Release teknik tester (regression) och Projekt (Utveckling, IO, Inköpta system)
• 10 releaser, 90 projekt per år (2-5 v)
• Dubbla produktionslika PT miljöer (inkl MF) + 1 labb miljö, 3 delade controllers, 3 kanoner
![Page 4: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/4.jpg)
Varför TruClient? – Webben ändras
• Web 1.0 – Kompletta sidor och ett singel trådat flöde – Allt är i princip HTML och HTTP Metoder – Ingen logik i webbläsaren – Användaren styr flödet
• Web 2.0 lösningar – Mycket logik i webbläsaren (oftast JavaScript) – Delar av sidor eller endast data hämtas (XML, Objekt
eller egna format) – Flera parallella logiska flöden av data – Händelser (klient eller server) kan styra flödet
![Page 5: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/5.jpg)
Vad gör TruClient?
• Fjärrstyr en bantad webbläsare (FF/IE)
• Därmed gör en riktig webbläsare jobbet
• Spelar in händelser på objekt i webbläsaren
– Istället för kommunikationen med servern
• Tanken är
– Slippa korrelering och parametersättning av data
– Slippa koda (prestandatest för dummies)
– Enklare att spela in (klicka runt bara…)
![Page 6: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/6.jpg)
![Page 7: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/7.jpg)
Varför inte TruClient överallt?
• Fortfarande en ung teknik – Fallgropar, buggar, brist på dokumentation och
erfarenheter, brist på kunskap om webbutveckling
• Kräver mycket mer resurser på kanonerna – Vi har sett faktor på 100 ggr mer
• Svårare att felsöka och tweaka – Mindre korrelering ja, men när du måste blir det
snabbt krångligt
• Inte lika lätt att fuska… – Känns ibland mer som ett handikapp än en dröm..
![Page 8: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/8.jpg)
Funkar TruClient då?
• JA!
– Flera projekt hade inte fått prestandatester annars
– Framför allt AJAX tunga applikationer med egna format
– I kombination med vanlig Web/HTTP
• 2 Lyckade projekt 100% TruClient
– Remedy ARS Web lösning (egna format)
– GWT lösning (GWT Request / JSON Svar)
![Page 9: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/9.jpg)
Ny teknik – Nytt tänk
• Glöm HTTP, TCP, Protokoll och GET/POST
• Lär dig HTML 4/5, DOM, JavaScript och XPath
• Tänk händelser, objekt och relationer snarare än sekventiella flöden och data
• Som med all ny teknik, förbered dig för begräsningar…
![Page 10: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/10.jpg)
Utmaningar med tekniken
• Identifiera objekt och synkronisera – Det är en dynamisk värld… javascript, namnbyten, mm
• Alla dessa Mouse Overs… • Betänketider (Think Time) finns inte • Går inte att filtrera/ ta bort resurser • Firefox profilen svår att ändra (som inställningar, säkerhet) • Ogiltiga SSL cert accepteras inte • Svårt att mäta svarstider och bryta ner dem • Mindre information och loggning av vad som sker
– Svårare att felsöka när skriptet inte gör som du vill – Snapshots är bara bilder… inget mer.
![Page 11: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/11.jpg)
Mäta svarstider
• Default är Network Time – Väntar på 150 ms ”tystnad” på nätverket – Tiden kan justeras globalt (ej individuellt) – Problem vid asynkron Ajax
• Alternativet är Wait for Objekt – Gäller att hitta rätt objekt att vänta på – Kommer inkludera renderingstider / javascript
exekveringstid – Höga time out tider (default 20 sec)
• Dessutom finns en default think time mellan steg, även den global (500 ms)
![Page 12: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/12.jpg)
Parametrar
• Skapas som vanligt, samma Parameter List
• Sätts i skriptet med hjälp av JavaScript
– Finns inga knappar eller funktioner för infoga!
• Värdefält: LR.getParam("PERSONNUMMER")
• Objekt: ArgContext.LR.getParam(“DOKUMENTID”)
![Page 13: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/13.jpg)
Identifiera objekt
• 3 sätt: Automatic, XPath och JavaScript
Exempel XPath:
//input[@id=”kontoId"]
Exempel JavaScript:
document.querySelectorAll('a[title="SearchResult"]');
document.getElementById("chbx_145”);
evalXPath(“//input[@id=\”kontoId\"]”);
![Page 14: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/14.jpg)
Korrelering – enkel slump
• XPath för att identifiera ett objekt tex något i en lista
(//input[@id=\”kontoId\"])[2]
• [2] identifierar den andra raden i listan
• [0] väljer slumpmässigt
![Page 15: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/15.jpg)
Avancerad korrelering – Två steg
• Lägg till ett JavaScript steg före det steget där du behöver identifiera objektet
• Skriv JavaScript kod som hittar objektet och sparar en referens till det i en variabel (ArgContext.mittObjekt tex)
• Använd ArgContext.mittObjekt som JavaScript identifierare
![Page 16: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/16.jpg)
Avancerad korrelering - exempel
• JavaScript metoden evalXPath returnerar en array om flera matchar XPath uttrycket, flera sätt finns då:
random(minaObjekt);
minaObjekt[minaObjekt.length – 1];
minaObjekt[ArgContext.LR.getParameter(”ID”)];
![Page 17: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/17.jpg)
Tick Tock - Think Time
• Finns bara en wait function i JavaScript
• Exempel på slumpmässig TT:
![Page 18: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/18.jpg)
Loggning och skriva saker
• JavaScript
LR.Log(”Detta kommer loggas i VU loggen”)
• Gamla C-funktioner
– Läggs i C-functions.c
– Anropas med steget ”Evaluate C function”
– Egna filer, använda Attributes, VTS mm.
– Obs, kompileringsfel syns inte i VuGen!
![Page 19: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/19.jpg)
Tips på extensions (FF)
• Finns massor, prova dig fram!
• Developer Assistant
– XPath Tester
– JavaScript Console
– JavaScript Injector
• Firebug och Firefinder
– Hjälp att hitta objekt, namn, relationer
![Page 20: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/20.jpg)
Lite om resursförbrukning…
• Extremt olika från skript till skript
– Du måste benchmarka skripten!
– Överbalastad kanon = högre svarstider
• 50 VU tog cirka 3,5 GB och 60-70% CPU
• På samma maskin drar 2500 Web VU 2,5 GB och 17% CPU…
• Faktor 100x mer resurskrävande per VU
![Page 21: Prestandatest Mobilbanken 3...Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB Intro •Lite om Swedbanks Teknik](https://reader034.vdocuments.net/reader034/viewer/2022042118/5e964b6f56798825a37bf925/html5/thumbnails/21.jpg)
Demo, Frågor, Diskussion