自動化

Robot Frameworkとは?Pythonのテスト自動化フレームワークの使い方・主要ライブラリを解説

Robot Frameworkは、テストの手順を「キーワード」で記述するオープンソースのテスト自動化フレームワークです。プログラミング未経験のメンバーでも読み書きしやすいプレーンテキスト形式が特徴で、Web・API・モバイルの受け入れテストからCI/CDでの自動実行まで幅広く使えます。本記事では、キーワード駆動テストの仕組みという基本から、pipでのインストール、最初のテスト作成、Browser・SeleniumLibraryなど主要ライブラリの選び方までを、2026年時点の最新版7系(7.4.2)に合わせて解説します。

まとめ:Robot Frameworkの要点

  • 正体:Pythonで動くキーワード駆動のテスト自動化フレームワーク。テスト手順を自然言語に近いキーワードで書く。
  • 最新版:7.4.2(2026年3月時点)。動作にはPython 3.8以降が必要。ライブラリ側はさらに新しいPythonを要求する場合がある(SeleniumLibrary 6系・Browser 20系はPython 3.10以降)。
  • Webテストの選択肢:従来のSeleniumLibraryに加え、PlaywrightベースのBrowserライブラリが有力。待機処理が自動化され、モダンなSPAで安定しやすい。
  • RPAとの違い:UiPathのような商用RPAツールとは別物。ただしタスク(Task)記法とrpaframeworkでRPA用途にも転用できる。
  • 導入コストpip install robotframework の1行で本体が入る。テスト対象に応じてライブラリを追加する。

Robot Frameworkとは:キーワード駆動テストとRPA・他ツールとの違い

Robot Frameworkは2005年にNokia Networksで生まれ、2008年にオープンソース化されたテスト自動化フレームワークです。開発はRobot Framework Foundationが支えており、本体はPythonで実装されています。最大の特徴は、テスト手順をコードではなくキーワードの並びで書く「キーワード駆動テスト」を採用している点にあります。

キーワード駆動テストの仕組み:手順をそのまま文章で書ける

キーワード駆動テストでは、「ページを開く」「文字を入力する」「表示を確認する」といった操作を、あらかじめライブラリが用意したキーワードとして呼び出します。次の例は、ログインページを開いてユーザー名を入力するテストです。プログラムの制御構文がほとんど表に出ないため、テスト仕様書に近い見た目になります。

*** Settings ***
Library           Browser

*** Test Cases ***
ログインできること
    New Page        https://example.com/login
    Fill Text       id=username    testuser
    Fill Text       id=password    secret
    Click           text=ログイン
    Get Text        id=welcome     ==    ようこそ

「Fill Text」や「Click」がキーワードです。テスト担当者は操作の意図を日本語のテストケース名で表現し、実際のブラウザ操作はライブラリのキーワードに任せます。この分業により、テストの読みやすさと保守性が高まります。同じキーワードの発想でユニットテストを書くPythonのpytestの使い方・書き方とは設計思想が異なり、Robot Frameworkは受け入れテスト(E2E)寄りです。

RPA・Selenium・Cucumberとの違い:何を選ぶべきか

名前に「Robot」が付くため、GSC上でも「ロボットプロセスの自動化フレームワーク」といったRPA関連の検索で表示されますが、Robot FrameworkはUiPathやPower Automateのような商用RPAツールとは別物です。GUIのドラッグ&ドロップで業務自動化を組むRPA製品と違い、Robot Frameworkはテキストでテストを記述するテスト自動化基盤です。ただしタスク(*** Tasks ***)記法とrpaframeworkライブラリを使えば、RPA用途に転用することもできます。

比較対象 記述方法 主な用途 Robot Frameworkとの関係
Selenium(素) Python等のコード ブラウザ操作 SeleniumLibrary経由で内部利用
Cucumber Gherkin(自然言語) BDD受け入れテスト 思想が近い競合。Robotはキーワード駆動
商用RPA(UiPath等) GUI 業務プロセス自動化 別カテゴリ。転用は可能だが主目的が違う

BDDでシナリオを自然言語記述したい場合はCucumberが候補になります。両者の思想は近く、Gherkin記法との比較はCucumberとは?Javaでのテスト自動化とGherkin記法の記事が参考になります。テスト自動化基盤としてはRobot Frameworkのキーワード再利用性が強みです。

対応するテスト対象:Web・API・モバイル・デスクトップ

Robot Framework本体はテストの実行エンジンで、実際に何を操作するかは追加するライブラリで決まります。Webブラウザ(Browser/SeleniumLibrary)、REST API(RequestsLibrary)、モバイルアプリ(AppiumLibrary)、データベース(DatabaseLibrary)など、対象ごとに専用ライブラリを組み合わせます。「java robot framework」で探されることもありますが、本体はPython実装で動きます。Javaアプリを直接テストするのではなく、UIやAPI越しにテストするか、Remoteライブラリインターフェースで外部プロセスと連携する形になります(JVM上で動かすJython実行はRobot Framework 5.0で廃止され、現在はPython 3.8以降のCPythonのみ対応)。

Robot Frameworkのインストール:Python環境からpipまで

導入はpipで完結します。テスト対象に必要なライブラリを追加していく構成です。

前提のPythonバージョンとpipでのインストール手順

最新のRobot Framework 7系はPython 3.8以降で動作します。ただしWebテスト用のSeleniumLibrary 6系やBrowser 20系はPython 3.10以降を要求するため、これから始めるならPython 3.10以上を用意しておくと後で詰まりません。本体のインストールとバージョン確認は次の通りです。

python -m pip install --upgrade pip
pip install robotframework
robot --version

robot --versionRobot Framework 7.4.2 (Python 3.x ...) のように表示されれば導入完了です。「robot framework version」で最新版を確認したい場合は、変動するためpip index versions robotframeworkまたは公式PyPIで確認してください。

仮想環境での分離とライブラリの追加

プロジェクトごとに依存を分けるため、仮想環境(venv)の中にインストールするのが基本です。テスト対象に応じてライブラリを足します。

python -m venv .venv
source .venv/bin/activate
pip install robotframework robotframework-requests
pip install robotframework-browser
rfbrowser init

Browserライブラリはrfbrowser initでPlaywrightのブラウザ本体を追加取得する点が、pipだけで完結する他ライブラリと異なります。この一手間を忘れると実行時にブラウザが見つからずエラーになります。

よくあるインストールエラーと対処

  • robotコマンドが見つからない:PATHが通っていない。仮想環境をactivateしたか、python -m robotで実行しているか確認する。
  • ImportError: No module named …:ライブラリ未インストール。pip listで対象ライブラリが入っているか確認する。
  • ライブラリがPythonバージョン非対応:SeleniumLibrary/BrowserはPython 3.10以降が必要。python --versionで確認し、古ければ新しいPythonの仮想環境を作り直す。

最初のテストを書いて実行する:.robotファイルの基本

Robot Frameworkのテストは拡張子.robotのプレーンテキストで書きます。ここでは構造・実行・変数という最小限の使い方をおさえます。

テストスイート・テストケース・キーワードの構造

1つの.robotファイルが「テストスイート」で、その中に複数の「テストケース」を並べます。共通処理は「ユーザーキーワード」として切り出して再利用します。セクションは*** Settings ***(ライブラリ読み込み)、*** Test Cases ***(テスト本体)、*** Keywords ***(自作キーワード)で区切ります。

*** Settings ***
Library           Browser

*** Test Cases ***
トップページが表示される
    サイトを開く
    Get Title    ==    サンプルサイト

*** Keywords ***
サイトを開く
    New Page    https://example.com

「サイトを開く」という自作キーワードにブラウザ操作をまとめ、テストケースからは意図だけを呼び出しています。手順が増えるほど、この分離が保守性に効いてきます。

robotコマンドでの実行とオプション

作成した.robotファイルはrobotコマンドで実行します。ディレクトリを指定すれば配下のスイートをまとめて動かせます。

robot tests/login.robot
robot --outputdir results tests/
robot --include smoke tests/

--outputdirで結果ファイルの出力先を、--includeでタグによる絞り込みを指定します。実行後はカレントにreport.htmllog.htmloutput.xmlが生成されます。

変数・セットアップ・ティアダウンの基本

値の再利用には変数を使います。Robot Framework 7で追加されたVAR構文を使うと、テストやキーワードの中で変数を素直に定義できます(従来のSet Variableより読みやすい)。テスト前後の準備・後始末はSuite SetupTest Teardownで指定します。

*** Settings ***
Library           Browser
Suite Setup       New Browser    chromium    headless=True
Suite Teardown    Close Browser

*** Test Cases ***
挨拶メッセージを検証
    VAR    ${expected}    ようこそ
    New Page    https://example.com/home
    Get Text    id=greeting    ==    ${expected}

主要ライブラリの選び方:Browser・SeleniumLibrary・Requests・Appium

Robot Frameworkの実力はライブラリで決まります。テスト対象別に代表的なものを、選び方の観点とともに整理します。

WebテストはBrowser(Playwright)かSeleniumLibraryか

Webの自動テストには2つの選択肢があります。長く使われてきたSeleniumLibrary(現行6.9系)はSeleniumベースで実績と情報量が豊富です。一方、比較的新しいBrowserライブラリ(現行20系)はMicrosoftのPlaywrightをベースにしており、要素の表示待ちを自動で行う「自動待機」が組み込まれている点が大きな違いです。JavaScriptで動的に描画されるSPAでは、明示的な待機(Wait)を書かずに済むBrowserの方がテストが安定しやすく、新規プロジェクトではBrowserを第一候補にする価値があります。既存のSelenium資産やドライバ構成を活かすならSeleniumLibraryを選びます。SeleniumのGridやServerの構成を検討する場合はSelenium GridとSelenium Serverの違いと適用シナリオが参考になります。

ライブラリ 基盤 待機処理 向いている場面
Browser Playwright 自動待機 新規・モダンSPA・安定性重視
SeleniumLibrary Selenium 明示的な待機が必要 既存Selenium資産・情報量重視

RequestsLibraryでのAPIテスト

REST APIのテストにはRequestsLibraryを使います。GET/POSTといったHTTPメソッドをキーワードで呼び、ステータスコードやレスポンスボディを検証できます。UIを介さないぶん高速で、フロントとバックエンドを分けてテストする構成に向きます。pip install robotframework-requestsで導入します。

AppiumLibrary・その他ライブラリ

モバイルアプリ(Android/iOS)のテストにはAppiumLibraryを使い、Appiumサーバー経由で実機・エミュレータを操作します。このほか、テスト前後のデータ準備に使うDatabaseLibrary、サーバー操作のSSHLibrary、Python標準機能を提供するBuiltIn(インストール不要・常時利用可)などがあり、テスト対象に応じて組み合わせます。

CI/CDへの組み込みとレポートの読み方

Robot Frameworkはコマンド1つで実行できるため、CIパイプラインに組み込みやすいのも利点です。

Jenkins等での自動実行

CIツールのジョブでrobotコマンドを実行し、生成されるoutput.xmlをRobot Framework用のプラグイン(Jenkinsの場合はRobot Framework plugin)で取り込むと、ビルドごとに成否とグラフが可視化されます。DockerとJenkinsを組み合わせた実行環境の作り方はDocker上でのJenkins環境構築が参考になります。CIでは--outputdirで結果を成果物ディレクトリに集約し、失敗時のみ通知する運用がよく使われます。

log.html・report.html・output.xmlの役割

実行のたびに3つのファイルが生成されます。役割を分けて使うと結果分析が速くなります。

  • report.html:テスト全体の合否サマリー。まず開くファイル。
  • log.html:各キーワードの実行ログ。失敗時はここで該当ステップを展開し原因を特定する。
  • output.xml:機械可読の生データ。CIプラグインでの集計や、rebotコマンドでのレポート再生成に使う。

導入・実行時のつまずき:バージョン不一致とlog.htmlでの原因特定

つまずきやすいのは環境とバージョンの不一致です。本体(Python 3.8+)とライブラリ(Python 3.10+のものがある)で要求バージョンが違うため、動かない場合はまずpython --versionpip listで本体・ライブラリのバージョンを突き合わせます。テスト実行時のエラーはlog.htmlで失敗キーワードを開くのが最短で、スクリーンショットやメッセージがそのまま残ります。旧版から移行する際は、Jython実行やPython 2系がRobot Framework 5.0で廃止されている点、キーワード名や引数仕様が変わっている場合がある点に注意し、公式のリリースノートで差分を確認します。

よくある質問

Robot Frameworkとは何ですか?

テスト手順を「キーワード」の並びで記述する、Pythonベースのオープンソーステスト自動化フレームワークです。プレーンテキストで読みやすく、Web・API・モバイルの受け入れテストやCI/CDでの自動実行に使われます。

Robot FrameworkはJavaで使えますか?

本体はPythonで動作します。かつてはJython経由でJVM上でも動きましたが、その実行方法は廃止されました。Javaアプリを対象にする場合は、UI/API越しにテストするか、Remoteライブラリインターフェースで連携します。

SeleniumLibraryとBrowserライブラリはどちらを使うべきですか?

新規プロジェクトやモダンなSPAでは、自動待機が組み込まれたBrowser(Playwrightベース)が安定しやすくおすすめです。既存のSelenium資産やドライバ構成を活かしたい場合はSeleniumLibraryが適します。

Robot Frameworkの最新バージョンは?

2026年3月時点で7.4.2です。動作にはPython 3.8以降が必要です。バージョンは更新されるため、最新はpip index versions robotframeworkや公式PyPIで確認してください。

Robot FrameworkはRPAツールですか?

主目的はテスト自動化で、UiPathのような商用RPAツールとは別カテゴリです。ただしタスク記法とrpaframeworkライブラリを使えば、RPA用途にも転用できます。

関連記事

資料請求

RELATED POSTS 関連記事