2017-04-24 9 views
1

私はsoapuiが新しく、選択されたリストオプションの要素のプロパティ転送を試みています= true。レスポンスはJSONであり、コード$.response.optionList[0].options[1].idで要素を選択できますが、選択したい要素の番号を指定します。どちらを選択するかはtrueです。あなたがグルーヴィーなスクリプトでやっていることですか?誰にも何か提案がありますか?Soapuiプロパティの転送JSON ifステートメント

{  
    "response": { 

     "optionList": [ 
     { 
      "options": [ 
      { 
       "id": 10, 
       "selected": false 
      }, 
      { 
       "id": 11, 
       "selected": true 
      } 
      ] 
     }, 
     { 
      "options": [    
      { 
       "id": 12, 
       "selected": false 
      }] 
     } 
     ] 
    } 
}  

答えて

1

残りのリクエストステップ後にプロパティ転送テストステップを使用していますか?

残りのリクエストステップにScript Assertionを使用して、プロパティ転送テストステップを達成して削除することができます。スクリプト以下

用途:

//check if there is response 
assert context.response, 'response is empty or null' 
def json = new groovy.json.JsonSlurper().parseText(context.response) 
def id 
json.response.optionList.each{ optionItem -> 
    optionItem.options.each { option -> 
    if (option.selected == true) { 
     id = option.id 
    } 
    } 
} 
log.info "id value when selected is true : ${id}" 
context.testCase.setPropertyValue('ID', id?.toString()) 

あなたは、前のステップ応答から上記idにアクセスして、後のステップを、それを使用し、プロパティの拡張を使用する必要がある場合${#TestCase#ID}

を言うあなたはすぐにオンライン上のスクリプトを試すことができますDemo

+0

本当にありがとうございましたが、実際には、私は別の要素を持っています。あなたのコードを適用しようとしましたが、nullポインタの例外が発生しました。私はあなたのスクリプトを変更する方法を見つけることができませんでしたが、optionIdの最初の要素だけを取得しようとしました。 – Mikael

+0

上記のスクリプトを試したときに何が起こったのですか?それがうまくいくと信じてください。試してみる。 – Rao

+0

このスクリプトは、optionListリストに2番目の要素を追加する前に機能しました。 optionListに要素番号2を追加すると、選択されたidがnullであることがわかります – Mikael

関連する問題