13
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ベリサーブAdvent Calendar 2019

Day 2

SeleniumWebDriverとPythonで自動化したテストのレポートをAllureで出力するところまで

Last updated at Posted at 2019-12-01

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の場合も、公式に書いてあるので参考にしてください。

6. Python | Allure Framework

手順は簡単で、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

レポートが表示されます。

allure_sample_result.PNG

公式のサンプルを数回実行しただけなのでTREND等は出ていませんが、各テストケースの結果詳細など見られます。

こちらは、失敗するテストを作って実行してみた結果の様子です。

Allure-NG例.PNG

pytestの出力した結果が右側に出ています。

pytest用のファイルを実際に実行したいものに置き換えれば、ここまでと同じ手順でAllureのレポートを出力し、確認することができます。

テストを複数回実行すれば、過去の分のレポートも(alluredirを変えない限りは)溜まっていきます。

この先

既存の自動テストスクリプトに全く手を入れたくない(=pytestの実行時のパラメータ変更だけでなんとかしたい)となると、出来るのはここまでかなと思います。

ここまででも自動テストのレポートをグラフィカルに表示することはできるので、一定の意味はあります。が、より詳細な、希望通りのレポートを出力したい、となると、自動テストスクリプトにAllure関連のコードを入れていくことになります。

Allureの機能を使う

6.1.5. Allure Featuresにも書いてありますが、

  • Steps
    • @allure.stepデコレータを付けたメソッドをテストメソッドから呼び出すことで、テストメソッドの中での段階を定義することができる
    • Seleniumを使ったテストをする場合、例えば「ログイン」等のステップを用意することで、レポートの見やすさがUP
  • Attachments
    • レポートに画像やHTMLなどを添付できる
  • Descriptions
    • レポートに詳細情報を付与できる(=HTMLなど書ける)
  • Titles
    • レポートに表示されるテスト名称を任意に設定できる

などができます。

この辺の具体的な使い方は別でまとめようと思います。

13
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?