Geen webservice? Geen probleem!

Vergelijkbare documenten
Test de REST. Testen van RESTful webservices met REST Assured. Bas Dijkstra

Continuous Testing? FITR testautomatisering! Bas Dijkstra

Session Beans.

Reality is overrated een introductie in servicevirtualisatie voor testers

Concernstaf IT-Services. GDS2 Afgifte SoapUI Server Stub. Handleiding 0.1. Hans Schreuder. Versie. Auteur(s)

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Handleiding DigiD koppeling

Selenium IDE Webdriver. Introductie

APEX en JasperReports

Maximo Tips and Tricks

Specialisatie RTES - Project FunnyScreens. Installatie en gebruik van JUnit

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

Temperatuur logger synchronisatie

OAS en het Kennisplatform API s. Dimitri van Hees

Acht stappen voor JSF

Uniforme Pensioen Aangifte (UPA)

DE 13 BELANGRIJKSTE STATUSCODES

Uitdagingen performancetesten in een Agile omgeving Best Practices & Demo

TECHNICAL DESIGN DOCUMENT

In de meeste netwerkomgevingen staan de firewalls het browsen of surfen op internet toe.

Werkomgeving. Android Studio. Android - werkomgeving 1/6

Gebruik van cryptografie voor veilige jquery/rest webapplicaties. Frans van Buul Inter Access

Thuisgebruik Fontys mail met Outlook 2003

Chris de Kok TDI 3. Vak: Software Architectuur Datum: Docent: Fons van Kesteren

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Praktijk en practices

HANDLEIDING DIENSTEN IN GIS DESKTOP

Cartalk: Simplified REST interface

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 11 juli 2017 Linux User Group Nijmegen

Reliable Messaging. Marc de Graauw

Basisregistratie Ondergrond (BRO) Testen verbinding webservices met SoapUI Booronderzoek. Datum 28 maart 2017 Status Versie 1.0

Correspondentie inzake overnemen of reproductie kunt u richten aan:

:39 1/5 FlowSteps

SIP analyse. Handleiding

TESTAUTOMATISERING IN EEN ETL-OMGEVING

Client Applicaties (Browser+Desktop) http/https. Apache Webserver. http proxy. WMS WFS Adm SLD Tomcat. Tomcat. GeoServer. PostGIS

Prowise Pro Connect 2.0 Technische documentatie

Uniforme Pensioen Aangifte (UPA)

1945, eerste DC. Eigen logo

Serverless Java met Fn

Technische aansluit documentatie Versie

Ervaringen met het opzetten van een MDD omgeving

Uniforme Pensioen Aangifte (UPA)

1. Download Belcofin BelcofinSetup uitvoeren Selecteer componenten Selectie van installatie directory...

Hoe werkt de DrayTek Firewall? Default Call en Data Filter

UWV Security SSD Instructies

Web Application Security Hacking Your Way In! Peter Schuler & Julien Rentrop

Gebruik van raadpleeg- en downloadservices in GIS desktop software

Microsoft Dynamics CRM 2011

Installatie en configuratie documentatie

Uniforme Pensioen Aangifte (UPA)

Testen in SOA-omgevingen

HDN DARTS WEB AUTHENTICATIE

Documentatie Installatie Instructie. Microsoft Outlook: RPC over HTTPS. De Dierenbescherming

Startgids: de Reeleezee-REST-API

Delft-FEWS & Web Services

Handleiding Niki API

Perrit Installatiehandleiding Hosted Exchange - Outlook 2007 Automatisch - Outlook 2007 Handmatig

WISA API Service. 5 maart WISA helpdesk

Installatie Accowin (versie 2)

Parasoft toepassingen

Toekomstbestending maken van selectie tool Rekening houdend met strikte privacy wetgeving

Performance Essentials

Een eenvoudige webserver maken in Lazarus

Technical Specification SOFORT Banking

Practicum Software & Web Security 2. Instructies voor installatie en gebuik van WebGoat en WebScarab

Installatie King Task Centre

Alfresco Document Management 100% Open Source

Introductie Performancetesten

Beschrijving OpenTunnel koppelvlak met MijnOverheid BerichtenBox

Handleiding Woonz.nl iframe

CLOUD4WI VSCG V3.0 CONFIGURATIE

BRIGHT-NET INSTALLATIE HANDLEIDING

1. Uploaden bestand. De SubID upload en download functionaliteit wordt getoond onder aan de SUBID management pagina onder merchant profiel.

Stappenplannen MailPlus SOAP API

Chapter 4. eenvoudige webserver opzetten

Inhoudsopgave. Module 2 Geavanceerde formulieren

Introductie testtooling Wink

OpenChange. Jelmer Vernooij. NLLGG-bijeenkomst 13 december OpenChange. MAPI MAPI/RPC OpenChange Huidige status Toekomst.

Datum 15 juni 2006 Versie Exchange Online. Handleiding voor gebruiker Release 1.0

Digikoppeling adapter

Ssdnbatch Applicatie: Technische Documentatie

Tools die je móét hebben voor je (gaat) testen!

Testrapport MDC WUS. Testrapport MDC WUS

Automatisch Testen. Customer Business Lunch. 6 november Netherlands Germany Switzerland Serbia

Absentie Presentie Server Migratie

Introductie Performancetesten. versie 1.1

Installatie- en gebruikshandleiding Risicoverevening. 11 april 2007 ZorgTTP

HDN POORTWACHTER WEBSERVICE KOPPELING

Instructies Windows Live Mail Pagina 1

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 17 maart 2018 Nederlandse Linux Gebruikers Groep

BROdeLuxe Opties. Skins. Peter Wester

IIS - Installatie certificaat

DE IDENTITEITSKAART EN MICROSOFT OUTLOOK

Aanleveren van te verzenden sms berichten aan SMS Via

MSHosted. Versie: 1.2

AUTHENTICATIE. Version Date Author Description Mark Hameetman Initiele document

Self-service functionaliteit

Transcriptie:

Geen webservice? Geen probleem! Webservice mocking met WireMock Bas Dijkstra www.ontestautomation.com bas@ontestautomation.com @_basdijkstra

WiFi

Wat gaan we doen? _Stubbing, mocking en servicevirtualisatie _WireMock _Aan de slag

Voorbereiding _Installatie Eclipse (of een andere IDE) _Installatie TestNG-plugin (voor Eclipse) _Installatie m2e (of tegenhanger voor andere IDE) _Importeren Maven-project in IDE _Update project (Eclipse) of tegenhanger

Problemen met testomgevingen _Systemen bestaan uit veel componenten _Onbeschikbaarheid voor testdoeleinden _ Parallel ontwikkelen _ Geen controle over testdata _ Kosten voor gebruik third party component _

Simulatie tijdens testuitvoer _Simuleren van gedrag van afhankelijkheden _Onbeschikbaarheid voor testdoeleinden _ Parallel ontwikkelen _ Geen controle over testdata _ Kosten voor gebruik third party component _

Stubbing _Vooraf gedefinieerde responses _Geen flexibiliteit _Statusverificatie

Mocking _Gedrag kan worden gedefinieerd tijdens initialisatie test _(Iets) meer flexibiliteit _Verificatie van gedrag

Servicevirtualisatie _Simuleren van gedrag van complexe afhankelijkheden _ Next level stubbing / mocking _Ondersteuning veelheid aan protocollen _Data driven

WireMock _http://wiremock.org _Java _HTTP mock server _ werkt dus alleen voor HTTP(S) _open source _ ontwikkeld en onderhouden door Tom Akehurst

WireMock configureren _JAR file toevoegen aan Java-project _Maven (invoegen screenshot met dependency) _Gradle (invoegen screenshot)

Een voorbeeldmock _Invoegen eenvoudig voorbeeld waarin veelgebruikte opties worden getoond

Handige WireMock features _Invoegen aantal features _Volledige documentatie op http://wiremock.org/docs/

WireMock standalone draaien _Starten WireMock server _ Opties: port, keystore,... _Mocks permanent beschikbaar stellen voor meerdere teams _Mocks herconfigureren via JSON _Invoegen voorbeeldcommando

WireMock starten en stoppen tijdens testuitvoer _Integratie in testuitvoer _Meeleveren mocks met testsuite in versiebeheer _Integratie met JUnit (invoegen voorbeeld) _Kan ook zonder gebruik te maken van JUnit

Demo Gebruik van WireMock in tests

Aan de slag! _WireMockExercises1 _Opzetten eenvoudige mocks _Opdrachten staan in commentaar _Controleren van werking door uitvoeren tests

Record & playback-opties _Gebruik WireMock als proxy _Opnemen request-response pairs (traffic) _Genereren mock uit deze traffic

Record & playback-opties _Gebruik WireMock als proxy _Opnemen request-response pairs (traffic) _Genereren mock uit deze traffic

Demo Gebruik van record & playback in WireMock

Voor- en nadelen van record & playback _Voordelen: _ Snel opzetten mocks _ Analyseren traffic met onbekende specificaties _Nadelen: _ Bij wijziging alles opnieuw opnemen _ Mocks zijn niet flexibel _ Mocks zijn slecht uitbreidbaar _Vergelijk met record & playback bij testautomatisering

Request matching _Bepalen welk antwoord wordt teruggestuurd op basis van specifieke eigenschappen request _Opties: _ URL _ HTTP-methode _ Query-parameters _ Headers _ Elementen in body van request _

Voorbeeld: matching op URL _Invoegen voorbeeld

Voorbeeld: matching op bodyelement _Invoegen voorbeeld

Voorbeeld: matching op bodyelement _Invoegen voorbeeld

Aan de slag! _WireMockExercises2 _Gebruik request matching _Opdrachten staan in commentaar _Controleren van werking door uitvoeren tests

Foutsimulatie _Uitbreiden van testdekking door simulatie fouten _Vaak lastig te doen in echte systemen _Eenvoudig met mocks en stubs _Testen foutafhandeling testobject

Voorbeeld: foutsimulatie door HTTP-statuscode _Invoegen voorbeeld

Voorbeeld: foutsimulatie door timeout _Invoegen voorbeeld

Voorbeeld: foutsimulatie door bad response _Invoegen voorbeeld

Aan de slag! _WireMockExercises3 _Gebruik foutsimulatie _Opdrachten staan in commentaar _Controleren van werking door uitvoeren tests

Stateful mocks _Mocks tot nu toe waren stateless _Volgorde van aanroepen methoden maakte niet uit _Dit is in de echte wereld niet altijd het geval _Request A > request B geeft ander gedrag dan request B > request A

Stateful mocks: een voorbeeld _Winkel met 2 exemplaren van een artikel in voorraad _Eerste call naar addtocart: OK _Tweede call naar addtocart: OK _Derde call naar addtocart: NOK (foutmelding, foutcode, )

Stateful mocks: een voorbeeld _Invoegen implementatie voorbeeld

Aan de slag! _WireMockExercises4 _Gebruik stateful mocks _Opdrachten staan in commentaar _Controleren van werking door uitvoeren tests

Andere nuttige features _Verificatie (is een bericht bij de mock aangekomen?) _Transformatie van responses (via extensions) _Integratie in een CI / CD pipeline _Documentatie: http://wiremock.org/docs/

Vragen

Contact _Email: bas@ontestautomation.com _Weblog: http://www.ontestautomation.com _Twitter: @_basdijkstra