はじめに
前回の投稿では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](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F100369%2Ffd521436-cb70-a651-1366-2ee0a9345e40.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=427211b4f82efd379c94e7909c6b7af5)
ビルド設定とRobot Framework Plugin設定
![Jenkins-rf-2](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F100369%2F58aabe15-ad77-4a3a-71bd-0b4a818143da.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c4c5c4dd604ee15ee0dc71d04a097934)
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点を設定するだけです。
- Robot Frameworkの出力ファイルが置かれるディレクトリの場所
- Jenkinsの結果の閾値
1.については、前節のoutputdirオプションにて設定したディレクトリとなります。
2.についてはお好みでどうぞ!
ビルドの実行と結果の閲覧
ではビルドを実行してみましょう。
ビルド実行
![run_build](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F100369%2F4c3008a1-f822-dff1-3c51-cd3838d3d1fa.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=9381cee8d0186b8b4a9544d5074b3a33)
![console1](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F100369%2F57e63466-cb68-0409-97ca-9b07c99da333.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=6048b1fa29c30c3be0bf1609f273d879)
![console2](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F100369%2Fef316ffb-60ff-d87f-c3fe-640ccb178a64.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=fce7c64654f4e6152d1ca151d340d32b)
結果の閲覧
![result1](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F100369%2F52c8777d-bdb4-9f7c-ee16-3999c7ee0c75.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=0f2c481e5d3319b64c9c74c679cfae9f)
![result2](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F100369%2F257a6045-119c-cc50-4464-162c77119396.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=7585e0fd3a25fba6f4406e3f56e6d24a)
![result3](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F100369%2F5b63f00e-ddd0-ee15-95aa-0049403b849f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=0fab5fb8a3cc08fa927c686e8b7f9c06)
おわりに
JenkinsのRobot Framework Pluginを試してみました。
Jenkinsを介すことで、さらにユースケースの幅が広がると思います。
また、個人的にはwebブラウザ上で直接それぞれのビルドの結果を閲覧できることが強力だと思います。