2017-06-01 20 views
1

問題文:テストステップに失敗し、スクリプトアサーションステップでファイルに何かを書き込んでください。アサート文の後にアクションを実行

説明私はSoapUIでスクリプトアサーションを使用しています。私はAPIの応答を検証しています。成功した場合はDBを取得し、APIとDBの値からの応答が一致しない場合は値を取得し、ファイルに書き込み、テストステップに失敗します。

私が現在持っているコードは、ファイルに書き込みますが、テストステップは失敗しません。

def response = "test:testrunnwer" 
if (status == "200 OK") 
     { 
      def splitResponse = (response.split(':',2)) 
      def finalResult = splitResponse[1].substring(2,splitResponse[1].length()-3) 
       def sql = Sql.newInstance(context.expand('${#Project#dbName}'), context.expand('${#Project#dbUser}'), context.expand('${#Project#dbPassword}'), context.expand('${#Project#sqlDriver}')) 
       sql.eachRow('select <<column_name>> as result from <<table_name>>') { 
        rw -> if (!(rw.result == finalResult)){ 
          wfFail.append(rawRequest+" "+status+" "+splitResponse[1]+"\r\n") 
         } 
        } 
       sql.close() 
      } 

testRunner.fail()ここでは機能しません。私は、スクリプトアサーションでtestRunnerにアクセスできない場所を読んでいます。

私がいた試した他のアプローチ:

sql.eachRow(context.expand('${emarketingDataTagsList#SQLquery}')) { 
        rw -> assert(rw.result == finalResult) : wfFail.append(rawRequest+" "+status+" "+splitResponse[1]+"\r\n") 
        } 

また、これは(ステップが失敗したが、何もファイルに書き込まれていない)結果が得られていない、私は enter image description here

+0

'wfFail' - どこが定義されていますか?それは何を持っていますか? – Rao

+0

クマール、答えをチェックし、それが有用かどうかを確認してください。 – Rao

+0

解決策を試すチャンスがありますか? – Rao

答えて

0

この情報を取得アクションが提供するアサーションのパスをうまくいく

assert文の後にアクションを実行します。それ以外の場合は、アサーションの失敗時に実行が停止するため、実行されません。

これを達成する別の方法があります。ここif..else代わりのassert

を使用セイ:

//Doing negative comparison Since nothing to do when equal 
if (rw.result != finalResult) { 
wfFail.append(rawRequest+" "+status+" "+splitResponse[1]+"\r\n") 
} 
//Do other stuff or repeach eachRow of sql 
//After completion 
if(wfFail.toString()) { 
    threw new Error(wfFail.toString() 
} 

testRunner.failは、()ここでは動作しません。私は、スクリプトアサーションでtestRunnerにアクセスできない場所を読んでいます。

これは間違いありません。 testRunnerオブジェクトはで初期化されます。Groovyスクリプトテストステップですが、スクリプトアサーションには含まれていません。 しかし、あなたは同じのために、以下の使用することができます。から

変更:testRunner.fail()
へ:これは便利ですcontext.testRunner.fail()

希望を。

関連する問題