2016-08-22 13 views
1

私は、ReadyAPIのタイムスタンプファイルにテスト結果を書き込もうとしています。私は最初のステップでタイムスタンプを作成し、DataSinkの後にタイムスタンプを作成するDataGenを持っていますが、そのタイムスタンプはアウトファイルのファイル名に使用します。私はDataSinksでProperty Expansionが許可されていると聞きましたが、ファイルが作成されていません。DataSinkのプロパティ拡張

最初にファイルを初期化して作成する必要がありますか(Groovy Script)?C:/Users/xxxxxx/Desktop/Projects/xxx/TestResults/OutFile_${DataGen#time}.xlsx

DataGen設定::

DataSinkにおけるファイル構成アウト enter image description here

enter image description here

テストステップ

enter image description here

UPDATE:
最後の実行のタイムスタンプはdatasinkに使用されています。だから、これがランであるとしましょう:
実行1:8:00:00 AM - >タイムスタンプの値??
ラン2:午前8時15分00秒AM - >タイムスタンプ付き値午前8時00分00秒AM
ラン3:8時30分00秒AM - >タイムスタンプ付き値午前8時15分00秒AM

それデータキャッシュが最後にキャッシュされたバージョンのプロパティで残っているようですが、新しい実行が始まる前に更新されません。

答えて

0

問題は、すべてのタイムスタンプやファイルの作成にありませんでした。問題は、DataSinkでプロパティ拡張を使用しようとしていたことです。ファイル名としてタイムスタンプを使用する唯一の方法は、テストケースティアダウンスクリプトで作成することです。これにより、すべてのアウトファイルが閉じられ、ロックが確実に行われなくなります。

この問題を解決するには、テスト中にDataSinkに書き込むために一時ファイルを使用します。その後、TearDownスクリプトでタイムスタンプを作成し、新しいファイルを作成し、古いファイルの内容を書き出します。

import jxl.* 
import jxl.write.* 
import java.text.SimpleDateFormat 

def timestamp = '' 
timestamp = new Date().format('yyyy_MM_dd_HH_mm_ss') 

def tempFile = context.testCase.getPropertyValue('tempFile') 

def output = tempFile +"_" + timestamp + ".xlsx" 
tempFile += ".xlsx" 

new File(output) << new File(tempFile).bytes 
2

これは変です。

DataGenステップはタイムスタンプ作成以外に何もしていない場合は、その後、私は、次の試してみることをお勧め:

  • Groovy ScriptテストステップとDataGenステップを交換してください。
  • 以下のスクリプトの内容をGroovy Scriptに入れてください。
def dateTime = new Date().format('yyyy_MM_ddHHmmss') 
def fileName = "C:/Users/xxxxxx/Desktop/Projects/xxx/TestResults/OutFile_${dateTime}.xlsx" 
context.testCase.setPropertyValue('DATA_SINK_FILE_PATH', fileName as String) 
  • とファイル名の
  • は、使用してください - ${#TestCase#DATA_SINK_FILE_PATH}
+0

おかげで、右方向に確実にステップ:

は、ここに私が使用して終了のGroovyスクリプトです。奇妙なことが起こっている..更新を参照してください –

+0

それは喜んで助けた。そしてそれは不動産の拡大を証明しています。 「DataGen」は手ではないので修正できません。そして、私は、この答えが望ましい機能を達成しながらさらに進むことを助けると信じています。あなたが答えとしてそれを受け入れることができれば感謝します。 – Rao

関連する問題