2017-05-24 14 views
0

JMeterテストケースにBeanShellアサーションを追加しました。 JMeterのJSONドキュメントをAPIからチェックしたいと思います。JMeter Beanshell Groovyスクリプトが動作しない

私のスクリプトは次のようになります。私は私のテストケースを開始しようとしている場合は

import groovy.json.* 

def jsonText = ''' 
{ 
    "message": { 
     "header": { 
      "from": "mrhaki", 
      "to": ["Groovy Users", "Java Users"] 
     }, 
     "body": "Check out Groovy's gr8 JSON support." 
    } 
}  
''' 

def json = new JsonSlurper().parseText(jsonText) 

def header = json.message.header 
assert header.from == 'mrhaki' 
assert header.to[0] == 'Groovy Users' 
assert header.to[1] == 'Java Users' 
assert json.message.body == "Check out Groovy's gr8 JSON support." 

、私は私のビューの結果ツリーで、次の応答を得た:

Assertion error: true 
Assertion failure: false 
Assertion failure message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval In file: inline evaluation of: ``import groovy.json.* def jsonText = ''' {  "message": {   "header": { . . . '' Encountered "def" at line 3, column 1. 

Screenshot

どうすればこの問題を解決できますか?

編集: スクリーンショットJSR223アサーション Screenshot2

+0

でのGroovyの使用方法の詳細についてGroovy is the New Blackの記事を参照してください私は「場合は同じコードでJSR223アサーションを使用しますが、言語 – ararar

+0

としてグルーヴィー選択してくださいJSR223アサーションでスクリプトを試してみましたが、結果ツリーのJSR223アサーションにフィードバックはありませんでした。しかし、テストは失敗する必要があります。 – fcb1900

+0

あなたが(assert header.to [1] == 'Java Users')を(assert header.to [1] == 'Java Users123123'に)変更すると失敗する理由を説明できますか? – ararar

答えて

1

あなたのスクリプトで複数の問題があります。

  1. あなたのJSONが有効なものではありませんが、あなたが引用符に
  2. Groovyのassert keywordウォン」をエスケープする必要がありますアサーションの失敗を引き起こす場合は、jmeter.logファイルにのみ例外を出力します。アサーション自体に失敗する必要がある場合は、AssertionResultを使用する必要があります。 rthand代わり

リファレンスコード:

def jsonText = '{\n' + 
     ' "message": {\n' + 
     '  "header": {\n' + 
     '   "from": "mrhaki",\n' + 
     '   "to": ["Groovy Users", "Java Users"]\n' + 
     '  },\n' + 
     '  "body": "Check out Groovy\'s gr8 JSON support."\n' + 
     ' }\n' + 
     '}' 

def json = new groovy.json.JsonSlurper().parseText(jsonText) 

def header = json.message.header 
if (header.from != 'mrhaki' || header.to[0] != 'Groovy Users' || header.to[1] != 'Java Users' || json.message.body != "Check out Groovy's gr8 JSON support.") { 
    AssertionResult.setFailure(true) 
    AssertionResult.setFailureMessage('There was a problem with JSON') 
} 

はJMeterの

関連する問題