web-dev-qa-db-ja.com

SOAP REST WebサービスのUIリクエストでリクエストヘッダーとしてCookieを送信する

Rest APIツールを使用してSOAP UIをテストしています。

まず、jSessionidを提供する別のAPIをヒットし、次に実際のリクエストで"Cookie"という名前でリクエストヘッダーにパラメーターを追加し、上記を提供します抽出jsessionid値。すべてがうまくいきました。

私が欲しいのは、明示的に/手動で行うことなく、要求ヘッダーにcookie/jessionidを動的に設定することです。

どうすればできますか?

14
Anand

UIからアプリケーションセッションを作成し、セッションを保存するCookieを使用できます。ブラウザーの開発者ツールを使用して、ブラウザーからセッションCookieの詳細を取得します。画像は、ブラウザでCookieが利用できる場所を示しています。Getting cookie header parameter

SoapUIで、ブラウザーから取得したのと同じ値でヘッダー属性を作成し、要求を実行します。リクエストは、Cookieに保存されている同じセッションID(JSESSIONID)を使用してリクエストを実行します。以下の画像は、ヘッダーにCookie値を追加する方法を示しています。Adding cookie value o request header

9
kirancodify

Groovyスクリプトを使用してCookieを簡単に操作できます。 SoapUIでは、CookieはCookieストアに保持されます。

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

あなたはそこにあるすべてのクッキーを読むことができます:

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

別のリクエストで新しいCookieを作成するには:

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)

以前のブログ投稿 here にいくつかの追加情報があります。

2
SiKing