Python自動テストフレームワーク学習日記

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方法里面的用例")
  •  

おすすめ

転載: blog.csdn.net/woaisjm/article/details/112816325