2012-10-17 4 views
7

Tworzę testowy test dla API REST w soapUI 4.5, gdzie zamierzam użyć zawartości z kroku X, aby wykonać nowe połączenie w kroku Y.Jak mogę dodać parametry do adresu URL jako część ścieżki w żądaniu REST interfejsu SOAP?

Idealnie byłoby utworzyć żądanie REST z niektóre parametry, powiedzmy a i B, i powiedzieć, że parametry te powinny być wykorzystywane w adresie URL: http://myapi.com/v1/stuff/A/B

Potem robię krok do zakupu nieruchomości i po prostu ustawić wartości wyodrębnione od punktu X na a i B.

Wygląda na to, że funkcja soapUI pozwala tylko tworzyć parametry o następujących parametrach: http://myapi.com/v1/stuff?ParamA=A&ParamB=B

To działa oczywiście, ale chciałbym móc wywołać to w obie strony, aby sprawdzić, czy oba działają.

Czy brakuje mi czegoś?

Odpowiedz

11

Nie jestem ekspertem od soapui, ale właśnie opracowałem bardzo podobny scenariusz, więc to może ci pomóc.

Część 1: Tworzenie paramatized zasób
W mojej służby, mam zasób nazywa rzeczy:

http://{host}/stuff 

utworzyć zasób dziecka z poniższych wartości:

 
    Resource Name: Get stuff by ID 
    Resource Path/Endpoint: {stuffId} 

i przed kliknięciem ok, kliknij Wyodrębnij parametry - to zapełni tabelę parametrów wpisami takimi jak:

 
    Name  | Default value | Style  | Location 
    stuffId | stuffId  | TEMPLATE | RESOURCE 

następnie kliknij OK. Teraz masz zasób, który pozwala dynamicznie dostarczyć ID:

http://{host}/stuff/{id} 

będzie trzeba powtórzyć, aby utworzyć parametr B powyżej (lub można utworzyć i B dwóch parametrów do pojedynczego zasobu jeśli nigdy nie wywołuj/stuff/A bez dostarczania B).

Część 2: Utwórz przypadek testowy
Teraz w przypadku testu, trzeba pobrać, przeniesienie własności, a następnie wysłać wniosek do powyższego zasobu za pomocą właściwości:

  1. W przypadku testowym utwórz żądanie pobrania odpowiedzi zawierającej A
  2. Kliknij prawym przyciskiem myszy na teczkę i dodaj krok Właściwości. Dodaj właściwość do przechowywania wartości A.
  3. Z odpowiedzi w widoku schematu kliknij prawym przyciskiem myszy wartość A i wybierz "Przenieś do> Właściwość", wybierz właśnie utworzoną własność i kliknij OK.
  4. Utwórz nowe żądanie, przy użyciu nowego paramatyzowanego zasobu utworzonego w pierwszej części.W miejscu identyfikatorem, umieścić odniesienie do nieruchomości, która trzyma wartość A w tym formacie:

    ${propertyName} 
    

mógłbym zrobić coś złego, ale moje testy początkowo nie na przeniesieniu własności z "Missing source property". W źródle są kroki PropertyTransfer, musiałem ustawić właściwość na ResponseAsXml

Mam nadzieję, że to pomoże!

+0

Dzięki, to działa! Nie otrzymałem jednak parametru LOCATION. Czy masz pojęcie o opcjonalnych parametrach? Kończą się jak {foo} w adresie URL, jeśli nie nadają im wartości. – snaits

+0

Może pole Lokalizacja jest tylko w niektórych wersjach - służy do pokazania, na jakim poziomie tworzysz własność (np. Projekt, Usługa, Zasoby itp.), Co można wywnioskować na podstawie kontekstu, w którym działasz (np. , tworzymy nowy zasób, dlatego chcemy, aby własność została zdefiniowana jako część tego zasobu). W świecie RESTULT (no, prawdopodobnie we wszystkich światach) nie ma czegoś takiego jak opcjonalny parametr uri. Jest jeden zasób z parametrem i jeden bez, i są to oddzielne zasoby. – Brendan

+0

Dziękuję bardzo! to działa świetnie !!!!!! – MeV