hifive / hifive-pitalium

Libraries for supporting regression test
http://www.htmlhifive.com/
Apache License 2.0
34 stars 9 forks source link

性能測定機能を追加 #184

Open iijimakazuyuki opened 6 years ago

iijimakazuyuki commented 6 years ago

ページ遷移したときなどにWeb API経由でブラウザから性能情報を取得する機能を追加しました。 これにより、「スクリーンショットは一致していても時間がかかりすぎている」といった問題がないかどうかもテストできるようになり、使いどころがいっそう増えると考えています。 既存機能を邪魔しないように、設定に「性能測定モード」を追加し、これを明示的にONにした時のみ機能を利用できるようになる実装にしました。

ご確認のほど、よろしくお願いいたします。 パッケージの分け方、追加すべきテストなどございましたら、ご教示ください。

使い方

本機能は PtlTestBase を拡張した TelemetricTestBase を基底クラスとしてテストクラスを記述する使い方を想定しています。 具体的な書き方は https://github.com/iijimakazuyuki/hifive-pitalium-samples/commit/7b779efbaf407c855d4bf2d7904bdbcdf4089cb1 をご覧ください。 TelemetricTestBasePtlTestBase と同様、Ruleクラスでテスト結果の出力を行っており、 スクリーンショットのフォルダ内に testCaptureTop_performance_WINDOWS_chrome.html というような名前のレポートがテストメソッド単位で出力されるようになります。 ここには各ページ遷移時の性能情報が記録されています。

ちなみに、このレポートはThymeleafテンプレートを用いており、ユーザが差替可能です。 具体的な差替方法は https://github.com/iijimakazuyuki/hifive-pitalium-samples/commit/458ef4e87ecee80a7b25c019a3a0ce3ee5079284 をご覧ください。

このレポートは、下記メソッド実行時に性能情報が追記されます。

なお、上記メソッドで検知できないタイミングの場合は、PerformanceTelemetry#measurePerformance() を実行すれば、手動で性能情報を取得できます。