I-ASOS Prednáška 4

SoapUI

SoapUI je profesionálny nástroj na testovanie webových servisov (SOAP a REST). Nekomerčná verzia je voľne dostupná na https://www.soapui.org/downloads/soapui.html

Poisťovňa, verzia 1

Na tomto príklade ilustrujeme:

  • enumeračné a dátumové typy
  • problémy so serializáciou asociácií a kompozíciou
  • testovanie servisu pomocou SOAP UI

Okrem toho je to príklad servisu, pre ktorý nie je architektúra REST vhodná: Rest klient, totiž nemá možnosť zistiť akú štruktúru by mal mať xml-dokument, ktorý očakáva POST/PUT ako vstup.

Web servis

poskytuje operáciu navrhZmluvy (navrh: Zmluva): Zmluva pričom štrukrúra zmluvy je zobrazená a UML diagrame

Predmety/I-ASOS/P4/poist1.png

a operácia navrhZmluvy na serverovej strane

  • preverí, či návrh zmluvy od klienta má zadaného majitela aj poistenca, ak niektorý údaj chýba, vyhodí metóda Exception so správou o probléme (napr. „majitel nie je zadaný!“)
  • ak sú zadaní, priradí zmluve jej číslo (zadať hocaký reťazec, napr. N123) a vráti ju naspäť klientovi.

Implementácia servisu postupom code-first

Klient pre otestovanie

  • vytvorí Zmluvu a jednu Osobu, pričom táto osoba bude v zmluve aj majitelom aj poistencom.
  • vyplní druh zmluvy
  • pošle zmluvu na server a v odpovedi zo servera overí, či majiteľ a poistenec stále tá istá osoba.
  • v prípade výnimky ju odchytí a vypíše správu.

zdrojový súbor testovacieho klienta je tu

Všimnite si

  • implementáciu enumeračného typu na serverovej strane aj vygenerovaný kód na klientskej strane
  • dátumové typy na serverovej strane aj na klientskej strane
  • v zmluve, ktorú vrátil server už nie je majiteľ a poistenec tá istá osoba.

Poisťovňa, verzia 2

Ilustruje použitie

  • sipmle type restrictions (enums a regexp)
  • rôzne dátumove xml-typy
  • XML – referencií (XSD-typov pre referencie: ID, IDREF a IDREFS)
    • sú beztypové, čo spôsobuje isté komplikácie v typových jazykoch

Upravená štrukrúra zmluvy je zobrazená a UML diagrame

Predmety/I-ASOS/P4/cv5-poist2.png

Implementácia servera postupom contract-first

Klient pre otestovanie