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)を操作するためのコードはデコレーターパターンに完全に適合し、それによって実装する必要があります。


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



Source: https://habr.com/ru/post/J350480/


All Articles