Jenkins
robotframework

JenkinsのRobot Framework Pluginを使ってみる

はじめに

前回の投稿ではRobot Frameworkを用いて、ルーターのテスト自動化を試してみました。
今回の投稿ではそのテスト自動化をJenkinsより実行してみます。

Jenkins plugin for Robot Framework

https://wiki.jenkins.io/display/JENKINS/Robot+Framework+Plugin
JenkinsのRobot Framework用のプラグインです。プラグインとして主にできることとしては、
* Robot Frameworkの出力結果を読み込んで、テストのPASS/FAILの数をJenkins側に表示
* Robot Frameworkの出力結果(log.htmlとか)をJenkins側から表示させる

Pluginのインストール自体はJenkinsのPlugin Managerより簡単に導入することができます。

今回やってみたこと

基本的には前回の投稿にて実施したことをJenkinsから実施することです。

Jenkinsのジョブ設定

GitHubからソースコードの読み込み

Jenkins-rf-1
ここでは、単純にジョブの名前の設定と、前回作成したソースコード(netmiko/textfsmを用いたPythonとそれを用いたrobotファイル)を読み込む設定です。

ビルド設定とRobot Framework Plugin設定

Jenkins-rf-2

ビルドの設定

ビルドの設定では、以下のことをシェルスクリプトから実行しています
1. 今回のBuild IDの名前をつけたディレクトリを作成する
2. Robot Frameworkによって、テスト自動化を走らせる

1.の目的としては、Jenkinsでは何回もビルドが実行されるため、それぞれの試験結果を別のディレクトリに保存したいからというものです。

2.では画像では切れているのですが、以下の設定がされています。

/usr/local/bin/robot --outputdir ${BUILD_ID}_report -v IP:192.168.1.34 -v user:test -v pass:test -v hostname:xrv1 -v ifname:Gi0/0/0/0 ifshut_noshut.robot

前回の投稿に無いオプションとしては--outputdirにて結果ファイルの出力先を変更していることです。
目的としては、前節と同様に、「それぞれの試験結果を別のディレクトリに保存したいから」です。

Robot Framework Plugin設定

以下の2点を設定するだけです。
1. Robot Frameworkの出力ファイルが置かれるディレクトリの場所
2. Jenkinsの結果の閾値
1.については、前節のoutputdirオプションにて設定したディレクトリとなります。
2.についてはお好みでどうぞ!

ビルドの実行と結果の閲覧

ではビルドを実行してみましょう。

ビルド実行

run_build
左のメニューのビルド実行から実行することができます。

console1
ビルド中のコンソール出力は上記のところから見ることができます。

console2
コンソール出力としてはCLIから実行されるものと同一ですね。

結果の閲覧

result1
ビルドが終了したら、該当のビルド結果を見てみると、上のようにRobot Frameworkの結果を見ることができます。
今回の試験では7テスト項目中、全ての項目がPassしていることがわかります。
ここで、上のOpen log.htmlのリンクから結果のhtmlを見てみると、

result2
うーん、エラーで見えないですね。
このエラーでぐぐってみると、https://issues.jenkins-ci.org/browse/JENKINS-32118 で解決できるっぽい。こちらのコメントを実施してみて、もう1回ビルドした結果(log.html)を見てみると、

result3
無事結果をみることができました。

おわりに

JenkinsのRobot Framework Pluginを試してみました。
Jenkinsを介すことで、さらにユースケースの幅が広がると思います。
また、個人的にはwebブラウザ上で直接それぞれのビルドの結果を閲覧できることが強力だと思います。