web-dev-qa-db-ja.com

Groovyを使用してsoapuiで日時文字列を作成する方法

こんにちは、WebサービスのテストにSoapUIを使用しています。メールアドレスとパスワードを使用して顧客レコードを作成する必要があります。顧客レコードの作成サービスには電子メールIDとパスワードが含まれています。SoapUIで顧客レコードの作成の実行(リクエストの送信)ボタンをクリックすると、現在の作成時刻とパスワードが追加された電子メールIDが表示されます。

これをgroovyで行う方法は?

14
Arunkumar

groovy を使用して動的なdateTime値をsoapUIに挿入する一般的なケースは2つあります。

  1. フォーマットされたタイムスタンプ値を挿入します。この場合はSimpleDateFormatを使用します。

    ${=new Java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())}

  2. タイムスタンプをxsd:dateTime値としてフォーマットします。 DatatypeFactoryを使用して、newXMLGregorianCalendarのインスタンスを作成します。

    ${=javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar.getInstance())}

最初のケースはあなたのために働くと思います。リクエストにコードを挿入し、必要に応じてタイムスタンプ形式を調整します。ところで、それはまた、模擬サーバーの応答で動作します。

38
Artem Zankovich

これは、Apache Commonsのような日付操作の苦痛を緩和する可能性のあるjarを取り込まない、または joda-time の簡単な解決策です。

日付を比較する2行モード(例:時間の前/後):

def startDate = new Date() 
println(startDate.format("yyyy-MM-dd'T'HH:mm:ss SSS"))

またはワンライナーモード:

println(new Date().format("yyyy-MM-dd'T'HH:mm:ss SSS"))

重い日付操作を行う場合は、上記のAPIのいくつかを使用します。 Groovyには、日付の比較がまだ進んでいるとは思いません。

7
Nick N

コメントは純粋なGroovyを使用していますが、SoapUIprintlnのような一般的な構文の一部を使用していません-代わりにlog.info

today = new Date().format("yyyy-MM-dd")
log.info today
2
Robert Long