テストレポート用ツールのTesultsを触ってみたところ、ものすごく簡単に自動テストの結果をダッシュボード化できた

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46492/ee7daef1-99ce-0e03-2bcd-7afba97f87d7.png)

自動でのシステムテストを実行した結果をどう集計し、チームで見られる状態にするのか、悩みどころです。
（特にSeleniumなど特定のダッシュボードが無いツールの場合）

ということで、たまたま見つけた

> Test automation reporting for teams

とうたっている[Tesults - Test automation reporting app, dashboard and tooling](https://www.tesults.com/)を触ってみました。

まだ深く突っ込んだ使い方はしておらず、本記事中では

- アカウントを作り
- ダッシュボードに自動テストの結果を流してみたうえで
- 気になる点をドキュメント上で調査

までを行っています。

※見ればわかりそうなところは画像等省いていきます。

## アカウント作成

まずは[Tesults - Test automation reporting app, dashboard and tooling](https://www.tesults.com/)の画面にある"Try free now"を選択します。



- メールアドレス
- パスワード
- 名前

を求められるので入力。

送られてきたメールのリンクをクリックして本登録するタイプでした。

## プロジェクト作成

![スクリーンショット 2022-04-15 233436.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46492/8ddd6ec9-3656-7d08-7fba-04117f06deb2.png)

「プロジェクト」と呼ばれる単位のものを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46492/35f17633-65cc-46d3-a3b7-6448e56e5f42.png)

上は公式サイトで表示されている画像ですが、一番左上の「Galaxy Mapper」がプロジェクトに相当し、その下に"Target"という概念でiOS-debugやらiOS-releaseやらが存在しています。

ここではプロジェクトを作ればよいので、Create a projectのリンクを選択します。

![スクリーンショット 2022-04-15 233610.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46492/6cddaf07-842c-1347-dc4d-047803891d06.png)

名前はなんでも良さそうです。pytest-trialにしました。
※後で確認したら日本語でもいけました

![スクリーンショット 2022-04-15 233621.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46492/2bb6f44e-942c-343d-1628-91fcb09a9997.png)

そしてプランを選べと言われるのでFreeを選択。

![スクリーンショット 2022-04-15 233740.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46492/37239441-c4ba-33a4-5ec1-1fa54ba06eb0.png)

無事プロジェクトの作成が完了し、tokenが発行されます。

このあと、テスト結果をTesultsに送るためにこのトークンが必要になるので、控えておきます。
※regenereateも可能です

## テストの実行環境の設定

ここからはテストの実行環境、今回はローカルでpytestを使うパターンで設定します。

公式サイトによると、かなり幅広い言語・フレームワーク・ツールに対応しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46492/e1746127-384e-c760-7c5e-5dff6d8179f5.png)

私は会社で使っているから、という理由でpytestを選びました。

言語やフレームワークごとの環境構築方法は

[Tesults - Getting Started](https://www.tesults.com/docs/getting-started)

に書いてあるので基本従えばOKです。

pytestの場合

1. `pip install tesults`
1. `pip install pytest-tesults`

だけでした。テストコード自体には手を入れずに、このあとの実行までできました。

## テストの実行と結果の反映

準備ができたので、自動テストを動かしてみます。

実行結果をTesultsに反映させるのは簡単で、前項で控えておいたtokenを使って、

``` bash
pytest --tesults-target eyJ0eXAiOiJ...
```

のようにテストを実行するだけ、です。

もちろんコレは一番愚直な方法で、[Tesults - pytest Test Framework](https://www.tesults.com/docs/pytest)によると、例えば`pytest.ini`や`pyproject.toml`など、フレームワークごとに一般的な設定ファイルの書き方を使い、トークンを別で持たせておくことももちろんできます。

テストの実行後、Tesultsに結果を反映する処理が走ります。
うまくいっている例が以下。

``` bash
============================================ 1 failed, 7 passed in 18.46s ============================================= 
Tesults results uploading...
success: True
message: Success
warnings: []
errors: []
```

Tesultsを見てみると、結果が入っています。

![スクリーンショット 2022-04-17 224814.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46492/99103349-4817-d7a8-1edc-a030aec63414.png)

pytestのparametrize（データ駆動テスト的なもの）をやったので、テストのNameがヘンになってしまいました。

![スクリーンショット 2022-04-17 224830.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46492/3ca6f753-5d0a-01f8-77dd-8470561840d6.png)

個別のケースの結果を見ていくと、エラーログ等が出ていることがわかります。

この他にも、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46492/73a18ad6-a168-ec74-5325-66b7504b5461.png)

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](https://www.tesults.com/docs/manual)

正直手動テストケースをこのツールに登録して一緒に管理することで何か幸せになるイメージが湧いてません。

## おわりに

Allureなど、自動テストのレポートをグラフィカルに出してくれるものはこれまでもあったものの、いまひとつ盛り上がりに欠ける感がありました。

このTesultsは、これまで自分が触ったツールの中では最も、導入部分が易しいように感じました。

ドキュメントもサッパリしている（）し、設定も少ない。でも対応しているフレームワークやツールが多いということで、
クラウドサービスで自動テストの結果を集約することがOKなチームであれば、検討の余地は充分あるのでは、と感じました。

自分でももう少し突っ込んで使ってみたいところです。