Robot Frameworkを使ってみる(環境構築)

技術ネタ
Screenshot

興味はありつつこれまで触らずにいた Robot Framework に手を出してみようと思い、ついでに知見をまとめてみようと思います。

Robot Framework とは

Robot Framework はオープンソースのテストフレームワークです。決まった書式で作成されたテストケースに従って、自動的にテストを実行してその結果を見やすくまとめてくれます。

私がネットワークやサーバ関連の業務なのでそうそう使うこともないだろうと思っていましたが、リモートログインしたりコマンド実行して結果をチェックしたりなど、インフラの健全性チェックにも使えるなとわかったので、自分でもテストケース書いて試してみようかなと思います。

環境構築

Python 環境

Robot Framework は Python で実装されているので、まずは Python をインストールする必要があります。私は macOS を使っているので、Homebrew でインストールすることにします。この記事を書いている時点では、以下のコマンドで Python 3.14.2 がインストールされました。

$ brew install python3
...
$ which python3
/opt/homebrew/bin/python3
$ python3 -V
Python 3.14.2

検証環境は専用に分離しておきたいので、venv を使います。

$ mkdir ~/robot
$ cd ~/robot
$ python3 -m venv .venv
$ . .venv/bin/activate

Robot Framework のインストール

Robot Framework は Python のパッケージマネージャである pip でインストールできます。この記事を書いた時点では、7.4.1 がインストールされました。

$ pip install robotframework
Collecting robotframework
  Using cached robotframework-7.4.1-py3-none-any.whl.metadata (7.6 kB)
Using cached robotframework-7.4.1-py3-none-any.whl (806 kB)
Installing collected packages: robotframework
Successfully installed robotframework-7.4.1

テストライブラリのインストール

Robot Framework には標準で以下のテストライブラリが提供されています。

BuiltInテスト実行における基本的な(そしてよく使う)機能。
例:ログ出力、ループ制御、値の評価
Collections辞書、リストなどの操作
DateTime日付時刻情報の操作
Dialogsユーザーとの対話処理
OperatingSystemOS 関連
例:ファイルやディレクトリ操作、プログラム実行など
Processプロセスの制御
Screenshotテストを実行した環境でのスクリーンショット取得
String文字列操作、評価
TelnetTelnet プロトコルによる操作
XMLXML 文書の操作、検証用

これ以外の機能を使ったテストを実行したい場合は、適切なテストライブラリをインストールする必要があります。主なものは、公式サイトの Libraries に列挙されています。そのほかにもコミュニティで作成したものが https://github.com/marketsquare にまとめられています。
今回私は SSH 接続や、ルータのコンソールからの制御を試したかったので、SSH LibrarySerialLibrary をインストールしました。

$ pip install robotframework-pyserial robotframework-sshlibrary

Visual Studio Code 拡張機能のインストール

環境ができてもテストケースを書くのが辛いとやる気が失せてしまいます。幸い、各種保管機能やテスト実行が気軽にできる Visual Studio Code の拡張機能があるのでこちらをインストールします。
なお、いろいろ似たようなものがありますが、公式ドキュメントに記載があるので Robot Code をインストールすることにします。

これで、検証環境から Visual Studio Code を起動すると、使えるようになっていることが確認できます。

$ code .
Screenshot

今回はここまで。次は簡単なテストを書いてみます。

コメント

タイトルとURLをコピーしました