2017-05-02 7 views
0

SoapUIを初めて使用していて、一般的にAPIで作業していますが、SoapUI(フリーウェア版)のREST APIの自動テストを設定しようとしています。SoapUIテスト:セッションIDから引用符を削除する

私が最初に行う呼び出しでは、JSONでセッションIDが返されます。これは引用符のように囲まれています。「セッションIDはここにあります」。このキーは、次のAPI呼び出しでは引用符を使用しないで必要です。私はSOAPUIの "Property Transfer Teststep"を使用しています。これはセッションIDの前後にある引用符を除いてうまくいきます。その結果、後続の呼び出しでエラーが返されます。

どのように引用符を削除できますか?私はXpathとJSONPathを読んでいましたが、これは画面で使用できるコーディング言語の一部ですが、この引用符を削除する方法はわかりません。 お手数をおかけしますようお願い申し上げます。

全RAW応答:

HTTP/1.1 200 OKのCache-Control:キャッシュなしプラグマ:キャッシュなしのContent-Type:アプリケーション/ JSON。 charset = utf-8 Expires:-1サーバー:Microsoft-IIS/8.5 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET日付:Tue、02 May 2017 18:31:48 GMT Content-Length :38 "48d45ba2-4549-41be-8b31-e85b3c738a03"

+0

あなたが作業している応答を表示できますか?可能であればスクリーンショット? – Rao

+0

最初の呼び出しからの応答: "c2f21adc-0f3d-4514-ad5f-65a46d4d6da5" これは次の呼び出しの "SessionID"パラメータフィールドに入る必要がありますが、応答のまわりで "..."を削除する必要があります。 –

+0

Bart、実際のレスポンスのようなものではないかと確信しています。生の応答を提供するか、少なくとも同じ構造で提供する必要があります。それ以外の場合は、何か助けを与えることは困難です。 – Rao

答えて

1

次のメッセージが "48d45ba2-4549-41be-8b31-e85b3c738a03" として返されることを言います。メッセージはそれがjsonだと言っていますが、それはSoapUIがそれを有効なjsonとして解釈するという意味ではありません。別の答えで言及されている質問のような有効なJSONは、中括弧で始まり、中括弧で終わります。また、キーと値のペアが必要です。そうのように:その場合

{ 
    "sessionId":"48d45ba2-4549-41be-8b31-e85b3c738a03" 
} 

転送$.sessionIdは、(引用符付き)(引用符)48d45ba2-4549-41be-8b31-e85b3c738a03はなく、"48d45ba2-4549-41be-8b31-e85b3c738a03"を生じます。

添付ファイルには模擬のプロジェクトがあります。それは1回の呼び出しを持っています。プロジェクトを開くと、再生をクリックしてモックを起動する必要があります。テストケースを実行することができます。 - https://www.dropbox.com/s/rsgc9q1g45jze5z/StackOverflow_43745255_QuestionQuotationMarks.xml?dl=0。これをXMLとして保存してから、SoapUIで開くことができます。

プロパティの転送手順が表示されます。これには1つのステップがあります。次に、パラメータなしで値を転送する場所。メッセージを完全に転送します。引用符を含む。

センンド転送は '$'です。有効なjsonでは、 '$'がルートを表すため、これはパラメータなしのプロパティ転送と同じ結果をレンダリングします。少なくともそれは私がそれを理解する方法です。あなたは、スクリプトを見つける含ま

response = context.testCase.getTestStepAt(0).testRequest.response.getResponseContent() 
assert response == '"48d45ba2-4549-41be-8b31-e85b3c738a03"' 

stripResponse = response.replace("\"", "") 
assert stripResponse == '48d45ba2-4549-41be-8b31-e85b3c738a03' 

stripResponseは引用符が剥ぎ取られ、応答です。次に、この変数を選択したプロパティに割り当てるか、または次のステップのヘッダーに直接挿入することができます。

時にはスクリプトを使用する方法があります。

+0

ありがとうマティアス!私はこれとさらに得ることができると思う:) –

関連する問題