Testowanie usług asynchronicznych - przegląd

Do obsługi komunikacji między obiektami w usługach asynchronicznych stosowany jest wzorzec interakcji z wywołaniem zwrotnym. Usług asynchronicznych można używać na przykład w systemach publikowania-subskrypcji, które są udostępniane przez dostawców oprogramowania pośredniego zorientowanego na komunikaty, lub w domenach zarządzania systemami i urządzeniami.

Usługi WS-Notification

Standard usług asynchronicznych jest opisany w specyfikacjach WS-Notification:

Usługi WWW i usługi XML, które implementują specyfikację WS-Notification, można testować, tworząc żądanie asynchroniczne w teście. Żądanie asynchroniczne zawiera interfejsy związane z odpowiednią specyfikacją WS-Notification oraz strukturę wywołania zwrotnego.

Prawnie zastrzeżone usługi asynchroniczne

Istnieje możliwość testowania prawnie zastrzeżonych usług asynchronicznych, które nie implementują specyfikacji WS-Notification. Aby przetestować te usługi, należy ręcznie utworzyć żądanie usługi, które zawiera interfejsy danej usługi, a następnie dodać do żądania strukturę asynchronicznego wywołania zwrotnego.

Dane XML żądania asynchronicznego muszą zawierać punkt końcowy, który określa adres URL odbiorcy wywołania zwrotnego. Podczas testu ten punkt końcowy jest używany do przekierowywania wywołania zwrotnego do testera zamiast rzeczywistego odbiorcy.

Struktura wywołania zwrotnego

Aby przetestować usługę asynchroniczną, należy utworzyć strukturę żądania asynchronicznego w teście w sposób pokazany na poniższym diagramie:

Przykład struktury żądania asynchronicznego
Żądanie usługi WWW lub zwykłe żądanie XML udostępnia działanie subskrypcji i zawiera element wywołania zwrotnego, który opisuje zachowanie testu w trzech stanach:
  • Równolegle zawiera elementy testu, które są uruchamiane po żądaniu subskrypcji i podczas oczekiwania na odpowiedź na powiadomienie.
  • Odbiór zawiera elementy testu, które są uruchamiane po odebraniu z usługi odpowiedzi na powiadomienie.
  • Limit czasu zawiera elementy testu, które są uruchamiane, jeśli odpowiedź na powiadomienie nie zostanie odebrana po czasie opóźnienia określonym w elemencie wywołania zwrotnego.

Gdy wszystkie składniki zawarte w elementach równoległym, odbioru i limitu czasu zakończą działanie, wykonywanie będzie kontynuowane od następnego elementu w teście po żądaniu asynchronicznym.

Metoda generowania struktury asynchronicznego wywołania zwrotnego w teście zależy od tego, czy usługa asynchroniczna wykorzystuje specyfikację WS-Notification:
  • Usługi WS-Notification: należy utworzyć żądanie asynchroniczne w teście.
  • Usługi prawnie zastrzeżone: należy ręcznie utworzyć w teście żądanie usługi WWW lub żądanie XML, a następnie dodać do żądania strukturę asynchronicznego wywołania zwrotnego.

Opinia