スポンサーリンク
最近は働き方改革がトレンドになってますが、エンジニアにとっての働き方改革、つまり稼働削減といえば自動化です。なかでも検証自動化は品質向上の観点からも推奨されており、ある意味流行りと言えますし、永遠のテーマとも言えるかと思います。
本題のRobotFrameworkですが、これはPythonをベースに作られており、Pythonでライブラリを自作したりできます。
個人的な間隔ですが、検証自動化のツールはRubyベースのものが多い気がしており(ソフトウェア開発系の自動化ならRspecやCucumberが有名ですし、サーバなどインフラ環境の自動化ではserverspecがよく使われています)、Pythonで書けるというのは貴重だと思います。
(Pythonが好きというわけではないですが)
さて、そんなRobotFramework(以下RF)を使った感想を簡単にまとめると
といったものが挙げられるかと思います。
それぞれ、もう少し詳細に説明してみます。
RobotFrameworkにはビルトインのキーワード(RF上で使えるコマンド的なもの)が用意されていますが、キーワードを組み合わせたものを独自キーワードとして定義し簡単に再利用することができます。これにより記述の抽象度が変えやすく、使う人や見せる人に合わせた記述がやりやすいです。
これは良し悪しかもしれませんが、RFでは前述の通りキーワードを使ってテストシナリオを作成します。これはRobotFramework語とでも言える、一つの言語のようなものであり、Pythonとはほぼ無関係です。
故に、Pythonを知らなくても書けるし、逆に言うとPythonを知っているだけでは書けないということです。またそのキーワードを使った記法も少し独特で、学習コストは高めかもしれません。
一方、Pythonを使った記述も可能ではあり、Pythonで作った関数をRFのキーワードとして利用することができます。ただこれはPythonに限らずRubyやシェルスクリプトでもOKで、RFでやりにくい処理(jsonのパース等)は別スクリプトで書いたほうが良い場合もあるかと思います。
RobotFrameworkでは実行結果を自動的にHTMLとして出力してくれます。ただのテキストよりも見やすいので便利です。
ちなみにHTMLは後ほど実物をお見せします。
ここからは実際にRFを使ってみます。
まずはインストールです。これは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
簡単です。
では、最も初歩的なテストシナリオとして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の概要でした。また細かい使い方等は別記事にしていきたいと思います。
スポンサーリンク