Testing

Tworzenie zewnętrznej klasy do testów SoapUI

Grudzień 8, 2015 0
Podziel się:

SoapUI jest to oprogramowanie do testowania aplikacji posługujących się protokołem SOAP (Simple Object Acces Protocol) polegającej na wymianie informacji między aplikacjami za pomocą WebService’ów komunikujących się poprzez komunikaty w formacie XML.

Od tego artykułu przez kilka następnych chciałbym zaprezentować proces tworzenia i wykorzystywania zewnętrznej biblioteki Java w projektach z wykorzystaniem narzędzia SoapUI.

Dzisiejszy wpis będzie omawiać następujące tematy:

  • Tworzenie projektu java z biblioteką umożliwiającą wykonywanie operacji na testach SoapUI
  • Tworzenie klasy generującej przykładowe dane do testów
  • Wczytanie zewnętrznej biblioteki java do SoapUI
  • Przykładowe wykorzystanie wcześniej napisanej klasy

W kolejnych wpisach będę starał się rozwinąć temat, tak aby użytkownik wiedział co dzięki takiemu rozwiązaniu jest w stanie uzyskać. Wpisy są skierowane głównie do osób z co najmniej podstawową znajomością narzędzia SoapUI oraz z dobrą znajomością Javy 1.6+.

Środowisko z którego korzystam to: Eclipse Mars 4.5.1, SoapUI 5.2.1 oraz JavaSE 1.7.

Interfejsy wykorzystywane w SoapUI podczas cyklu wpisów są napisane przeze mnie i nie są dostępne dla użytkowników zewnętrznych, stąd polecam skorzystać a przykładowych interfejsów dostępnych w internecie.

Na początek stwórzmy projekt Java:

p1

Teraz do projektu załączamy biblioteki które umożliwią nam operowanie na elementach SoapUI:

Klikamy drugim klawiszem na projekt -> BuildPath – > Configure BuildPath…

A następnie przechodzimy do zakładki Libraries:

p2

Naciskamy „Add External Jars…” i wybieramy ścieżkę „{SoapUI_Install_Folder}/Bin” i wskazujemy na bibliotekę o nazwie „SoapUI{versja }.jar” i załączamy ja do projektu.

W moim interfejsie mam metodę zarejestruj, dodaje ona do bazy danych użytkownika z określonymi przeze mnie danymi gdzie login oraz email muszą być unikatowe i chciałbym, aby te dwie wartości zmieniały się w danych testowych, a konkretniej w CustomProperties mojego Test Case’a przy każdym wywołaniu testu:

p3

Dodałem zatem krok groovy script, tak jak na załączonym screenie:

p4

Zwróćcie proszę uwagę na to, co wskazuje druga strzałka „Script is invoked with log, context and testRunner variables” te 3 zmienne odpowiadają za możliwość operowania Soapem z poziomu groovy scriptu i będą nam niezbędne podczas używania klasy zewnętrznej.

Teraz możemy utworzyć klasę java, która będzie nam generować odpowiednie dane. Napiszę w niej 2 metody, które będą odpowiedzialne za generowanie adresu email oraz loginu:

p5

Powyższa klasa, tak jak napisałem wcześniej, ma dwie metody i kontruktor przyjmujący „MockTestRunner” ze względu na to że takiego właśnie typu jest testRunner znajdujący się w Groovy Script Test Step.

Za jego pomocą, jak widać w oznaczonych liniach, dostałem się do przypadku testowego i zedytowałem pola „email” oraz „Login”.

Aby użyć ww. klasy jako zewnętrznej biblioteki, należy wyexportować nasz projekt do jara:

Drugi klawisz myszy na projekt -> export -> java -> Jar File, dodajemy nazwę i wybieramy miejsce docelowe dla zapisu.

Tak przygotowaną bibliotekę, dodajemy do katalogu: „{SoapUI_Install_Folder}/bin/ext” i restartujemy soapUI’a ponieważ zaczytuje on biblioteki zewnętrzne tylko podczas startu.

Teraz z biblioteki możemy korzystać w następujący sposób:

p6

W następnym artykule rozwinę naszą bibliotekę i pokażę jakie dodatkowe korzyści daje załączenie jej do swojego projektu.

5 / 5
Kategorie: Testing
Tomasz Kaczyński
Autor: Tomasz Kaczyński
Pracuję jako Programista / Architekt w firmie Sii. Obecnie zajmuję się projektowaniem rozwiązań testowych oraz aplikacji do testów automatycznych, programuję w języku Java. Wcześniej pracowałem dla dużej polskiej firmy w projekcie typu Health Care. Pracowałem tam 3 lata, rok jako programista odpowiedzialny za jeden z podsystemów backend, wsparcie przy integracji oraz tworzeniu frontend, a także 2 lata jako test developer. Tworzyłem zewnętrzne klasy dla wsparcia testów SoapUI, byłem odpowiedzialny za testy podsystemów backend oraz pisałem framework w selenium dla systemów frontend. Prywatnie trenuję freestyle slalom, gram w siatkówkę, czytam książki - nie tylko fabularne ;). Lubię rozwijać swoje zainteresowania.

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

Zostaw komentarz