Rest API
ツールを使用してSOAP UI
をテストしています。
まず、jSessionidを提供する別のAPIをヒットし、次に実際のリクエストで"Cookie"という名前でリクエストヘッダーにパラメーターを追加し、上記を提供します抽出jsessionid値。すべてがうまくいきました。
私が欲しいのは、明示的に/手動で行うことなく、要求ヘッダーにcookie/jessionidを動的に設定することです。
どうすればできますか?
UIからアプリケーションセッションを作成し、セッションを保存するCookieを使用できます。ブラウザーの開発者ツールを使用して、ブラウザーからセッションCookieの詳細を取得します。画像は、ブラウザでCookieが利用できる場所を示しています。
SoapUIで、ブラウザーから取得したのと同じ値でヘッダー属性を作成し、要求を実行します。リクエストは、Cookieに保存されている同じセッションID(JSESSIONID)を使用してリクエストを実行します。以下の画像は、ヘッダーにCookie値を追加する方法を示しています。
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 にいくつかの追加情報があります。