ENGINEER BLOG

ENGINEER BLOG

Robot Frameworkの紹介

こんにちは。インテグレーションサービス本部の原です。

今回はオープンソースのテスト自動化フレームワークの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ファイルが自動で出力されます。
こちらを見ると、どこで失敗したかや、どの手順でどのくらい時間がかかったか等も分かります。
便利ですね。

pic

最後に

当記事ではSeleniumを使った例を紹介しましたが、他にもこちらの記事で紹介したSikuliX用のLibrary等、様々なツールに対応したLibraryが公開されており、それらを共通のI/Fで併用できる点が非常に強力です。
以上、テストフレームワークのRobot Frameworkの紹介でした。