Allureレポーターを任意のPythonテストフレームワークに接続する

自動化には、人間が読める形式のテストレポートが必要です-テスト対象、テスト手順、結果。 これを行うために、 アリュールレポートシステムがあります。







アリュールは、よく知られているほとんどのテストフレームワークでサポートされており、未知の場合は、いわゆるアダプターを記述する必要があります。







アリュールを任意のフレームワークに接続する方法、またはまったく接続しない方法







アリュールの使用は、2つの独立したステップで構成されます。







  1. すべてのテストアクション、いわゆるallure-resultsを含むjsonの生成。







  2. 収集した結果に関するレポートを生成します(java8が必要であり、allureユーティリティをインストールする必要があります: https ://bintray.com/qameta/generic/allure2)。 allure-resultsはテストのかなり普遍的な記述であるという事実により、この項目はすべてのタイプのフレームワークで同じです。







    allure generate /some_path_to/allure-results
          
          





    魅力のある本格的なアダプターを作成し、任意のフレームワークに統合するには多少時間がかかるため、考えを説明するために最小限のアクションセットを使用します。 以下のコードは、 元の Javaのアリュールライフサイクルに関するレポートで提示されたアイデアをPythonに適合させたものです。









アリュールレポーターのカーネルのみをインストールします。







 pip install allure-python-commons
      
      





アリュール結果を生成する簡単なテストを書きましょう:







 # -*- coding: utf-8 -*- import allure_commons from allure_commons.utils import now, uuid4 from allure_commons.reporter import AllureReporter from allure_commons.logger import AllureFileLogger from allure_commons.model2 import Status from allure_commons.model2 import TestResult from allure_commons.model2 import TestStepResult def check_some_thing(some): print ("Some is %s" % some) return some if __name__ == '__main__': print ("Start main") # Init allure allurelogdir = "reportsx" logger = AllureReporter() file_logger = AllureFileLogger(allurelogdir) allure_commons.plugin_manager.register(file_logger) # Start testcase case_uuid = uuid4() testcase = TestResult(uuid=case_uuid, fullName='Hello, Habr') logger.schedule_test(case_uuid, testcase) # TestStep allure_step = TestStepResult(name=', habrateststepname (   )', start=now()) current_step_uuid = uuid4() logger.start_step(None, current_step_uuid, allure_step) check_some_thing('something') # origial procedure for testing logger.stop_step(current_step_uuid, stop=now(), status=Status.PASSED) testcase.status = Status.PASSED logger.close_test(case_uuid)
      
      





このコードを開始すると、「レポート」フォルダーに結果が生成されます







ご覧のとおり、テストステップ(start_stepおよびstop_step)を操作するためのコードはデコレーターパターンに完全に適合し、それによって実装する必要があります。







テストフレームワークに従ってこれらのコードブロックを配置し、手動テストの結果を使用して偽のテストを収集し、魅力を完全に生成すると、部門レポートを標準化するための既製のソリューションが得られます。








All Articles