Pythonで書ける検証自動化:RobotFrameworkとは | 瀬戸内の雲のように

Pythonで書ける検証自動化:RobotFrameworkとは

Posted: 2018-02-26


スポンサーリンク

目次

背景

最近は働き方改革がトレンドになってますが、エンジニアにとっての働き方改革、つまり稼働削減といえば自動化です。なかでも検証自動化は品質向上の観点からも推奨されており、ある意味流行りと言えますし、永遠のテーマとも言えるかと思います。

RobotFrameworkとは

本題のRobotFrameworkですが、これはPythonをベースに作られており、Pythonでライブラリを自作したりできます。

個人的な間隔ですが、検証自動化のツールはRubyベースのものが多い気がしており(ソフトウェア開発系の自動化ならRspecやCucumberが有名ですし、サーバなどインフラ環境の自動化ではserverspecがよく使われています)、Pythonで書けるというのは貴重だと思います。
(Pythonが好きというわけではないですが)

RobotFrameworkの特徴

さて、そんなRobotFramework(以下RF)を使った感想を簡単にまとめると

  • 記述の柔軟性が高い
  • Pythonを知らなくても書ける(Pythonあまり関係ない)
  • 結果が見やすい

といったものが挙げられるかと思います。

それぞれ、もう少し詳細に説明してみます。

  

記述の柔軟性が高い

RobotFrameworkにはビルトインのキーワード(RF上で使えるコマンド的なもの)が用意されていますが、キーワードを組み合わせたものを独自キーワードとして定義し簡単に再利用することができます。これにより記述の抽象度が変えやすく、使う人や見せる人に合わせた記述がやりやすいです。

  

Pythonを知らなくても書ける(Pythonあまり関係ない)

これは良し悪しかもしれませんが、RFでは前述の通りキーワードを使ってテストシナリオを作成します。これはRobotFramework語とでも言える、一つの言語のようなものであり、Pythonとはほぼ無関係です。

故に、Pythonを知らなくても書けるし、逆に言うとPythonを知っているだけでは書けないということです。またそのキーワードを使った記法も少し独特で、学習コストは高めかもしれません。

一方、Pythonを使った記述も可能ではあり、Pythonで作った関数をRFのキーワードとして利用することができます。ただこれはPythonに限らずRubyやシェルスクリプトでもOKで、RFでやりにくい処理(jsonのパース等)は別スクリプトで書いたほうが良い場合もあるかと思います。
 
 

結果が見やすい

RobotFrameworkでは実行結果を自動的にHTMLとして出力してくれます。ただのテキストよりも見やすいので便利です。
ちなみにHTMLは後ほど実物をお見せします。

 

RobotFrameworkでHelloworld

ここからは実際にRFを使ってみます。

 

RobotFrameworkのインストール

まずはインストールです。これはpipで一発です。ちなみに環境はAmazon Linuxを想定しています。

# pip install robotframework
Collecting robotframework
  Downloading robotframework-3.0.2.tar.gz (440kB)
    100% |????????????????????????????????| 450kB 2.4MB/s
Installing collected packages: robotframework
  Running setup.py install for robotframework ... done
Successfully installed robotframework-3.0.2

簡単です。

Helloworldを書いてみる

では、最も初歩的なテストシナリオとしてHello world!!!と画面に表示するだけのシナリオを書いてみます。

# vim hello.robot
# -*- coding: utf-8 -*-
*** Test Cases ***
Say Hello World
        Log To Console   Hello world!!!

たったの4行です。

 

実行してみる

次に実行してみます。

# robot hello.robot
==============================================================================
Hello
==============================================================================
Say Hello World                                                       Hello world!!!
Say Hello World                                                       | PASS |
------------------------------------------------------------------------------
Hello                                                                 | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output:  /root/output.xml
Log:     /root/log.html
Report:  /root/report.html

こんな感じです。
"Say Hello World" というところの右側に "Hello World!!!"と表示していることがわかります。

 

結果を見る

さて先程説明した通りRobotFrameworkでは結果が自動生成されますので、そのHTMLを見てみます。

 
結果サマリ

 
結果詳細

まとめ

以上、RobotFrameworkの概要でした。また細かい使い方等は別記事にしていきたいと思います。


スポンサーリンク




コメント一覧


コメントを投稿する


お名前


コメント内容





TOP back