2016-06-27 15 views
0

GroovyとSoapUIのテストスイートが新しく、条件付きジャンプを実行しようとするとエラーが発生します。問題は、私はJSON文字列に答えるいくつかのRESTサービスを持っており、サービスAがその答えに特定のコードを返す場合にのみサービスBが実行されるTestSuiteを作成したいと考えています。コードは「1」私はサービスBを実行する必要があるために等しい場合
サービスAは
SoapUI:jsonの回答で動作しない条件付きのジャンプ

{ 
     "parentObject": { 
      "myCode": "0", 
      "severity": "INFO" 
     }, 
     "message": "operation successfull" 
    } 

のようなものを返し、そうでない場合ではない:だから、物事をより明確にします。私の条件後藤は次のとおりです。
contains(., "1")

で試してみました

contains(text(), "1") 

私は条件付き後藤ウィンドウで実行アイコンからこの条件をテストする場合、私はテストスイートからそれを実行した場合、それが正しく状態を解決するが、 「一致条件が見つかりません」というメッセージが表示され、サービスBが実行されます。
Googleにはこのエラーに関連する検索結果はごくわずかですが、そのうちの1つにしか別のオプション(link here) Groovyスクリプトを使って:

import groovy.json.JsonSlurper 
responseContent = testRunner.testCase.getTestStepByName("Service A step").getPropertyValue("response") 
slurperresponse = new JsonSlurper().parseText(responseContent) 
myCode = slurperresponse.parentObject.myCode 
if ('1'.equalsIgnoreCase(myCode.toString()))  testRunner.gotoStepByName("Service B Step") 
else log.info("Some error") 

が動作しませんでした。サービスBが実行されたことを意味します。
条件付きジャンプがそのエラーを表示する理由、またはサービスBがGroovyスクリプトで実行される理由を知っていれば、両方のオプションのいずれかを使って、ここに手を差し伸べることができたら本当に感謝します。事前に
おかげ

UPDATE:@Rao要求に応じてテストスイートのステップのリストを、(申し訳ありませんが、私は本当のコンポーネントで画像を追加することはできません)

  1. RESTサービス、帰国JSON応答
  2. グルービースクリプトは、以前の応答に含まれるトークンを読み取り、次のRESTサービスにヘッダーとして
  3. RESTサービスを、それを挿入する、(JSONレスポンスを返すが正しく受信し(これは「サービスA」であろう)前のステップで挿入されたヘッダ)
  4. のGroovyスクリプト(記述に示されている)
  5. RESTサービス(これは、「サービスB」になります)、戻ってJSONレスポンス
    これはテストスイート
+0

に発見されましたか?あなたのJSONの例は無効です... –

+0

こんにちは@tim_yatesは、私が使用している変数 "myCode"を表示するためだけの答えの断片です。私はJSON答えを更新します – maxivis

+0

そして 'log.info myCode.toString()) 'show?私はそれがリストだと思う –

答えて

2

の私の唯一のコンポーネントであることがでJSONを使用することはできませんSoapUIの条件付きジャンプしかし、Groovyのスクリプトを使ってそれを行うことができます。ここで

は、スニペットは `サービスA`は何を返すん https://community.smartbear.com/t5/SoapUI-Open-Source/Conditional-goto/td-p/107276

import static com.jayway.jsonpath.JsonPath.parse 

def response = context.expand('${REST Request#Response}') 

def id = parse(response).read('$.id') 
log.info id 

if (id!=null) testRunner.gotoStepByName("TestStepName") 
関連する問題