Help us understand the problem. What is going on with this article?

Robot Frameworkとは

More than 1 year has passed since last update.

この記事は「Robot Framework Advent Calendar 2017 - Qiita」の1日目の記事です。

この記事では、Robot Frameworkとは何かというものと、そもそもAdvent Calendarを始めたきっかけを書いていこうと思います。

 

はじめに

今年、Robot Framework にふれる機会がありました。

幸いなことに、既存のRobot Frameworkを使ったテストコードがあったため、どのように使われるのかが分かりやすい状況でした。

また、Robot Frameworkはドキュメントがしっかりしていたため、既存のソースコードの意味も理解しやすかったです。

一方、新規のテストコードを書こうと思った時には悩みました。

既存のテストコードとドキュメントをきちんと読めば何とか書けたものの、クックブック的な情報がなかったので、時々悩みました。

ということで、クックブック的な記事をいくつか書きました。

 

とはいえ、まだまだRobot Frameworkに関する記事、特に日本語の記事は少ない状況です。

そのため、

  • Robot Frameworkに詳しい方
  • Robot Frameworkを実際に使っている方
  • Robot Frameworkを試してみた方

からもRobot Frameworkに関する日本語の記事があれば嬉しいなと思い、このAdvent Calendarを始めました。

やってみた系の記事でも大歓迎ですので、ぜひAdvent Calendarへの登録をお願いします!

 

Robot Frameworkとは

ここからが本題です。

Robot Frameworkとは、Python製テスト自動化フレームワークになります。受け入れテストなどに使用されています。
http://robotframework.org/

また、オープンソースで開発されています。ソースコードはGitHubで公開されています。
https://github.com/robotframework/robotframework

2017/12/1現在のStar数は1,800超でした。10月頃に調べた時は1,700超でしたので、2ヶ月で100ほど増えているようです。

公式ドキュメントは英語ですが、とても充実しています。だいたいのことはドキュメントに記載されています。
Documentation - Robot Framework

また、有志の方により日本語訳されたドキュメントもあります。このおかげで、公式ドキュメントで難しいところも理解できました。ありがとうございます。
Robot Framework 和訳・日本語ドキュメント集 — RobotFramework和訳・日本語ドキュメント集

Robot Frameworkについては、日本語訳の「Robot Framework の紹介」のページが大変わかりやすいです。

このページに目を通していただくと、Robot Frameworkとは何かをおさえることができるかと思います。

 

実際のテストコード

とはいえ、実際にテストコードを見ないとどんなものかが分からないかと思います。

そのため、Python + Selenium のテストコードと、Robot Framework + Selenium のテストコードを掲載しておきます1

Python + Selenium

def test_GoogleでみんなのPython勉強会を検索する(self):
    browser = webdriver.Chrome()
    browser.get('https://google.co.jp')
    query_input = browser.find_element_by_name('q')
    query_input.send_keys('みんなのPython勉強会' + Keys.ENTER)
    # 結果出力と検証
    links = browser.find_elements_by_css_selector('h3 > a')
    for link in links:
        print(link.text)
    self.assertEqual(len(links), 10)

 

次に上記のコードをRobot Framework + Selenium に移植してみます。

Robot Framework + Selenium

*** TestCases ***
GoogleでみんなのPython勉強会を検索するテスト
    Open Browser  https://google.co.jp  Chrome
    Input Text  name=q  みんなのPython勉強会
    Press Key  name=q  \\13
    # 結果出力と検証
    ${links} =  Get Webelements  css=h3 > a
    :For  ${link}  In  @{links}
        \  ${text} =  Get Text  ${link}
        \  Log To Console  ${text}
    Length Should Be  ${links}  10

 

さらに、より日本語っぽく書いてみます。そのテストコードはこちらです。

*** TestCases ***
GoogleでみんなのPython勉強会を検索するテスト
    ChromeでGoogleを開く
    みんなのPython勉強会を検索する
    ${links} =  結果を取得する
    結果「${links}」をターミナルに出力する
    結果「${links}」は10件であること

上記のソースコード中の「ChromeでGoogleを開く」などは、以下のような定義2をすることで、テストコードの中で使えます。

*** Keywords ***
ChromeでGoogleを開く
    Open Browser  https://google.co.jp  Chrome
#...
結果「${links}」は10件であること
    Length Should Be  ${links}  10

 

Qiitaには、より実践的なテストコードを書かれた方もいらっしゃいますので、こちらも参照してみてください。
Robot drives on the web: Robot Framework & Selenium2Library - Qiita

 

こんな感じで進めていきますので、 Robot Framework Advent Calendar 2017 をどうぞよろしくお願いします。


  1. みんなのPython勉強会 #29 でLTした時のスライドより流用しています: Robot FrameworkでSeleniumを扱いやすくする - slideship.com。 

  2. Robot Frameworkでは、ユーザキーワードと呼びます。Pythonで言えば関数になります。 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした