こんにちは、WebサービスのテストにSoapUIを使用しています。メールアドレスとパスワードを使用して顧客レコードを作成する必要があります。顧客レコードの作成サービスには電子メールIDとパスワードが含まれています。SoapUIで顧客レコードの作成の実行(リクエストの送信)ボタンをクリックすると、現在の作成時刻とパスワードが追加された電子メールIDが表示されます。
これをgroovyで行う方法は?
groovy を使用して動的なdateTime値をsoapUIに挿入する一般的なケースは2つあります。
フォーマットされたタイムスタンプ値を挿入します。この場合はSimpleDateFormatを使用します。
${=new Java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())}
タイムスタンプをxsd:dateTime値としてフォーマットします。 DatatypeFactoryを使用して、newXMLGregorianCalendarのインスタンスを作成します。
${=javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar.getInstance())}
最初のケースはあなたのために働くと思います。リクエストにコードを挿入し、必要に応じてタイムスタンプ形式を調整します。ところで、それはまた、模擬サーバーの応答で動作します。
これは、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には、日付の比較がまだ進んでいるとは思いません。
コメントは純粋なGroovy
を使用していますが、SoapUI
はprintln
のような一般的な構文の一部を使用していません-代わりにlog.info
。
today = new Date().format("yyyy-MM-dd")
log.info today