DataSpider Servistaを使用してシステムを構築する中で、処理速度の要件が出ることがあると思います。そのようなとき、実行したスクリプトのXMLログから実行時間の算出を行うことができますが、long値で出力されている時間を変換したり、結果をExcelなどにまとめるのが結構手間だったりします。
そこで今回は、DataSpider Servistaスクリプト上で実行時間を計算し、その結果をそのままExcelに書き込むということをやってみようと思います!
さっそく作ってみる
まず、新規作成したプロジェクトで、現在日時を秒に変換するユーザ定義ロジックを作成します。
ちょっと複雑ですが、ポイントは現在時刻からミリ秒を算出するという処理です。
現在日時ロジックからはミリ秒を含んだ日時データが取得できますが、そこからミリ秒だけを抜き出すMapperロジックがありません。そのため、日時フォーマッティングロジックのフォーマット「SSS」指定でミリ秒だけを抜き出し、それを1000で割って秒に変換することを行っています。
日・時・分・秒は専用のMapperロジックを使用して抜き出します。
続いて、スクリプトを新規に作成、日付/時間型のスクリプト変数を2つ作成します。
変数Mapperを2つ配置します。
それぞれの変数Mapperで、現在日時ロジックを日付/時間型のスクリプト変数にマッピングします。
次に、ドキュメントMapperとExcelアダプタの書き込み処理を配置します。
ドキュメントMapperで、実行後から実行前を引き算して、その結果をExcelアダプタの書き込み処理にマッピングします。
通常パフォーマンス測定は数回実行の結果を平均して算出するため、繰り返し処理を配置し、その中にパフォーマンス検証したいスクリプトをスクリプト呼び出し処理で指定します。
Excelアダプタの書き込み処理では、以下のようなExcelブックに結果を書き入れるように設定します。
[書き込み設定]タブの[開始セルアドレス]に文字列型のスクリプト変数を指定し、スクリプト変数は繰り返し処理内の一番最後の変数Mapperで数値定数ロジックで「1」を足すようにします。
(初期値に開始セルの値を設定しておきます。)
これで、5回実行すればその結果がExcelブックに自動で書き入れられるようになります。
ベースのスクリプトさえ作ってしまえば、あとはスクリプト呼び出し処理で指定しているスクリプトを変えていくことで、色んなスクリプトの計測ができるようになります!わ~パチパチ!
まとめ
DataSpider Servistaは非常に汎用性の高いアプリケーションなので、このように自分自身のパフォーマンスの測定ができたりします。
ちなみにアプレッソの品質保証部門では、似たような形でDataSpider Servistaのスクリプトを使用してDataSpider Servistaの機能互換性を検証しています。
それによって、手作業の工数削減ができたりメンテナンスが楽になったりと、まさにDataSpider Servistaのメリットを活かしたテストになっていたりします。
ぜひ今回説明したスクリプトを1つの例として、色々とDataSpider Servistaの活用方法を考えていただければ、と思います。
今回作成したスクリプトは、以下スキルアップセンターのページよりダウンロードが可能です。
サンプルスクリプト:パフォーマンス計測プロジェクト