Pytestの同時実行(14)


UI自動化テストケースであろうとAPI自動化テストケースであろうと、作成および使用するときは、各テストケースの実行の独立性に注意する必要があります。つまり、作成された各テストケースは互いに独立しているため、 Aの実行に失敗し、Bも失敗したことが原因です。詳細については、APIテストケースの記述仕様に関する記事を参照してください。多くのテストケースを作成するときは、その実行効率を考慮する必要があります。Pytestテストフレームワークでは、テストケースの実行速度を向上させるためにテストケースを同時に実行するためにpytest-xdistが提供されています。通常の状況では、テストケースの実行は特定のルールに従って順番に実行されます。その結果、一部のリソースは、実行されるたびに1つのテストケースしか占有できず、テストケースの実行を達成できません。リソース共有の場合、プラグインpytest-xdistプラグインはこの問題をうまく解決できます。一方で、リソースは共有されます。最初の考慮事項に基づいて、2番目のポイントはテスト実行の効率を改善することです。

これは主に特定のケースです。テストされたコードのソースコードは次のとおりです。

#!/usr/bin/python3
#coding:utf-8
import  pytest
import  time as t


def add(a,b):
   try:
      return a+b
   except Exception as e:
      return e.args[0]

@pytest.mark.parametrize('a,b,result',[
      (1,1,2),
      (1.0,1.0,2.0),
      (1, 1.0, 2.0),
      (1,0,1),
      ('','',''),
      ('hi ','wuya','hi wuya'),
      (0, '', "unsupported operand type(s) for +: 'int' and 'str'"),
      (1,'hi',"unsupported operand type(s) for +: 'int' and 'str'"),
       (1.0,'wuya',"unsupported operand type(s) for +: 'float' and 'str'"),
])
def test_add(a,b,result):
   t.sleep(1)
   assert  add(a,b)==result

注文の実行:

pytest -v test_time.py

次の図に示すように、実行後の出力結果情報は、実行時間が9秒を超えていることを示しています。

プラグインpytest-xdistと組み合わせて以下を実行します。実行時に一定数のプロセッサプロセスを指定して実行します。上記のテストコードは9秒以内で実行できます。実行コマンドは次のとおりです。

pytest -v -n 4 test_time.py

実行後の実行結果情報は下図のようになります。

以上のことから、実行速度は4秒以上であり、テスト実行の効率が大幅に向上していることがわかります。

もちろん、pytest-xdistプラグインを使用する場合は、実行中のプロセッサプロセスの数を指定する必要があります。また、-n autoを使用して、実行するCPUの数を指定することもできます。具体的な実行コマンドは次のとおりです。

pytest -v -n auto test_time.py

実行後の結果情報は次のとおりです。

実際には、あまり多くのプロセッサプロセスを指定することは一般的に推奨されていません。必ずしも多くのプロセッサプロセスを指定する方が効率的であるとは限りません。また、一定量のリソースと内部消費を消費するため、高すぎます。実行につながります。今のように効率が低下しますが、50と指定されていますが、実行時間が9秒を超えています。次の結果情報を参照してください。

pytest-xdistプラグインをpytest-htmlと完全に統合して、HTMLベースのテストレポートを生成することもできます。たとえば、この場合、テストレポートは実行後に自動的に生成されることが期待されます。実行されるコマンドは次のとおりです。

pytest -v -n 4 --html = report.html test_time.py

実行後、次の図に示すように、report.htmlのテストレポートが現在のディレクトリに生成されます。

最後に:メリット

テクノロジー業界では、技術スキルを向上させ、自動化プロジェクトでの実践的な経験を充実させる必要があります。これは、今後数年間のキャリア計画とテストテクノロジーの深さに非常に役立ちます。

ゴールデン9日とシルバー10日の面接シーズン、転職シーズンでは、面接の質問を整理することが長年の私の習慣になっています!以下は、近年の私のコレクションと並べ替えです。全体は[ソフトウェアテスト]を中心に構成されています。メインコンテンツには、Python自動化テストの独占ビデオ、Python自動化の詳細、インタビューの質問のフルセット、その他の知識コンテンツが含まれます。

ソフトウェアテストの友人にとっては、最も包括的で完全な面接準備ウェアハウスである必要があります。各モジュールをより適切に整理するために、インターネット上の多くの高品質のブログ投稿やプロジェクトも参照し、すべての知識ポイントを見逃さないように努めています。友人はこれらのコンテンツを利用してレビューを行い、BATJなどの大規模な工場からオファーを受け取りました。このウェアハウスは多くのソフトウェアテスト学習者にも役立ちました。あなたにも役立つことを願っています。

あなたと私が会い、あなたが何かを見つけることができますように!WeChatパブリックアカウントをフォローすることを歓迎します:[Sad Spicy Article] 216ページのソフトウェアテストエンジニアのインタビューブックを無料で受け取ります。そして、対応するビデオ学習チュートリアルは無料で共有できます!

おすすめ

転載: blog.csdn.net/weixin_50829653/article/details/112863788