パイテストの紹介
pytest は非常に成熟したフル機能の Python テスト フレームワークであり、主に次の特徴があります。
1.シンプルで柔軟、使いやすい
2.パラメータ化をサポート
3. 単純な単体テストと複雑な機能テストをサポートでき、selenium/appnium などの自動テストやインターフェイスの自動テスト (pytest+requests) にも使用できます。
4. pytest には多くのサードパーティ プラグインがあり、pytest-selenium (統合されたセレン)、pytest-html (完全な html テスト レポートの生成)、pytest-rerunfailures (失敗した場合の繰り返し実行)、pytest - などの拡張機能をカスタマイズできます。 xdist(マルチCPUディストリビューション)など
5. テストケースのスキップと xfail 処理
6.ジェンキンスとうまく統合できる
7. レポート フレームワーク - allure は pytest もサポートします
Pytest の命名規則:
1. テスト ケース ファイルの名前は、test_ で始まるか、_test で終わる必要があります。
2. テスト関数に名前を付ける テスト クラスのメソッド名は、test_ で始まる必要があります。
3. テスト クラスの名前は Test で始まる必要があります。
テスト クラスにコンストラクターを含めることはできません
pytest テスト ケースの実行方法
1. 主機能モード
(1) すべて実行: pytest.main()
(2 はモジュールを指定します: pytest.main(['-vs','test_login.py])
(3 ディレクトリ指定: pytes.main(['-vs','./interface_testcase'])
(4 nodeid を使用して、実行するユース ケースを指定します。nodeid は、モジュール名、セパレーター、クラス名、メソッド名、および関数名で構成されます。
pytest.main(['-vs','./interface_testcase/test_interface.py::test_04_func'])
pytest.main(['-vs','./interface_testcase/test_interface.py::Testinterface::test_04_func'])
2.コマンドラインモード
(1) すべて実行: pytest
(2) モジュールを指定: pytest -vs test_login.py
(3) ディレクトリを指定: pytes -vs ./interface_testcase
(4) nodeidでユースケースを指定して実行: nodeidは、モジュール名、セパレータ、クラス名、メソッド名、関数名で構成されます
pytest -vs ./interface_testcase/test_interface.py::test_04_func
pytest -vs ./interface_testcase/test_interface.py::Testinterface::test_04_func
詳細なパラメータの説明:
-s: print によって出力される情報を含む、デバッグ情報を出力することを示します。
-v: より詳細な情報を表示します
-vs: 2 つのパラメーターを一緒に使用する
-n: マルチスレッドまたは分散実行のユースケースをサポート
例: pytest -vs ./testcase/test_login.py -n 2
-return NUM: 失敗したケースの再実行、num 回の失敗後の再実行の回数
-x: 1 つのユース ケースでエラーが報告される限り、テストが停止することを示します。
--maxfall=2 : 2 つのユース ケースが失敗した場合は停止します
-k: テストケースのペース文字列に従ってテストケースを指定します
例: pytest -vs ./testcase -k "ao"
3. pytest.ini 構成ファイルを読み取って実行します
pytest.ini このファイルは、pytest 単体テスト フレームワークのコア構成ファイルです。
1. 場所: 通常、プロジェクトのルート ディレクトリに配置されます。
2. エンコーディング: ANSI である必要があります。notpad++ を使用してエンコーディング形式を変更できます。
3. 機能: pytest のデフォルトの動作を変更する
4. 実行ルール: メイン機能モードまたはコマンド モードで実行されているかどうかにかかわらず、この構成ファイルを読み取ります。
pytest がテスト ケースを実行する順序:
unittes: 実行順序を決定する ASCII のサイズ
pytest: 上から下へのデフォルト
デフォルトの実行順序を変更、マーク マークを使用
@pytest.mark.run(order=2)
最後に, 私の記事を注意深く読んでくれたすべての人に感謝したいと思います. 相互主義は常に必要です. それは非常に価値のあるものではありませんが, 必要に応じて取り除くことができます:
これらの資料は、[ソフトウェア テスト] の友人にとって最も包括的で完全な準備倉庫である必要があります. この倉庫はまた、最も困難な旅を通して何万人ものテスト エンジニアに同行してきました.パートナーは下の小さなカードをクリックできます.受け取る