Python APIテスト環境構築ガイド|pytest・requestsをpip installして動作確認まで

📌 この記事はこんな方におすすめ

  • PythonでAPIテストの環境を一から構築したい方
  • pip installで何をインストールすればいいかわからない方
  • 仮想環境(venv)の使い方を学びたい方
  • pytest・requests・Playwrightを使ったAPIテストを始めたい方

この記事を読むとわかること

  • APIテストに必要なライブラリとインストールコマンド
  • 仮想環境(venv)を使った環境の分離方法
  • pytest.iniの設定でHTMLレポートを自動生成する方法
  • インストール後の動作確認まで一連の流れ

👨‍💻 筆者について

QAエンジニアとして実務でPython・pytest・requestsを使ったAPIテスト自動化を担当。本記事で紹介する環境構築手順は実際の業務で使用している方法をベースにしており、GitHubで全コードを公開中です。

PythonでAPIテストを始めようとしたとき、「pytestやrequestsは何をインストールすればいいの?」「仮想環境って必要?」と悩む方は多いです。最初につまずきやすいのが環境構築です。

この記事では、PythonでAPIテストに必要なライブラリのインストールから動作確認までを丁寧に解説します。コマンドをそのままコピペするだけで環境が整います。


00. Python APIテスト環境構築で必要なライブラリ一覧

APIテストに使うライブラリは大きく3種類です。

ライブラリ 役割 用途
requests HTTPクライアント APIにリクエストを送る
pytest テストフレームワーク テストを実行・管理する
pytest-html レポート生成 HTMLレポートを自動生成する
playwright ブラウザ自動化 UIテスト(E2Eテスト)を実行できる。APIテスト機能も利用可能。
pytest-playwright pytest連携 PlaywrightをpytestのFixtureで使う

💡 ポイント:requestsとPlaywrightはどちらか片方でOKです。シンプルにAPIテストだけするなら requests、UIテストと組み合わせるなら Playwright を選びましょう。


01. 仮想環境の作成(推奨)

仮想環境を使うと、プロジェクトごとにライブラリを分離できます。他のプロジェクトへの影響を防ぐため、最初に設定しておくことを強くおすすめします。

仮想環境の作成と有効化

# 仮想環境を作成
python -m venv venv

# 有効化(Windows)
venv\Scripts\activate

# 有効化(Mac/Linux)
source venv/bin/activate

有効化すると、ターミナルの先頭に (venv) が表示されます。

(venv) PS C:\Users\HP\Desktop\upwork>

💡 ポイント:仮想環境を有効化した状態でインストールすると、そのプロジェクトだけにライブラリが入ります。プロジェクトを終了したら deactivate で無効化できます。


02. ライブラリのインストール

① requestsベースの場合(シンプル構成)

pip install requests pytest pytest-html

② Playwrightベースの場合(UI+API両対応)

pip install playwright pytest pytest-playwright pytest-html
playwright install chromium

⚠️ 注意:playwright install chromium はブラウザのダウンロードが必要なため、初回は数分かかります。APIテストだけであれば省略できますが、将来UIテストと組み合わせる場合は入れておくと便利です。


03. インストールの確認

バージョン確認コマンド

# pytestのバージョン確認
pytest --version

# requestsのバージョン確認
python -c "import requests; print(requests.__version__)"

# playwrightのバージョン確認
playwright --version

正常にインストールされた場合の表示

pytest 9.0.2
2.32.3
Version 1.50.0

💡 ポイント:バージョン番号が表示されればインストール成功です。エラーが出た場合は次のセクションのハマりポイントを参考にしてください。


04. pytest.ini の設定

プロジェクトのルートに pytest.ini を作成しておくと、テスト実行のたびにHTMLレポートが自動生成されて便利です。

フォルダ構成

project/
├── pytest.ini        ← ここに作成
├── test_api.py
└── report.html       ← 実行後に自動生成される

pytest.ini の内容

[pytest]
addopts = --html=report.html --self-contained-html

設定後の実行方法

# このコマンドだけでHTMLレポートが自動生成される
pytest test_api.py -v

💡 ポイント:--self-contained-html をつけると、CSSや画像がHTMLに埋め込まれてファイル1つで完結します。GitHubやクライアントへの共有がしやすくなります。


05. 動作確認テスト

環境構築が完了したら、以下のコードで動作確認をしましょう。

# test_check.py
import requests

def test_environment_check():
    """環境構築の動作確認テスト"""
    response = requests.get("https://jsonplaceholder.typicode.com/users/1")

    assert response.status_code == 200
    assert response.json()["id"] == 1
    print("\n✅ 環境構築成功!APIテストが動作しています")
# 実行コマンド
pytest test_check.py -v -s

成功時の出力

test_check.py::test_environment_check
✅ 環境構築成功!APIテストが動作しています
PASSED

1 passed in 1.23s ✅

💡 ポイント:-s オプションをつけると print() の出力がターミナルに表示されます。動作確認時に便利です。


06. ハマりポイント

実装中に実際につまずいた箇所をまとめました。同じところでハマる方の参考になれば嬉しいです。


① pip install後にimportエラーが出る

インストールしたはずなのに ModuleNotFoundError が出るケースがあります。原因は複数のPythonがインストールされていて、pipとpythonが別々のものを指していることです。

# ❌ pipとpythonが別のバージョンを指している場合
pip install requests   # Python3.11にインストール
python test.py         # Python3.9で実行 → ModuleNotFoundError

# ✅ python -m pipを使うと確実に同じPythonにインストールされる
python -m pip install requests

💡 ポイント:pip の代わりに python -m pip を使うと、実行中のPythonと同じ環境にインストールされるので確実です。


② 仮想環境を有効化し忘れる

仮想環境を作成したのに有効化を忘れてグローバル環境にインストールしてしまうケースがよくあります。ターミナルの先頭を確認する習慣をつけましょう。

# ❌ 仮想環境が有効化されていない状態
PS C:\upwork> pip install requests  # グローバルにインストールされてしまう

# ✅ (venv) が先頭についていればOK
(venv) PS C:\upwork> pip install requests

⚠️ 注意:VSCodeを使っている場合、ターミナルを新しく開くたびに仮想環境が無効化されることがあります。.vscode/settings.json に設定を追加すると自動有効化できます。


③ playwright install を忘れてブラウザエラーが出る

pip install playwright だけではブラウザがインストールされないため、実行時にエラーになります。

# ❌ ブラウザがない状態で実行するとエラー
# playwright._impl._errors.Error: Executable doesn't exist

# ✅ ブラウザも別途インストールが必要
pip install playwright
playwright install chromium  ← これも必要!

💡 ポイント:APIテストだけなら playwright install は不要です。UIテストが必要になったタイミングで実行すればOKです。


④ pytest-htmlがないのに–htmlオプションを使う

pytest.ini--html=report.html を書いても、pytest-html がインストールされていないとエラーになります。

# ❌ pytest-htmlなしで実行するとエラー
# ERROR: unrecognized arguments: --html=report.html

# ✅ pytest-htmlをインストールしてから実行
pip install pytest-html
pytest test_api.py -v

💡 ポイント:まとめてインストールしておくと忘れません。pip install requests pytest pytest-html を一度に実行しましょう。


⑤ requirements.txtで環境を共有する

チームで開発する場合や、別のPCで同じ環境を再現したい場合は requirements.txt を使いましょう。

# 現在の環境をrequirements.txtに書き出す
pip freeze > requirements.txt

# requirements.txtから一括インストール
pip install -r requirements.txt

💡 ポイント:GitHubにコードをアップする際に requirements.txt も一緒にコミットしておくと、他の人がすぐに同じ環境を再現できます。ポートフォリオとしての完成度も上がります。


07. よくある質問(FAQ)

Q. Pythonのバージョンは何を使えばいいですか?
A. Python 3.9以上で動作します。できればPython 3.11以上を使用することをおすすめします。なお pytest 9 は Python 3.9以上が推奨されています。python --version で現在のバージョンを確認できます。

Q. 仮想環境は必ず使わないといけませんか?
A. 必須ではありませんが、強くおすすめします。仮想環境を使わないとライブラリのバージョン競合が起きやすく、後で環境が壊れる原因になります。最初から使う習慣をつけておくと安心です。

Q. requestsとPlaywrightどちらを使えばいいですか?
A. APIテストだけなら requests、UIテストとAPIテストを両方やるなら Playwright がおすすめです。よしさんのポートフォリオのようにUIとAPIを両方カバーするなら、Playwrightで統一するとコードベースがシンプルになります。

Q. pip installが遅いのですが?
A. ネットワーク環境によっては時間がかかることがあります。pip install --upgrade pip でpip自体を最新にすると改善することがあります。また pip install -i https://pypi.org/simple/ requests のように明示的にリポジトリを指定する方法もあります。

Q. requirements.txtとpyproject.tomlどちらを使えばいいですか?
A. 個人プロジェクトや学習用なら requirements.txt がシンプルで十分です。チーム開発や本格的なパッケージ管理が必要になったら pyproject.toml(Poetry等)を検討しましょう。ポートフォリオ用には requirements.txt で十分です。


08. まとめ

PythonでAPIテストを始める場合、まずは環境構築を正しく行うことが重要です。pytestとrequestsをインストールし、仮想環境を設定すれば、すぐにAPIテストを書き始められます。

この記事では、APIテストに必要な環境構築の手順を解説しました。

手順 コマンド
仮想環境の作成 python -m venv venv
仮想環境の有効化 venv\Scripts\activate(Windows)
ライブラリのインストール pip install requests pytest pytest-html
pytest.iniの設定 addopts = --html=report.html --self-contained-html
動作確認 pytest test_check.py -v -s

環境構築は一度やってしまえば後は快適です。仮想環境の作成・ライブラリのインストール・pytest.iniの設定の3ステップを押さえておけば、すぐにAPIテストを書き始められますよ💪

タイトルとURLをコピーしました