1

groovy スクリプトと soapUI を使用してテスト ケースを自動化しようとしました。

ソープリクエストを送信すると、企業リストを含むレスポンスが返ってきました。私がやりたいのは、上場企業の名前を検証することです。応答配列のサイズは固定されていません。

それで、最初だけ以下のスクリプトを試しましたが、行き詰まりました..

def count = context.expand( '${Properties#count}' )
count = count.toInteger()
def i = 0
while (i<count)
    (
def response = context.expand( '${getCompanyList#Response#//multiRef['+i+']/@id}' )
 log.info(response)
i=İ+1   
    )

私は得る

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script12.groovy: 6: unexpected token: def @ line 6, column 1. def response = context.expand( '${getCompanyList#Response#//multiRef['+i+']/@id}' ) ^ org.codehaus.groovy.syntax.SyntaxException: unexpected token: def @ line 6, column 1. at

どういうわけか「応答」定義に「i」を入れるべきです..

4

1 に答える 1

3

whileステートメントで間違った文字を使用しています。括弧({})ではなく中括弧()である必要があります()

これが、エラーが6行目に関するものであり、変数defとは何の関係もない理由です。i

あなたİの例には、Groovyでは有効な変数名ではないものもあります。

私はあなたがこれを望んでいたと思います:

def count = context.expand( '${Properties#count}' )
count = count.toInteger()
def i = 0
while (i<count) {
    def response = context.expand( '${getCompanyList#Response#//multiRef['+i+']/@id}' )
    log.info(response)
    i=i+1   
}

ただし、これはGroovyであるため、次を使用してこれをはるかにクリーンに行うことができます。

def count = context.expand( '${Properties#count}' )
count.toInteger().times { i ->
    def response = context.expand( '${getCompanyList#Response#//multiRef['+i+']/@id}' )
    log.info(response)
}

i(また、クロージャーの内側をに置き換えるとit、を削除することもできi ->ます。)

于 2012-06-26T05:56:26.700 に答える