2016-10-19 5 views
1

テストスイートのカスタムプロパティにインポートされた設定ファイルから読み込まれるパスにSOAPテストステップ生リクエスト&のステップを保存します。ユーザ定義のパスにSoapテストステップの生のリクエストと応答を保存する

どうすればいいですか?

以下のスクリプトを使用していますが、スクリプトで定義されている固定場所が使用されています。

def myOutFile = "D:/TestLog/Online_Test/PostPaidSuccess_Payment_BillInqReq.x‌​ml" 
def response = context.expand('${BillInq#Request}') 
def f = new File(myOutFile) 
f.write(response, "UTF-8") 
+0

DEF myOutFile = "D:/TestLog/Online_Test/PostPaidSuccess_Payment_BillInqReq.xml" DEF応答= context.expand( '$ {BillInq位要求}') DEF F =新しいファイル(myOutFile) F。 write(レスポンス、 "UTF-8") –

+0

生のリクエストだけを設定した値で保存してもよろしいですか? – Rao

答えて

0

私はちょうど前のステップ要求/応答を格納するための追加のGroovy Scriptテストステップを避けるためにお勧めします。

以下のスクリプトでは、テストスイートレベルでユーザー定義のプロパティ(REQUEST_PATH)がその値(データを格納する有効なファイルパス、パスはスラッシュ '/'で区切られています)で確認されています。

代わり

//Stores raw request to given location using utf-8 encoding 
new File(context.testCase.testSuite.getPropertyValue('REQUEST_PATH') as String).write(context.rawRequest,'utf-8') 

は実際context.requestcontext.rawRequestrawRequestを用いて上記のスクリプトとの間の小さな差がある(テストケース内の1つの以上のステップより少ない)Billing要求ステップ自体にScript Assertionを使用します。

context.request - 実際の値ではなく、そのまま変数を持ちます。例えばのために

context.rawRequestとして

<element>${java.util.UUID.randomUUID().toString()}</element> 

- 要求で送信された実際の値を持つことになります。例えばのために

:コメントに基づいて

<element>4ee36185-9bfb-47d2-883e-65bf6d3d616b</element> 

EDIT:OPからさらに意見に基づきACCESS DENIED問題

def file = new File(context.testCase.testSuite.getPropertyValue('REQUEST_PATH') as String) 
if (!file.canWrite()) { 
    file.writable = true 
} 
file.write(context.rawRequest,'utf-8') 

EDIT2のためにこれを試してみてください、要求のファイル名があるべき現在のテストステップ名。

//Create filename by concatenating path from suite property and current test stepname 
def filename = "${context.testCase.testSuite.getPropertyValue('REQUEST_PATH')}/${context.currentStep.name}.xml" as String 
new File(filename).write(context.rawRequest,'utf-8') 
+0

あなたのスクリプトを試しましたが、nullポインタ例外エラーが発生しました –

+0

テストスイートレベルのカスタムプロパティ 'REQUEST_PATH'とその値を定義しましたか? 'rawRequest'を使用しましたか?スクリプトに 'log.info context.rawRequest'があるとどうなりますか?それは応答を表示しますか? – Rao

+0

はいi定義されています。パスのプロパティ値を要求しましたが、iamがアクセス拒否エラーを受け取りました。 –

関連する問題