pytestは、次の機能を備えた非常に成熟したフル機能のPythonテストフレームワークです。
シンプルで柔軟性があり、使いやすい
パラメータ化をサポート
単純な単体テストと複雑な機能テストをサポートでき、セレン/アプニウムやその他の自動テスト、インターフェース自動テスト(pytest + requests)の実行にも使用できます。
Pytestには多くのサードパーティプラグインがあり、pytest-selenium(統合されたセレン)、pytest-html(完全なhtmlテストレポートの生成)、pytest-rerunfailures(失敗したケースの繰り返し実行)、pytest-などのカスタマイズされた拡張機能があります。 xdist(マルチCPUディストリビューション)など。
テストケースのスキップおよびxfail処理
jenkinsとうまく統合できます
レポートフレームワーク---- allureはpytestもサポートしています
Pytestをインストールする
pip install -U pytest
Pytestのユースケース設計の原則
テストクラスはTestで始まり、initメソッドを持つことはできません
test_で始まる関数
テストで始まるクラス
すべてのパッケージpakegeには__init__。pyファイルが必要です
assertを使用してアサートします
Pytestを実行する2つの方法
Pycharmで実行されているコード
pytest.main([“ test.py”])
Pycharmで実行されているコード
pytest test.py
指定されたクラスで指定されたメソッドを実行します
pytestファイル名::クラス名::メソッド名
Pytestパラメータの説明
-v説明:ユースケースが配置されているファイルやユースケースの名前など、ユースケースのより詳細な実行情報を出力できます。
-s説明:印刷情報など、ユースケースにチューニング情報を入力します。
-x:エラーのあるユースケース、実行をすぐに終了し、結果を出力する
-v:詳細なレポートコンテンツを表示することを意味します
-collect-only:実行されるすべてのユースケースが表示されることを示します
-lf:前回失敗したユースケースのみを実行します
-vv:詳細なテスト結果を表示します
-tb = no:ユースケースの失敗のエラーの詳細を表示しません
-tb = line:ユースケースが失敗した特定のコード行数を表示します
-tb = short:より詳細なエラー情報を表示します
-k "Keywords"説明: "keywords"を含むユースケースを実行します
-q注:コンソール出力を単純化すると、出力情報が上記の結果とは異なることがわかります。下の図には、合格結果の代わりに2つのドットがあります。
-maxfail = numユースケースエラーが指定された数に達したら、テストを停止します
m説明:特定のテストケースを実行します。ユースケースをもう一度変更して、新しいユースケースを追加しましょう
複数のタグを実行する場合は、次のように式を使用します
pytest -m "slow or fast" test_1.pyは、遅いロゴまたは速いロゴのユースケースを実行します
pytest -m "slow and fast" test_1.pyは、slow andfasterで識別されるユースケースを実行します
pytest -m「遅くて速くない」test_1.pyは、ロゴが遅くて速くないユースケースを実行します
注:「」(一重引用符)の後に-mを続けることはできません。「」(二重引用符)のみを使用できます。それ以外の場合は認識されません。
ini構成ファイル
pytest.iniファイルを作成します(書き込みを修正)
[pytest];書き込みを修正
;変数名を間違えることはできません
addopts = -vv-s;複数のパラメーター間のスペース
testpaths =…/ HC / huace;複数のディレクトリ間のスペース
python_files = test * .py; pythonファイルプレフィックス、カスタマイズ可能
python_classes = huace;クラス名を指定します
python_functions = test *;カスタマイズ可能なメソッド名を指定します
テスト機能をスキップ
テスト機能のスキップ:特定の条件により、特定されたテスト機能は実行されません。
- -コーディング:UTF-8 - -
pytestをインポートする
クラスTest():
def test(self):
print("执行的是testcase的用例")
@ pytest.mark.skipif(condition = 1 <2、reason = "1は2以下であるため、実行されません")
クラスhuace():
def haha(self):
print("执行的是haha方法里面的用例")