Ajax TruClient. Erfarenheter, tips och trix från Swedbank IT. Christian Gerdes Performance Engineer, LIGHTS IN LINE AB



Relevanta dokument
JAVASCRIPT-POWERED LOADRUNNER CHRISTIAN GERDES PERFORMANCE ENGINEER LIGHTS IN LINE AB

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

En snabb titt på XML LEKTION 6

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

Övervakning med GnilronEye

Flytt av e-post till OCS

Lära känna skrivbordet

Modul 8 Hantering av indata

Program för skrivarhantering

E12 "Evil is going on"

1 Översikt. 1.1 Koncept 1 (19) Tomas Rook Dokument typ Rev. Manual

Inspektion Användarmanuel

TDP013. Webbprogrammering och interaktivitet. AJAX, CORS & jquery. Marcus Bendtsen Institutionen för Datavetenskap (IDA)

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

LABORATIONSRAPPORT Säkerhet och Sårbarhet Laboration 1 Brandväggar

Laboration 1 XML, XPath, XSLT och JSON

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Elisabeth Bejefalk IT-Assistent Avesta kommun

För sökande: Vanliga frågor om e-tjänsten 4/2011

Instruktion Kemikalieförteckning

Information och manual Green Cargo Terminalhantering Enhetslaster

Digital Display VDS / Bus2

Valet 2010 på facebook!

Övningar Dag 2 En första klass

Piff och Puffs Chatsystem

Valet 2010 på facebook!

Java och Javascript. Krishna Tateneni Översättare: Stefan Asserhäll

Grupphantering i Blackboard

Användarhandledning Rapportgenerator Version: 1.1

Installationsanvisningar

Åtkomst och användarhandledning

JAVASCRIPT. Beteende

edwise Uppdateringsinformation vecka 04

Driftdokumentation. Procapita Vård och Omsorg Inkomsthantering. Version

PHP. Dynamiska webbsidor

TDP013 Node.js, JSCoverage, Mocha. Marcus Bendtsen Institutionen för Datavetenskap

Onlineanmälan med Ophardt Online

Nibe xx45 Viewer. Ett program för visualisering av Nibes loggar WebIQ:s Energibutiken

Detta avsnitt berör de register som är kopplade till Näsgårds TID modul. Denna modul är en tilläggsmodul

Laboration 2: Ett kommunikationssystem

Att komma igång med FirstClass (FC)!

Ansökan Du ansöker om plats på Via webbplatsen får du också erbjudande om plats.

INTRODUKTION TILL ANGULAR JS

Att använda pekare i. C-kod

Slutrapport YUNSIT.se Portfolio/blogg

Fönsterhanterare i JavaScript PWD, Personal Web Desktop

B2C för Svensk Elitfotboll Urval

Forskarstuderande. 1. Inloggning

Manual för Typo3 version 4.04

Seriehantering. [En enkel guide för hur du som serieadministratör använder SVEMO TA.]

Din guide till. Hogia Webbrapporter. Ett tillval som hjälper dig arbeta effektivare

FileCentral Desktop. Användarhandledning Version

Dynamiska webbsystem. Ajax

Manual för externa sökande

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Tentamen i Realtidsprogrammering

Introduk+on +ll programmering i JavaScript

Lathund Web Help Desk

1 Skapa Tabell Skapa Relationer Redigera Relationer Redigera Fält i Tabell Lägga till Poster i Tabell...

Komma igång med Eventor

Tentamen TEN1 HI

Projektspecifikation för Cv på webben

Ge ditt supportärende en flygande start. Tips och fallgropar.

Manual. Logga in. OBS! Kontrollera så att korrekt epostadress finns ifyllt. Ändra inga andra uppgifter!

Så får du maximal nytta av Evernote

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Net id OEM Användarhandbok för Windows

EnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass

Referensarkitektur: T-boken, RIV-TA och tjänstekontrakt Referensimplementationen av T-boken: SKLTP

Manual Introduktionskurs SiteVision

Manual. Viktigt! Det är också viktigt att beskrivningen av objektet är så utförligt och beskrivande som möjligt.

Om du vill hitta tillbaka till din sektion klicka på fliken i huvudmenyn som heter organisation.

Data visualization on Android

Självbetjäning för arbetsgivare. Användarhandledning Arbetsgivartjänsten Lämna uppgifter

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Labbrapport: HTML och CSS

Slutrapport för JMDB.COM. Johan Wibjer

Projekt i Nätverksprogrammering. MegaNet Handledare: Pierre Nugues

SVEMO TA - REGISTRATOR

Användarmanual konsult

Post Mortem för Get The Treasure!

TimeLox TL23. Användarguide. ASSA ABLOY, the global leader in door opening solutions.

Användarinstruktioner Ofelia Återrapportering

Välkommen till kommunens Lärportal. - Användarhanledning till dig som vårdnadshavare

Handledning Miljömanualen på webben

Inledning. Att bli medlem

Handledning för redigering av lagsidor.

Modemprogrammering med PL7

Dina surfvanor kartläggs och lämnas ut

PROGRAMMERING A VC# 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL C#

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

SCHOLA COMAI ELEV WEBBKALENDER / SCHEMA VERSION 1.1. [Skriv text]

Services + REST och OAuth

1ME323 Webbteknik 3 Lek0on 6 API. Rune Körnefors. Medieteknik Rune Körnefors rune.kornefors@lnu.se

Webbtjänster med API er

Gesäll provet Internetprogrammering I. Författare: Henrik Fridström. Personnummer: Skola: DSV

Mail för attest. Skickas ett mail till den som skapade och till den som attesterade rapporten om felet, åtgärda felet för ett nytt inrapportering

Hjälp vid användning av Geodataportalen

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Parterna i BYN BYGG MASKIN

Transkript:

Ajax TruClient Erfarenheter, tips och trix från Swedbank IT Christian Gerdes Performance Engineer, LIGHTS IN LINE AB

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

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

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

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 )

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..

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)

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

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.

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)

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 )

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\"] );

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

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

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 )];

Tick Tock - Think Time Finns bara en wait function i JavaScript Exempel på slumpmässig TT:

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!

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

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

Demo, Frågor, Diskussion

Tack för mig! Christian.Gerdes@lightsinline.se