2017-06-30 5 views
1

私はSoapUi 5.3.0を使用してこのようなケースをテストしています: 私は3つのapis:ブックリスト、お気に入りリストにブックを追加、お気に入りリスト。 テストケースに3つのapisを追加してTestStepsとしてテストします:ユーザーがブックリストを表示し、リストの最初のブックを選択してお気に入りリストに追加した後、そのユーザーがお気に入りのリストに移動してブックが最初に表示されることを確認します好きなリストに入れてください。 ステップ1とステップ2の間にpropertyTransferを追加して、ステップ1の応答からbook_idを取得し、次のステップのリクエストのパラメータに使用します。 は、ステップ3で、私は以下のようなスクリプトアサーションでアサーションを追加します。SoapUIプロパティ転送を取得する方法次のステップのスクリプトアサーションでのTestStep

import groovy.json.JsonSlurper 

//get propertyTransfer value 
def tcProperty = messageExchange.modelItem.testStep.testCase.getTestStepByName("propertyTransfer").getPropertyValue("book_id") 

// get response message of Favorite book api 
def responseMessage = messageExchange.response.responseContent 

// get book_id of the first book in favorite list 
def jsonSlurper = new JsonSlurper().parseText(responseMessage) 
bookId = jsonSlurper.data[0].book_id 

// verify 
assert bookId == tcProperty 

しかし、スクリプトの戻りは失敗し、tcPropertyがnullであると思われる enter image description here 写真添付のようなエラーが表示され、私はpropertyTransferを取得できませんでした意味します値。 だからどこが間違っていますか?

+0

あなたが解決策を試す機会を持っているのに必要な、これまで${#TestCase#BOOK_ID}:ここ

は、スクリプトアサーションのですか? – Rao

答えて

0

プロパティ転送テストステップを使用することも、テストステップ自体を使用せずに、リクエストステップ自体に対してスクリプトアサーションを使用することもできます。

Script Assertionを使用する場合は、Property Transferのステップはまったく必要ありません。

アイデアは必要な値を抽出し、スクリプトアサーションのテストケースレベルのカスタムプロパティで設定します。

ここで、上記の抽出された値を、次のステップで使用します。これは、プロパティ拡張を使用して行うことができます。次のステップで

//Check if the response is not empty 
assert context.response, 'Response is empty or null' 
def jsonSlurper = new groovy.json.JsonSlurper().parseText(context.response) 
bookId = jsonSlurper.data[0].book_id 

assert bookId, 'Book id is empty or null' 

//Set the bookId as test case level property 
context.testCase.setPropertyValue('BOOK_ID', bookId) 

、使用プロパティの拡張、すなわち、あなたが書籍ID

関連する問題