Reality is overrated een introductie in servicevirtualisatie voor testers
TestNet Summer School 2014
Programma
Introductie
Wat is servicevirtualisatie en wat kun je ermee?
Parasoft Virtualize
Aan de slag!
Hello World – een eerste virtual asset Een virtuele webservice – aanvragen van een lening Deployen en monitoren Parametriseren
Case studies uit de praktijk
Bas Dijkstra
Testconsultant bij Oelan sinds 2009
Gespecialiseerd in
Geautomatiseerd testen Servicevirtualisatie
Docent voor diverse opleidingen
Voornamelijk tooltrainingen voor Parasoft-producten
Technische Informatica, Universiteit Twente
[email protected]
Programma
Introductie
Wat is servicevirtualisatie en wat kun je ermee?
Parasoft Virtualize
Aan de slag!
Hello World – een eerste virtual asset Een virtuele webservice – aanvragen van een lening Deployen en monitoren Parametriseren
Case studies uit de praktijk
Servicevirtualisatie (SV) – de aanleiding
Steeds complexere en van elkaar afhankelijke systemen hebben grote invloed op het ontwikkel- en testproces en de kosten die daarmee gepaard gaan
Steeds kortere releaseperiodes en ontwikkelingen als Agile / Scrum en DevOps vereisen de beschikbaarheid van kwalitatief goede testomgevingen, maar deze zijn:
Niet altijd beschikbaar
Niet voorzien van relevante of representatieve testdata
Te duur of te complex (mainframes, ERP-systemen)
Resultaat: opzet en beheer van testomgevingen is kostbaar en tijdrovend
SV – wat is dat eigenlijk?
Simuleren van het gewenste gedrag van een resource die nodig is voor het uitvoeren van tests
Niet per se nodig om de volledige resource te simuleren
Gericht op het wegnemen van traditionele beperkingen met betrekking tot de beschikbaarheid van systemen en omgevingen
Complementair aan traditionele virtualisatie
Besturingssystemen Hardware
SV is begonnen met simulatie van webservices, maar moderne SVoplossingen kunnen meer dan dat alleen
Voorbeeld: databasetransacties
SV – fasering Het implementeren van SV gebeurt normaal gesproken in drie fasen: 1. Opvangen of modelleren van het gedrag van een systeem 2. Opzetten van virtual assets die dit gedrag simuleren 3. Beschikbaar stellen van virtual assets aan de doelgroep Testers, ontwikkelaars, …
SV fase 1 – opvangen/modelleren gedrag
SV-tool kan worden gebruikt als proxy, wanneer het te simuleren systeem al bestaat
Berichtenverkeer tussen het testobject en het te simuleren systeem wordt opgevangen en opgeslagen
Deze berichten worden vervolgens gebruikt om virtual assets te genereren
Als alternatief kunnen virtual assets ook gegenereerd worden uit bestaande logbestanden
Voordeel: het berichtenverkeer hoeft niet ‘live’ te worden afgeluisterd
SV fase 1 – opvangen/modelleren gedrag
Bij nog niet bestaande systemen moet het gedrag worden gemodelleerd
Virtual assets kunnen bijvoorbeeld worden gegenereerd uit WSDLspecificaties
Met behulp van reeds aanwezige testdata kan het gedrag van de gegenereerde virtual assets ook snel worden gemodelleerd
Als deze niet voorhanden zijn kun je altijd handmatig het gewenste gedrag modelleren
De meeste SV-tools ondersteunen diverse berichtformaten
XML, JSON, …
En diverse transportprotocollen
HTTP, MQ, JMS, …
SV fase 2 – configureren virtual assets
Virtual assets kunnen worden gegenereerd uit opgevangen berichtenverkeer of handmatig worden opgezet
Vervolgens kan het gedrag verder worden verfijnd
Vullen van antwoordberichten waar dit nog niet is gebeurd Toevoegen van testdata Bepalen welke virtual asset en welke responder op welk moment moet worden aangesproken Opzetten van performanceprofielen
SV fase 3 – beschikbaar stellen
Wanneer het gedrag van de virtual assets is gemodelleerd kunnen deze in gebruik worden genomen
Ook in de productiefase kunnen in de meeste SV-tools eenvoudig wijzigingen in de virtual assets worden aangebracht
Wijzigingen in de structuur van antwoordberichten Wijzigingen in de teruggegeven testdata
Testobject en andere afhankelijke systemen configureren om met virtual asset te communiceren
Programma
Introductie
Wat is servicevirtualisatie en wat kun je ermee?
Parasoft Virtualize
Aan de slag!
Hello World – een eerste virtual asset Een virtuele webservice – aanvragen van een lening Deployen en monitoren Parametriseren
Case studies uit de praktijk
Parasoft Virtualize
Servicevirtualisatie-oplossing van Parasoft
Gebaseerd op Eclipse
Virtualize is zowel de development- als de runtime-omgeving
Virtual assets kunnen worden opgezet en geconfigureerd, en met een druk op de knop in gebruik worden genomen
Features:
Opzetten van virtual assets op basis van opgenomen berichtenverkeer of interfacespecificaties (WSDL, XSD, voorbeeldberichten, …) Gebruik van Data Sources voor het intelligent vullen van antwoordberichten Gebruik van Data Repositories voor opzetten en beheren van grote, hierarchische datasets
Ondersteuning voor HTTP / MQ / JMS / …
Dynamisch configureren van testomgevingen met Environment Manager
Programma
Introductie
Wat is servicevirtualisatie en wat kun je ermee?
Parasoft Virtualize
Aan de slag!
Hello World – een eerste virtual asset Een virtuele webservice – aanvragen van een lening Deployen en monitoren Parametriseren
Case studies uit de praktijk
Hello World – een eerste virtual asset
Demonstratie van de werking en de belangrijkste onderdelen van Virtualize
Programma
Introductie
Wat is servicevirtualisatie en wat kun je ermee?
Parasoft Virtualize
Aan de slag!
Hello World – een eerste virtual asset Een virtuele webservice – aanvragen van een lening Deployen en monitoren Parametriseren
Case studies uit de praktijk
Virtual assets
Simulatie van een applicatie of service
Bevat een of meer responders
Een responder is verantwoordelijk voor het afhandelen van een specifiek bericht
Virtual assets kunnen opgezet worden op basis van
Eerder opgenomen berichtenverkeer Interface- of berichtspecificaties (WSDL, XSD, voorbeeld-XML)
Opnemen van berichtenverkeer
Opzetten van een proxy tussen te testen systeem en te simuleren externe applicatie
Opnemen van het verkeer met behulp van de proxy
Genereren van virtual assets op basis van het opgenomen verkeer
Op basis van een servicedefinitie (WSDL)
Maak een nieuw leeg project aan
Voeg een Responder Suite toe op basis van WSDL
Add Responder Suite > SOA > WSDL
Voor elk antwoordbericht in de service wordt een responder aangemaakt
Structuur van het antwoordbericht wordt opgezet op basis van berichtspecificaties
Alleen verplichte velden worden aangemaakt
Respondercorrelatie (welke responder reageert op welk bericht) wordt automatisch geconfigureerd
Op basis van in WSDL gedefinieerde soapactions of het rootelement van het vraagbericht
Vullen van antwoordberichten
Elementen in het antwoordbericht kunnen op diverse manieren worden gevuld
Parameterized waarden kunnen gevuld worden met waarden uit
Fixed – het element heeft altijd dezelfde waarde Parameterized – het element heeft een variabele waarde Scripted – het element wordt gevuld met het resultaat van een script (Jython, Java, etc.)
Een XML Data Bank – hiermee kunnen waarden uit het vraagbericht worden overgenomen in het antwoordbericht Een Data Source
Endpoints hoeven niet te worden geconfigureerd
Virtualize is reactief en beantwoordt berichten binnen dezelfde HTTP-sessie
Parabank en de LoanProcessor-service
Bij Virtualize meegeleverde demo-applicatie
database
LoanProcessor webservice Parabank
Deze service gaan we virtualiseren
Opdracht 1
Maak een nieuw project aan in Virtualize
Genereer responders op basis van de WSDL voor de LoanProcessor in Parabank
Kijk hoe de Responder Correlation wordt ingesteld door Virtualize
Zorg ervoor dat de requestLoan-responder altijd het volgende antwoord geeft:
Je hoeft hier niets in te wijzigen, maar begrijp hoe het werkt
Approved = true Provider = Virtualize Loan Provider (VLP)
In de volgende opdracht gaan we deze virtuele responder aanspreken en testen
Programma
Introductie
Wat is servicevirtualisatie en wat kun je ermee?
Parasoft Virtualize
Aan de slag!
Hello World – een eerste virtual asset Een virtuele webservice – aanvragen van een lening Deployen en monitoren Parametriseren
Case studies uit de praktijk
Deployen van virtual assets
Als de virtual assets zijn opgezet kunnen ze worden toegevoegd aan de Virtualize Server (Tomcat)
Hierbij kan ook het endpoint van de virtual asset worden geconfigureerd
Deze kan later ook worden gewijzigd door de virtual asset weer te openen vanuit de Virtualize Server-view
Een eenmaal toegevoegde virtual asset wordt automatisch opnieuw gedeployed bij elke opgeslagen wijziging
Virtual assets in de map VirtualAssets worden automatisch gedeployed en bijgewerkt
Monitoren van virtual assets
Binnenkomende en uitgaande berichten kunnen worden gemonitord in Virtualize
Per virtual asset moet monitoring worden ingeschakeld
Binnenkomende en uitgaande berichten, evenals foutmeldingen, zijn zichtbaar in het Parasoft Event Details perspective
Opdracht 2
Deploy de virtual asset van opdracht 1 op de Virtualize Server
Start de server
Schakel monitoring in voor de virtual asset
Configureer Parabank zodat deze met de virtual asset communiceert en vraag een lening aan in Parabank
Vul endpoint van de virtual asset in en zet LoanProvider om van JMS naar Web Service
Bekijk het resultaat in de Event Viewer in Virtualize
Programma
Introductie
Wat is servicevirtualisatie en wat kun je ermee?
Parasoft Virtualize
Aan de slag!
Hello World – een eerste virtual asset Een virtuele webservice – aanvragen van een lening Deployen en monitoren Parametriseren
Case studies uit de praktijk
Parametriseren van waarden
Waarden van element in de antwoordberichten kunnen ook worden geparametriseerd
Op deze manier kan de virtual asset realistischer gedrag simuleren
Parametriseren van waarden
Koppel een Data Source aan de Responder Suite
Stel Data Source Correlation in
Welk veld in het vraagbericht correspondeert met welke kolom in de Data Source?
Vul de Data Source met de gewenste responsdata
Parametriseer de overige velden van het antwoordbericht met behulp van de kolommen in de Data Source
Het is ook mogelijk om optionele velden helemaal niet in het antwoordbericht op te nemen voor bepaalde regels in de Data Source
Voorbeeld: sommige klanten in een virtual asset hebben een geregistreerd mobiel telefoonnummer, anderen niet
Opdracht 3
Voeg een Table Data Source toe aan de Responder Suite
Vul deze met de volgende waarden:
Configureer Data Source Correlation voor de requestLoan-responder op basis van de loanAmount-kolom
Test het aanvragen van leningen met de LoanProcessor voor diverse waarden in de Table Data Source
Wat gebeurt er als je een niet bestaande waarde opgeeft?
Uitbreiding: exclude on empty value (message)
Programma
Introductie
Wat is servicevirtualisatie en wat kun je ermee?
Parasoft Virtualize
Aan de slag!
Hello World – een eerste virtual asset Een virtuele webservice – aanvragen van een lening Deployen en monitoren Parametriseren
Case studies uit de praktijk
Meer functies van Virtualize
De tot nu toe gepresenteerde functies geven je de mogelijkheid om gemiddeld complex gedrag te kunnen simuleren met virtual assets
Virtualize biedt nog veel meer mogelijkheden om nog complexer gedrag te kunnen simuleren:
Scripting van elementwaarden (bijvoorbeeld genereren van een random nummer of de huidige datum/tijd) Simulatie van asynchrone responses (via scripting) Persistent opslaan en hergebruiken van aangeleverde gegevens (via scripting)
Simulatie van andere transportprotocollen (JMS, MQ, …)
…
Data Repository
De Data Repository maakt het mogelijk om in Virtualize met grote en hiërarchische datasets te werken
Data in Data Repositories kan worden geïmporteerd en geëxporteerd, maar ook handmatig worden bewerkt
Data wordt beschikbaar gesteld via een Data Repository Server, welke onafhankelijk van Virtualize kan draaien
Andere tools, zoals Parasoft SOAtest, kunnen van dezelfde Data Repositories gebruik maken
Environment Manager
Module voor het snel kunnen configureren van testomgevingen met behulp van bestaande virtual assets
Per component kunnen een aantal instellingen worden aangepast
EM heeft een eigen, web-based user interface
Endpoint (welk asset antwoordt op vraagberichten?) Performanceprofielen Gebruikte datasets
Testers hoeven dus niet per se toegang te hebben tot de Virtualizeinstallatie
EM vereist ook een aparte licentie
Environment Manager
Performanceprofielen
Bieden controle over de performance van virtual assets
Maken virtual assets geschikt voor gebruik in performancetests
Realistische simulatie van performancegedrag te simuleren systeem
De Virtualize API
Virtualize heeft zelf ook een SOAP API, waarmee diverse acties kunnen worden uitgevoerd
(Re-)deployen van virtual assets en proxies Starten en stoppen van opnemen verkeer door proxies Ophalen en wijzigen van instellingen van de virtual assets en proxies
Praktische toepassing: schakelen tussen verschillende virtual assets voorafgaand aan en na afloop van geautomatiseerde test in SOAtest
Geautomatiseerde test gebruik virtual asset A, testers gebruiken virtual asset B (met een ander gedrag)
De Virtualize API
Programma
Introductie
Wat is servicevirtualisatie en wat kun je ermee?
Parasoft Virtualize
Aan de slag!
Hello World – een eerste virtual asset Een virtuele webservice – aanvragen van een lening Deployen en monitoren Parametriseren
Case studies uit de praktijk
Onderwijs
Organisatie faciliteert met haar testomgevingen ketentest voor onderwijsinstellingen en leveranciers van studentinformatiesystemen
Servicevirtualisatie gebruikt om beperkt beschikbare testomgeving bij overheidsinstantie te simuleren
Voor ketentest is deze omgeving noodzakelijk (anders kunnen berichtstromen niet worden getest)
Met behulp van Virtualize kan deze ketentest op alle testomgevingen worden uitgevoerd
Echte testomgeving overheid, of Virtuele testomgeving in Virtualize
Telecom
Primaire applicatie is een ordermanager met een afhankelijkheid van een extern systeem
Elke order moet in dit externe systeem handmatig worden geconfigureerd om order te kunnen voltooien en voor testdoeleinden geschikt te maken
Doorlooptijd kan soms wel twee weken zijn
Met gevirtualiseerd extern systeem is dit teruggebracht tot ongeveer een minuut
Veel meer en veel vaker testen mogelijk
Zonder SV was geautomatiseerd regressietesten en testen in Agile sprints van twee weken niet mogelijk geweest
Meer informatie
Meer vragen over servicevirtualisatie en/of Parasoft Virtualize?
Email:
[email protected]
www.oelan.nl (dienstverlening op het gebied van geautomatiseerd testen en servicevirtualisatie)
www.parasoft.com/service-virtualization (productsite Parasoft Virtualize)