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の概要でした。また細かい使い方等は別記事にしていきたいと思います。


スポンサーリンク




コメント一覧

2021/04/08 01:49:48

tyncさん

Desire to get ready and send demonstrations at a faculty in a fashion? You will find numerous"how to" demonstrations thoughts. Employ manners along with our subjects of your own demonstration. In case you prefer to get the very best caliber for the writing mission, the article arrangement is really just a rather essential part. Learn the best way to prepare your own writing slice and earn every thing. https://campuscarbon.com/pro-papers-review/


2021/04/20 19:51:58

loyalさん

As stated by the College Board, the SAT article is"in regards to the actual life" The SAT Essay will be much like a faculty writing mission by. Just take the SAT and reveal and write.
http://www.referencement-ain.com/is-taking-the-sat-essay-worth-it.html
https://www.thessaliaradio.online/2021/04/02/what-are-cashier-duties/
http://www.kpnb.in/composing-a-history-essay/



コメントを投稿する


お名前


コメント内容





TOP back