Performance Essentials Roland van Leusden & Robbie van der Meer Wie zijn wij? TestNet Summer Workshop 2017 1
Inzicht krijgen in: Agenda» Waarom performancetesten» Performancetest traject» Performancetest tool selectie» Performance testen in verschillende projectaanpakken Hands-on met Jmeter Performance TestNet Summer Workshop 2017 2
Performance Waarom performance testen? Release readiness Ondervangen van Risico s:» Continuïteit» Reputatie Omgevingsstabiliteit» Servers» Infrastructuur» Toekomstvastheid Software kwaliteit» Efficiëntie» Vergelijking TestNet Summer Workshop 2017 3
Acceptatie Criteria Wanneer is de performance goed? Gebruikers:» Gevoelsmatige performance» Responsetijden (subjectief)» Max. aantal gebruikers? IT:» Server gebruik / belasting» Infrastructuur gebruik / belasting Bouw» Hoe efficiënt is mijn code?» Waar zitten de problemen? Architecten» Hoe stabiel en betrouwbaar is de applicatie» Hoe betrouwbaar zijn de resultaten? Performance Test proces Bepalen risico s (Performance Risico Analyse) Performance test plan Infrastructuur Monitoring Infrastructuur Toolselectie en Installatie Load- en iteratiemodel Meetplan / monitoring Maken Performance test Uitvoeren test & Rapportage TestNet Summer Workshop 2017 4
Soort performance test Performancetest tool selectie TestNet Summer Workshop 2017 5
Test tool Selectie Functioneel & Technisch Ondersteunde protocollen Web, SAP, Citrix, Siebel Script opname Scripting Java, C, VBasic Automatische correlatie Dynamische server responses Parametrisering Excel, SQL, Access Monitoring Rstatd, Perfmon Rapportage HTML, XML, CSV Support Organisatie Doel Stakeholders Licentiekosten Controllers Monitors Virtual Users Project / Organisatie breed Competenties Interne of externe medewerkers Businesscase Tool kalibratie Gedrag van de applicatie in beeld brengen: Op client niveau Op netwerk niveau Op server niveau Client Netwerk Server TestNet Summer Workshop 2017 6
Performance Testen & project aanpak Waterval Agile Continuous Integration (CI) DevOps Waterval TestNet Summer Workshop 2017 7
Agile Agile Backlog refinement TestNet Summer Workshop 2017 8
Continuous Integration DevOps TestNet Summer Workshop 2017 9
Vragen? TestNet Summer Workshop 2017 10
Hands-on Agenda Hands-on Wat is een Proxy Server Post & Get requests USB Stick Praegus Testomgeving Opnemen scripts Jmeter vs Browser TestNet Summer Workshop 2017 11
Wat is een Proxy Server? Test Script Proxy Server Get en Post Requests TestNet Summer Workshop 2017 12
USB Stick Start Jmeterop door in de folder Jmeter\bin op jmeterw te klikken. Praegus Testomgeving IP:192.168.0.100 PRAEGUS_TESTENV Performance TestNet Summer Workshop 2017 13
Jmeter introductie Voeg een Thread Group toe, via rechts klikken op TestPlan HTTP Test Script Recorder Voeg een HTTP Test Script Recorder toe door rechts te klikken op WorkBench Onder WorkBench vinden we nu de Test Script Recorder De proxy poort staat standaard ingesteld op 8888 TestNet Summer Workshop 2017 14
Browser & Proxy Om het browser verkeer te kunnen opnemen moeten we dit routeren via de Jmeter proxy Instellingen voor de internetverbinding weergeven Klik op Start en klik vervolgens op Internet Explorer. Klik op Internetoptiesin het menu Extra en klik vervolgens op de tab Verbindingen. Klik op LAN-instellingenom de netwerk instellingen te wijzigen Opnemen met de Test Script Recorder Start de Test Scrip Recorder TestNet Summer Workshop 2017 15
Scripts opnemen Zoek naar Mary In mandje Zoek naar Mouse In mandje Ga naar Hardware Ga naar Printers In mandje Hewlett Packard Laserjet 1100i Oplossing: Voeg een filter toe. TestNet Summer Workshop 2017 16
Script Validatie Draai het script, hoeveel producten verwacht je in de shopping cart? Oplossing: voeg een Cookie manager toe Alleen het laatst toegevoegde product zit in de cart?! Er word een cookie gebruikt! TestNet Summer Workshop 2017 17
Sign In Script de Login met de Test Script Recorder. Kun je met Jmeter inloggen? Kijkwat er gebeurt met F12 in de browser alsje inlogd. /login.php?action=process formid:76ab9d7dbc020199aa3816e3333403b0 email_address:test@tester.com password:teststraat01 Correlatie (1) Request 1 Response 1 (bevat dynamische server waarde) vb: ordernummer = 5078 Request 2 (waarde van recording) vb: ordernummer = 5023 Response 2 Error TestNet Summer Workshop 2017 18
Correlatie (2) Request 1 Response 1 (bevat dynamische server waarde) vb: ordernummer = 5078 Request 2 (waarde van server uit Response 1) vb: ordernummer = 5078 Response 2 GET /login.php RegEx Waar komt het formid vandaan? TestNet Summer Workshop 2017 19
http://jmeter.apache.org/usermanual/regular_expressions.html http://www.regular-expressions.info/reference.html Voeg een Regular Expression Extractor toe aan Login TestNet Summer Workshop 2017 20
Voeg aan de Thread Group een Debug Sampler toe Draai het script met 1 gebruiker 1 keer In de View Results Tree staat nu de Debug Sampler Voeg de parameter formid_g1 toe aan het request Valideer dat de login goed gaat nu TestNet Summer Workshop 2017 21
Maak de rest van het script af zodat je een bestelling kunt plaatsen. Terugblik TestNet Summer Workshop 2017 22