一緒に書く習慣を身につけましょう!「ナゲッツデイリーニュープラン・4月アップデートチャレンジ」に参加して10日目です。クリックしてイベントの詳細をご覧ください。
1.pytestの紹介
Pytestは非常に成熟したPythonユニットフレームワークであり、unittestよりも柔軟性があり使いやすいです。
Pytestは、Selenium、Requests、およびAppiumと組み合わせて、Web自動化、インターフェース自動化、およびAPP自動化を実現できます。
pytestはテストケースをスキップして失敗したケースを再試行できます
pytestとallureは、非常に美しいテストレポートを生成できます
pytestはJenkinsと継続的に統合できます
pytestには非常に強力なプラグインが多数あり、これらのプラグインは多くの実用的な操作を実現できます
一般的に使用されるプラグインは次のとおりです。
pytest-html:HTML形式で自動テストを生成します
pytest-xdist:テストケースの分散実行、マルチCPU同時実行
pytest-ordering:テストケースの実行順序を変更するために使用されます
pytest-rerunfailures:テストが失敗した後に再実行します
allure-pytest:美しいテストレポートを生成するため
2.ユースケース作成ルール
2.1モジュールの命名規則
モジュール名は、テストとアンダースコアで始まるか、アンダースコアとテストで終わる必要があります
2.2テストクラスの命名規則
テストクラス名はTestで始まる必要があり、initメソッドを持つことはできません
2.3試験方法の命名規則
テストメソッドは、テストアンダースコアで開始する必要があります
3.ユースケースの仕組み
3.1主な機能は実行されます
3.1.1すべてのユースケースを実行する
pytest.main()
复制代码
3.1.2指定されたモジュールを実行するためのユースケース
pytest.main(['-vs', 'test_login.py'])
复制代码
3.1.3指定されたディレクトリでユースケースを実行します。
pytest.main(['-vs', './interface_testcase'])
复制代码
3.1.4modeidを実行するユースケースを指定します
nodeidは、モジュール名、セパレーター、クラス名、メソッド名、関数名で構成されます
3.1.4.1指定されたモジュールで指定されたユースケースを実行する
pytest.main(['-vs', './interface_testcase/test_interface.py::test_04_func'])
复制代码
3.1.4.2指定されたモジュールの下で指定されたテストクラスの下で指定されたユースケースを実行する
pytest.main(['-vs', './interface_testcase/test_interface.py::TestInterface::test_03_zhiliao'])
复制代码
3.2コマンドラインモード
3.2.1すべて実行
pytestを直接実行する
3.2.2指定されたモジュールを実行するためのユースケース
pytest -vs test_login.py`
复制代码
3.2.3指定されたディレクトリでユースケースを実行します
pytest -vs ./interface_testcase
复制代码
3.2.4modeidを実行するユースケースを指定します
5.2.4.1指定されたモジュールで指定されたユースケースを実行する
pytest -vs ./interface_testcase/test_interface.py::test_04_func
复制代码
3.2.4.2指定されたモジュールの下で指定されたテストクラスの下で指定されたユースケースを実行する
pytest -vs ./interface_testcase/test_interface.py::TestInterface::test_03_zhiliao
复制代码
3.3 pytest.ini構成ファイルを読み取って実行する(最も一般的な方法)
pytest.iniファイルは、pytestユニットテストフレームワークのコア構成ファイルです。
3.3.1場所
通常、プロジェクトのルートディレクトリにあります
3.3.2エンコーディング
ANSIである必要があります。notepad++を使用してエンコード形式を変更できます
3.3.3機能
pytestのデフォルトの動作を変更します
コンテンツの例は次のとおりです。
[pytest]
addopts = -vs # 命令行的参数,用空格分隔
testpaths = '../pytest_project' # 测试用例的路径
python_files = test*.py # 模块名的规则
python_classes = Test* # 类名的规则
python_functions = test # 方法名的规则
复制代码
実行ルール:実行中のメイン関数であるかコマンドラインモードで実行されているかにかかわらず、この構成ファイルを取得して読み取ります