Allure Frameworkとは
公式サイトより引用
Allure Framework is a flexible lightweight multi-language test report tool that not only shows a very concise representation of what have been tested in a neat web report form, but allows everyone participating in the development process to extract maximum of useful information from everyday execution of tests.
- 複数言語対応のテストレポートツール
- Webブラウザで見られるレポートを出力
- 何をテストしたのかが完結でわかりやすい
などの特徴があります。
単体テストフレームワークを使ってテスト自動化を行うと、レポートはだいぶ簡素なものになりがちです。開発者個人でテストをやって結果を確認する分にはそれでもいいのですが、テストチームやQAチーム内で確認をしたり、マネージャに報告するのに使ったりする分には物足りないことも。
そんなときには、Allureなどの何らかのレポートツールを使うのがよいでしょう。
今回は既存の、自動テストスクリプトの実行結果をAllureのレポートとして表示できる、というところまでの手順です。
環境構築
前提
- Python, pytest, SeleniumWebDriverで自動テストを書いて実行できる状態であること
Allureのインストール
2.1. Installing a commandline | Allure Framework
を参考に。
今回はWindowsでやろうと思うので、Scoopというコマンドラインインストーラを使います。
scoop install allure
allure-pytestのインストール
今回はpytestを使うので、pytest向けの手順で行きます。
Behaveの場合とNoseの場合も、公式に書いてあるので参考にしてください。
手順は簡単で、pip でインストールすればOKです。
$ pip install allure-pytest
動作確認
ここまでの環境構築が出来たら、Allureのレポートが出力されるかどうか見てみましょう。
動作確認用に、6.1.3. Basic Reporting | Allure Frameworkのサンプルコードをtest_allure_sample.py
というファイル名で保存します。
pytestでtest_allure_sample.py
のテストを実行します。
pytest test_allure_sample.py --alluredir=/tmp/my_allure_results
その後、allure serve
コマンドを使って、レポートを表示します。
allure serve /tmp/my_allure_results
レポートが表示されます。
公式のサンプルを数回実行しただけなのでTREND等は出ていませんが、各テストケースの結果詳細など見られます。
こちらは、失敗するテストを作って実行してみた結果の様子です。
pytestの出力した結果が右側に出ています。
pytest用のファイルを実際に実行したいものに置き換えれば、ここまでと同じ手順でAllureのレポートを出力し、確認することができます。
テストを複数回実行すれば、過去の分のレポートも(alluredirを変えない限りは)溜まっていきます。
この先
既存の自動テストスクリプトに全く手を入れたくない(=pytestの実行時のパラメータ変更だけでなんとかしたい)となると、出来るのはここまでかなと思います。
ここまででも自動テストのレポートをグラフィカルに表示することはできるので、一定の意味はあります。が、より詳細な、希望通りのレポートを出力したい、となると、自動テストスクリプトにAllure関連のコードを入れていくことになります。
Allureの機能を使う
6.1.5. Allure Featuresにも書いてありますが、
- Steps
-
@allure.step
デコレータを付けたメソッドをテストメソッドから呼び出すことで、テストメソッドの中での段階を定義することができる - Seleniumを使ったテストをする場合、例えば「ログイン」等のステップを用意することで、レポートの見やすさがUP
-
- Attachments
- レポートに画像やHTMLなどを添付できる
- Descriptions
- レポートに詳細情報を付与できる(=HTMLなど書ける)
- Titles
- レポートに表示されるテスト名称を任意に設定できる
などができます。
この辺の具体的な使い方は別でまとめようと思います。