1.はじめに
・Proxy環境の社内でRobotframeworkを導入しようとした際にうまくいかないことが多かったので、
備忘録目的で手順をまとめました。
・内容が長くなる為、「導入編」と「カスタマイズ編」で二部構成にしています。
2.各種基本情報
2.1.各種Ver.
No. | 項目 | Ver. | 備考 |
---|---|---|---|
1 | Windows10 OS | -- | 作業用ホストPCのOS |
2 | VirtualBox | 6.1 | システムを構築する仮想環境 |
3 | Ubuntu 18 | 18.04 | 仮想マシーンのOS |
4 | Pyenv | 1.2.21 | |
5 | Python 3 | 3.9.0 | |
6 | Pip 3 | 20.3.1 | |
7 | Selenium | 3.141.0 | |
8 | Robotframework | 3.2.2 | |
9 | Robotframework-seleniumlibrary | 4.5.0 | |
10 | Pyautogui | 0.9.52 | |
11 | Google Chrome | 87.0.4280.141 | |
12 | Chrome Driver | 87.0.4280.88 |
2.2.設定情報一覧
項番 | 項目 | 設定値 | 備考 |
---|---|---|---|
A-1 | Proxy ホスト名 | proxy.example.co.jp | ※あくまで例です(環境に合わせて変更してください) |
A-2 | Proxy ポート番号 | 8088 | ※あくまで例です(環境に合わせて変更してください) |
A-3 | Proxy ユーザ名 | myname | ※あくまで例です(環境に合わせて変更してください) |
A-4 | Proxy パスワード | mypassword | ※あくまで例です(環境に合わせて変更してください) |
B-1 | Ubuntu Root パスワード | adminpassword | ※あくまで例です(環境に合わせて変更してください) |
C-1 | Ubuntu ユーザ名 | ubuntu | ※あくまで例です(環境に合わせて変更してください) |
C-2 | Ubuntu ユーザパスワード | ubupassword | ※あくまで例です(環境に合わせて変更してください) |
3.環境構築作業
3.1.前提
・Windows10上にVirtualBoxがインストール済みであること
・VirtualBox上にUbuntu18.04が設置済みであること(「Server World」参照)
3.2.作業手順
(1)Rootユーザのパスワード設定
(2)UbuntuのProxy設定
(3)Gitの設定
(4)Pyenvの設定
(5)ChromeDriverの設定
(6)Robotframeworkの動作検証
3.3.構築作業
3.3.1.Rootユーザのパスワード設定
・Terminalを起動し下記コマンドを実行する
$ sudo passwd root
[sudo] password for ubuntu : ubupassword
Enter new UNIX password : adminpassword
Retype new UNIX password : adminpassword
passwd : password updated successfully
3.3.2.UbuntuのProxy設定
3.3.2.1.ネットワーク設定
① Ubuntu GUI 画面上部「▼」を押下
② メニューの「設定」を押下(画像左下アイコン)
⑤ HTTP、HTTPS プロキシのフォームに設定を入力する
3.3.2.2.bashrcの設定
$ echo 'export ftp_proxy="ftp://myname:mypassword@proxy.example.co.jp:8088/"' >> ~/.bashrc
$ echo 'export http_proxy="http://myname:mypassword@proxy.example.co.jp:8088/"' >> ~/.bashrc
$ echo 'export https_proxy="http://myname:mypassword@proxy.example.co.jp:8088/"' >> ~/.bashrc
$ source ~/.bashrc
※パスワードに「@」を含む場合は、「%40」に適宜置き換える(例:P@ss ⇒ P%40ss)
3.3.2.3.aptconfの設定
$ echo Acquire::http::proxy \"http://myname:mypassword@proxy.example.co.jp:8088/\"\; > /etc/apt/apt.conf.d/apt.conf
$ echo Acquire::https::proxy \"http://myname:mypassword@proxy.example.co.jp:8088/\"\; >> /etc/apt/apt.conf.d/apt.conf
$ echo Acquire::ftp::proxy \"http://myname:mypassword@proxy.example.co.jp:8088/\"\; >> /etc/apt/apt.conf.d/apt.conf
$ sudo apt -y update
$ sudo apt -y upgrade
※パスワードに「@」を含む場合は、「%40」に適宜置き換える(例:P@ss ⇒ P%40ss)
3.3.3.Gitの設定
$ sudo apt -y install git
$ gitconfig --global http.proxy http://myname:mypassword@proxy.example.co.jp:8088
$ gitconfig --global https.proxy http://myname:mypassword@proxy.example.co.jp:8088
※パスワードに「@」を含む場合は、「%40」に適宜置き換える(例:P@ss ⇒ P%40ss)
3.3.4.Pyenvの設定
3.3.4.1.Pyenvインストール
$ sudo apt -y install build-essential libffi-dev libssl-dev zlib1g-dev liblzma-dev libbz2-dev libreadline-dev libsqlite3-dev
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
$ echo 'eval "$(pyenv init -)"' >> ~/.profile
$ source ~/.profile
3.3.4.2.Pythonインストール
・インストールするPythonのVer.で作業を行うフォルダ(work)を作成
・作業フォルダ以下の環境のみPython3.9.0にする
$ pyenv versions
$ pyenv install 3.9.0
$ mkdir ~/work
$ cd ~/work
$ pyenv versions
$ pyenv local 3.9.0
$ pyenv version
$ python -m pip install --upgrade pip
$ python -m pip install robotframework==3.2.2
$ python -m pip install robotframework-seleniumlibrary==4.5.0
$ python -m pip install pyautogui==0.9.52
$ pip freeze
3.3.5.ChromeDriver設定
・GoogleChromeを使ったテストを想定
3.3.5.1.GoogleCromeインストール
①任意のブラウザを使い https://www.google.com/intl/ja_jp/chrome/ にアクセス
②64ビット .deb(Debian/Ubuntu 用)を選択
③「同意してインストール」を押下
④ポップアップ「google-chrome-stable_current_amd64.debを開く」表示
⑤「ファイルを保存する」を選択し、「OK」を押下
⑥「google-chrome-stable」が起動するので、「インストール」を押下
⑨インストールが完了したらポップアップを閉じる
⑩Terminalを起動し下記コマンドを実行
⑪表示されたバージョンを確認する
3.3.5.2.ChromeDriverインストール
①任意のブラウザを使い http://chromedriver.chromium.org/downloads/ にアクセス
②事前に確認したGoogleChromeのバージョンの頭二桁と同一のDriverを選択
(例:Current Releases > ChromeDriver 87.0.4280.88)
③「chromedriver_linux64.zip」リンクを押下
3.3.5.3.GoogleDrive動作検証
・下記操作でブラウザが起動しグーグルのトップ画面が表示されれば成功
$ cd ~/work
$ python
>>> from selenium import webdriver
>>> drv = webdriver.Chrome()
>>> drv.get('https://www.google.com/')
>>>
3.3.6.Robotframework動作検証
①「work」フォルダ内に移動し検証用のファイル(test.robot)を生成
$ cd ~/work
$ nano test.robot
②下記内容を記述し保存
*** Settings ***
Library Seleniumlibrary
*** Variables ***
${LOGIN URL} https://www.google.co.jp/
${BROWSER} Chrome
*** Test Cases ***
正規ログイン
ブラウザを起動しGoogleを表示する
[Teardown] Close Browser
*** Keywords ***
ブラウザを起動しGoogleを表示する
Open Browser ${LOGIN URL} ${BROWSER}
Title Should Be Google
③robotコマンド実行
$ python -m robot test.robot
④生成された「report.html」をgoogle-chromeコマンドで実行
4.まとめ
以上、Proxy環境下でのRobotoframeworkの基本設定でした。
私の環境で詰まったのは、Proxyパスワード部分に「@」を含む構成にしていた為、
うまく認証が通らずなかった部分でした。
次回「カスタマイズ編」では、Proxy認証が必要な環境でRobotframeworkを実行した際に
ブラウザ起動毎に求められるID/Password認証を自動化する為の手順をまとめます。