
こんにちは。インテグレーションサービス本部の原です。
今回はオープンソースのテスト自動化フレームワークのRobot Frameworkを紹介します。
Robot Frameworkとは
Robot Framework (http://robotframework.org/) とは、受入テスト等での活用を想定したテストフレームワークです。
特徴として
- 無料 (オープンソースのため、誰でも利用可能)
- 簡単 (テキストでテストパターンの記述が可能で、特定言語知識は必須ではない)
- 柔軟性が高い(豊富なライブラリーがあり、自分でライブラリーの拡張も可能)
- 軽快(Python上で動作)
- 簡易レポート機能付
が挙げられます。
Robot Frameworkをつかえるようにする
準備するもの
- Python(2系、3系どちらでもOK)
Robot Framework本体のインストールはpipからできます。
pip install robotframework
以前別記事で紹介したSelenium用のライブラリーも公開されていますので、今回はこちらもpipからインストールしておきましょう。
また、Seleniumは別途WebDriverも必要です。
こちらから必要なWebDriverをダウンロードして、パスを通しておいてください。
Robot Frameworkをつかってみる
1.やりたいこと
今回は、
- Chromeを起動して、NCTのホームページにアクセスする
- ENGINEER BLOGを開く
- 結果を判定する
という一連の流れをRobot Frameworkで自動化してみます。ブラウザ操作はSeleniumを利用します。
2.テストシナリオ作成
Robot Frameworkのテストシナリオは、タブやスペース区切りのテキストファイルで記述ができます。
今回のシナリオは以下になります。
Robot Frameworkのテストシナリオ(scenario_selenium.robot)
*** Settings ***
Documentation Seleniumを使用したサンプル
Library Selenium2Library
*** Variables ***
${LOGIN URL} https://techceed-inc.com/
${BROWSER} chrome
*** TestCases ***
Seleniumテストサンプル
Open Browser ${LOGIN URL} ${BROWSER}
Title Should Be 日販コンピュータテクノロジイ株式会社(NCT)
Click Element xpath=/html/body/div/div/article/div[2]/ul/li[2]/a/img
Element Text Should Be xpath=/html/body/div[2]/div[1]/div/div/h1 ENGINEER BLOG
3.テスト実施
実行はrobotコマンドに2.で作成したテストシナリオファイルを渡してあげます。
robot scenario_selenium.robot
実行すると、コンソール上には下記の結果が表示されました。
==============================================================================
Scenario Selenium :: Seleniumを使用したサンプル
==============================================================================
Seleniumテストサンプル
Seleniumテストサンプル | PASS |
------------------------------------------------------------------------------
Scenario Selenium :: Seleniumを使用したサンプル | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
無事、テストはパスしたようです。
尚、テストの実行結果として下記のhtmlファイルが自動で出力されます。
こちらを見ると、どこで失敗したかや、どの手順でどのくらい時間がかかったか等も分かります。
便利ですね。
最後に
当記事ではSeleniumを使った例を紹介しましたが、他にもこちらの記事で紹介したSikuliX用のLibrary等、様々なツールに対応したLibraryが公開されており、それらを共通のI/Fで併用できる点が非常に強力です。
以上、テストフレームワークのRobot Frameworkの紹介でした。