web-dev-qa-db-fra.com

Envoi du cookie en tant qu'en-tête de demande dans SOAP Demande d'interface utilisateur pour le service Web de repos

Je teste un Rest API en utilisant SOAP UI outil.

Tout d'abord, j'ai frappé une autre API qui m'a donné le jSessionid puis dans ma demande réelle, j'ai ajouté un paramètre à l'en-tête de la demande par le nom "Cookie" et lui fournir ce qui précède extrait jsessionid valeur. Tout fonctionnait bien.

Ce que je veux, c'est définir dynamiquement le cookie/jessionid dans l'en-tête de la demande sans le faire explicitement/manuellement.

Comment ceci peut être fait?

14
Anand

Vous pouvez créer une session d'application à partir de l'interface utilisateur et utiliser des cookies qui enregistrent la session. Obtenez les détails du cookie de session à partir du navigateur à l'aide des outils de développement du navigateur. L'image montre où les cookies sont disponibles dans le navigateur:Getting cookie header parameter

Dans soapUI, créez un attribut d'en-tête avec la même valeur que celle obtenue à partir du navigateur et exécutez la demande. La demande utilisera le même identifiant de session (JSESSIONID) qui est enregistré dans le cookie pour exécuter la demande. Les images ci-dessous montrent comment ajouter la valeur du cookie à l'en-tête.Adding cookie value o request header

9
kirancodify

Vous pouvez facilement manipuler les cookies à l'aide de scripts Groovy. Dans SoapUI, les cookies sont conservés dans la boutique de cookies:

import com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport
def myCookieStore = HttpClientSupport.getHttpClient().getCookieStore()

Vous pouvez y lire tous les cookies:

def myCookies = myCookieStore.getCookies()
def interestingCookie
myCookies.each {
    if(it.name == "JSESSIONID")
        interestingCookie = it
}

Pour créer un nouveau cookie dans une autre demande:

import org.Apache.http.impl.Cookie.BasicClientCookie
def myNewCookie = new BasicClientCookie("cookie_name", "cookie_value")
myNewCookie.version = 1
myNewCookie.domain = "qa.test"
myCookieStore.addCookie(myNewCookie)

J'ai quelques informations supplémentaires dans un ancien blog ici .

2
SiKing