自動でのシステムテストを実行した結果をどう集計し、チームで見られる状態にするのか、悩みどころです。
(特にSeleniumなど特定のダッシュボードが無いツールの場合)
ということで、たまたま見つけた
Test automation reporting for teams
とうたっているTesults - Test automation reporting app, dashboard and toolingを触ってみました。
まだ深く突っ込んだ使い方はしておらず、本記事中では
- アカウントを作り
- ダッシュボードに自動テストの結果を流してみたうえで
- 気になる点をドキュメント上で調査
までを行っています。
※見ればわかりそうなところは画像等省いていきます。
アカウント作成
まずはTesults - Test automation reporting app, dashboard and toolingの画面にある"Try free now"を選択します。
- メールアドレス
- パスワード
- 名前
を求められるので入力。
送られてきたメールのリンクをクリックして本登録するタイプでした。
プロジェクト作成
「プロジェクト」と呼ばれる単位のものを作成します。
上は公式サイトで表示されている画像ですが、一番左上の「Galaxy Mapper」がプロジェクトに相当し、その下に"Target"という概念でiOS-debugやらiOS-releaseやらが存在しています。
ここではプロジェクトを作ればよいので、Create a projectのリンクを選択します。
名前はなんでも良さそうです。pytest-trialにしました。
※後で確認したら日本語でもいけました
そしてプランを選べと言われるのでFreeを選択。
無事プロジェクトの作成が完了し、tokenが発行されます。
このあと、テスト結果をTesultsに送るためにこのトークンが必要になるので、控えておきます。
※regenereateも可能です
テストの実行環境の設定
ここからはテストの実行環境、今回はローカルでpytestを使うパターンで設定します。
公式サイトによると、かなり幅広い言語・フレームワーク・ツールに対応しています。
私は会社で使っているから、という理由でpytestを選びました。
言語やフレームワークごとの環境構築方法は
に書いてあるので基本従えばOKです。
pytestの場合
pip install tesults
pip install pytest-tesults
だけでした。テストコード自体には手を入れずに、このあとの実行までできました。
テストの実行と結果の反映
準備ができたので、自動テストを動かしてみます。
実行結果をTesultsに反映させるのは簡単で、前項で控えておいたtokenを使って、
pytest --tesults-target eyJ0eXAiOiJ...
のようにテストを実行するだけ、です。
もちろんコレは一番愚直な方法で、Tesults - pytest Test Frameworkによると、例えばpytest.ini
やpyproject.toml
など、フレームワークごとに一般的な設定ファイルの書き方を使い、トークンを別で持たせておくことももちろんできます。
テストの実行後、Tesultsに結果を反映する処理が走ります。
うまくいっている例が以下。
============================================ 1 failed, 7 passed in 18.46s =============================================
Tesults results uploading...
success: True
message: Success
warnings: []
errors: []
Tesultsを見てみると、結果が入っています。
pytestのparametrize(データ駆動テスト的なもの)をやったので、テストのNameがヘンになってしまいました。
個別のケースの結果を見ていくと、エラーログ等が出ていることがわかります。
この他にも、
Associated Bugs、Cost、Taskなどの項目に対し、実行後任意の設定が可能なようです。
その他の機能や気になったこと
エビデンス(画像やログファイルなど)は残せるのか
If you want to save files such as logs and screen captures, provide the absolute path to the top-level directory where this data is saved for the running test run. Files, including logs, screen captures and other artifacts will be automatically pushed to Tesults.
(Google翻訳)ログや画面キャプチャなどのファイルを保存する場合は、実行中のテスト実行のためにこのデータが保存される最上位ディレクトリへの絶対パスを指定します。ログ、画面キャプチャ、その他のアーティファクトを含むファイルは、自動的にTesultsにプッシュされます。
と記載があり、フォルダ構成を指定することでアップが可能なようです。
マニュアルテストとの統合
まだ試していませんが、手動テストもあわせて管理できるようです。
Tesults - Manual Results Guide
正直手動テストケースをこのツールに登録して一緒に管理することで何か幸せになるイメージが湧いてません。
おわりに
Allureなど、自動テストのレポートをグラフィカルに出してくれるものはこれまでもあったものの、いまひとつ盛り上がりに欠ける感がありました。
このTesultsは、これまで自分が触ったツールの中では最も、導入部分が易しいように感じました。
ドキュメントもサッパリしている()し、設定も少ない。でも対応しているフレームワークやツールが多いということで、
クラウドサービスで自動テストの結果を集約することがOKなチームであれば、検討の余地は充分あるのでは、と感じました。
自分でももう少し突っ込んで使ってみたいところです。