pytestでのパフォーマンステスト

Pythonによるテスト入門

Alexander Levin

Data Scientist

パフォーマンステストとは

【パフォーマンス】 システム資源をどれだけ効率的に使ってタスクを達成するか。

【パフォーマンステスト】 ソフトウェアの性能を測定するテスト。

Pythonによるテスト入門

重要になる場面

リソース:

  • 実行時間
  • CPU
  • RAM
  • その他の資源

ケース:

  • Web サイトの速度最適化
  • アプリが数百万リクエストを受信
  • ロボット掃除機の経路計画
Pythonによるテスト入門

benchmark フィクスチャ

インストール:

pip install pytest-benchmark
# Example_1.py
import time
def test_func(benchmark):
    benchmark(time.sleep, 1)

CLI コマンド:

pytest Example_1.py
Pythonによるテスト入門

ベンチマーク結果

CLI 実行後の結果: pytest 実行後のベンチマーク結果

time.sleep(1)time.sleep(3) にした場合: time.sleep を 1 から 3 にした場合の pytest ベンチマーク結果

Pythonによるテスト入門

benchmark デコレータ

# Example_2.py
import time
def test_func(benchmark):
    @benchmark
    def sleep_for_1_sec():
        time.sleep(1)

CLI コマンド:

pytest Example_2.py
Pythonによるテスト入門

まとめ

  • パフォーマンステスト: ソフトウェアの性能を測定するテスト。
  • リソースは通常有限。
  • リソース制約下で有用。
  • pytest-benchmark フィクスチャの使い方:
    • benchmark を直接呼ぶ
    • @benchmark デコレータを使う
  • 結果は秒単位の実行サンプル統計を示す。
Pythonによるテスト入門

Ayo berlatih!

Pythonによるテスト入門

Preparing Video For Download...