4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Robot Frameworkで始めるネットワークテスト自動化(第1回)

4
Last updated at Posted at 2025-12-11

オープンソースの Robot Framework というフレームワークを利用して、ネットワーク検証ができないか試してみました

本記事では、コンテナベースのネットワーク環境(containerlab)上で Robot Framework を使って OSPF ネイバー確認と Ping 疎通テストを自動化 する手順をまとめます

Robot Framework とは

ChatGPTさんによると、、、

ネットワークのテスト自動化というと、一般的には Ansible, PyTest, 自作スクリプト, RENAT などの選択肢がよく挙がります
しかし、実は Robot Framework(通称 Robot) がネットワーク検証と非常に相性のよいフレームワークであることはあまり知られていません

  • シンプルなテスト記法(キーワード駆動)
  • 豊富なライブラリ(SSH、REST API、JSON、ファイル操作など)
  • 拡張性(Netmiko や自作 Python ライブラリも簡単に呼べる)
  • 詳細なHTMLレポート生成
  • CI/CD に統合しやすい

といった特徴があり、ネットワークの状態確認、疎通検証、プロトコルテスト(OSPF/BGP)、コンフィグ取得 などを自動化するのに非常に適しています

実運用の前段検証、CIでの自動チェック、夜間バッチ、PoC環境の自動テストなどにも応用できます

今回の環境

今回確認した各バージョンは以下の通りです、Ubuntu上に Containerlab で環境構築しています

  • Ubuntu : 24.04.2 LTS
  • Containerlab 0.71.0
  • Arista cEOS : 4.35.0.1F

以下のように Containerlab に cEOS を 2台と Robot Framework 用のコンテナを構築しています

image.png

Arista cEOS 2台で OSPF ネイバー確立するようにコンフィグをいれています
Containerlab 用の yml など各ファイルは以下の通りです

▼ Containerlab 用の yml clab-ceos-rf.clab.yml

環境構築

Containerlab のインストールと Containerlab 上で動作させるルータ ( Arista cEOS ) と Robot Framework サーバのビルドを行います

Containerlab インストール

こちらのサイトにインストール方法は記載されています
手っ取り早くインストールしたい場合は、以下のコマンド一発で Containerlab と必要なソフトのインストールが完了します

curl -sL https://containerlab.dev/setup | sudo -E bash -s "all"

cEOS の準備

以下を参考に containerlab を動作させるサーバ上に cEOS のコンテナを作ってください
無料で利用できますが Arista の ページから cEOS イメージをダウンロードするのにアカウント登録が必要です

Robot Framework サーバのビルド

以下の手順でまずはRobot Framework サーバのコンテナをビルドします

# 今回の構成やコンフィグを一式 GitHub からダウンロード
git clone --depth=1 https://github.com/katsumi2018/clab-robotframework-ceos-ospf.git

# ディレクトリ移動
cd clab-robotframework-ceos-ospf

# ビルド
docker build -f Dockerfile.robot -t robotframework:latest .

docker imagesコマンドで以下のように表示されれば準備完了です

$ docker images
REPOSITORY       TAG         IMAGE ID       CREATED        SIZE
ceos             4.35.0.1F   fe76e130493f   2 hours ago    2.52GB
robotframework   latest      b28b55f2aa5c   21 hours ago   159MB
$

containerlab deploy

containerlab deployで検証環境が起動します。

containerlab deploy

以下のような表示が出れば OK です
image.png

Robot Framework で自動テスト実行してみる

テスト実行

ChatGPTさんにOSPFネイバー確認とPING疎通確認用の設定を書いてもらいました

これを利用してRobot Framework で自動テスト実行してみます

# Robot Framework のコンテナへログイン
docker exec -it clab-ceos-rf-ospf-rf1 bash

# Robot Framework のテスト(.robot ファイル)を実行
# /opt/robot/tests/ 内の .robot ファイルを実行
robot -d /opt/robot/results /opt/robot/tests/

実行すると以下のような結果が表示されます、正常な場合は「PASS」が表示されます

#  robot -d /opt/robot/results /opt/robot/tests/
==============================================================================
Tests
==============================================================================
Tests.Ospf Ping
==============================================================================
Check OSPF Neighbor From CEOS1                                        | PASS |
------------------------------------------------------------------------------
Ping CEOS1 to CEOS2 Interface                                         | PASS |
------------------------------------------------------------------------------
Ping CEOS1 to CEOS2 Loopback                                          | PASS |
------------------------------------------------------------------------------
Tests.Ospf Ping                                                       | PASS |
3 tests, 3 passed, 0 failed
==============================================================================
Tests                                                                 | PASS |
3 tests, 3 passed, 0 failed
==============================================================================
Output:  /opt/robot/results/output.xml
Log:     /opt/robot/results/log.html
Report:  /opt/robot/results/report.html
#

テスト結果確認

ブラウザから http://<サーバのIP>:8080/ にアクセスすると以下のような表示がされます
image.png

report.htmlを選択すると以下のような画面が表示されてすべてPASSしてることがわかります
image.png

参考に、cEOS-2 のOSPFを停止させた場合の結果は以下の通りになり、インターフェースアドレスの PING 以外は失敗してることが確認できます

image.png

最後に

Robot Framework で簡単なネットワークテスト自動化を実施してみました
コマンド一発で動作確認から結果表示までできるのは便利です
ただ、はじめて実施するテストする内容については、.robot ファイルの動作のチェックが必要なため、すこし時間がかかってしまいます
バージョンアップなど、過去のテストと同じ動作確認に威力を発揮すると思いました

次回は、もう少し踏み込んでルート切り替えのときの断時間測定をやってみたいと思います

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?