テスト自動化環境構築

## 仮想環境を用意する

**「Vagrant」** と　**「VirturalBox」** をインストールする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55160/b9cf9bea-0236-4bf4-8949-6f1b7e55d9ff.png)


・**「Vagrant」**

https://developer.hashicorp.com/vagrant/install

「開発環境構築」と共有を簡単に行うためのツール

![ダウンロード (1).png](https://qiita-image-store.s3.amazonaws.com/0/55160/fcfe6a79-2228-73e7-e638-e725ced88adc.png)

・**「VirtualBox」**
プラットフォームはクロスプラットフォーム
Windowsの上でLinuxでの操作も可能

https://www.virtualbox.org/wiki/Downloads

![無題.png](https://qiita-image-store.s3.amazonaws.com/0/55160/bc316f73-3ae9-c79b-575c-47c94770a761.png)


```lang:実際の手順
コマンドプロンプトから以下のコマンドを投入
```
```lang:手順1
1.「vagrant init mvbcoding/awslinux」
```
```lang:手順2
Boxファイルの指定
2.「vagrant up --provider virtualbox」
　※多分失敗するので、失敗した場合は以下のファイルを操作する

C:\Users[username].vagrant.d\boxes\mvbcoding-VAGRANTSLASH-awslinux\2017.03.0.20170401\virtualbox\box.ovf
　　amzn-ami-hvm-201703020170401-x86_64-gp2-201704051103-guestのところを
　guestあたりまで削除する（3か所）
```
```lang:手順3
3.「vagrant box list」

         Boxファイルの一覧取得
```
```lang:手順4
4.「vagrant up」

         仮想マシンを起動
```
```lang:手順5
5.「vagrant ssh」

```

![仮想.png](https://qiita-image-store.s3.amazonaws.com/0/55160/20e1e3b6-5b7a-f843-05de-954458b27570.png)

 **Amazon Linuxの仮想マシン**にログイン状態


Amazon Linuxの仮想マシンにてJavaをインストール
1. **「sudo yum update」**
2. **「sudo yum install -y java-1.8.0-openjdk-devel」**
　 Javaをインストールする
3. **「sudo alternatives --config java」**
　※1 or 2 の入力を求められるので、2を入力

There are 2 programs which provide 'java'.


```lang:

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java

Enter to keep the current selection[+], or type selection number: 2
```

4. **「java -version」**
　※バージョンが表示されたらJavaのインストールは完了

```lang:
[vagrant@localhost var]$ java -version
openjdk version "1.8.0_141"
OpenJDK Runtime Environment (build 1.8.0_141-b16)
OpenJDK 64-Bit Server VM (build 25.141-b16, mixed mode)
```
# Jenkins設定

Amazon Linuxの仮想マシンにてJenkinsをインストール

```lang:
1.「sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo」
--2018-07-10 01:43:54--  http://pkg.jenkins-ci.org/redhat/jenkins.repo
Resolving pkg.jenkins-ci.org (pkg.jenkins-ci.org)... 52.202.51.185
Connecting to pkg.jenkins-ci.org (pkg.jenkins-ci.org)|52.202.51.185|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 71
Saving to: ‘/etc/yum.repos.d/jenkins.repo’

/etc/yum.repos.d/jenkins.repo 100%[=================================================>]      71  --.-KB/s    in 0s
2018-07-10 01:43:55 (5.59 MB/s) - ‘/etc/yum.repos.d/jenkins.repo’ saved [71/71]
2.「sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key」
3.「sudo yum -y install jenkins」
```
　　**Jenkins**をインストール

```lang:インストール
Installed:
  jenkins.noarch 0:2.131-1.1

Complete!
4.**「sudo service jenkins start」**

　　Jenkinsを起動
[vagrant@localhost var]$ sudo service jenkins start
Starting Jenkins                                           [  OK  ]
5.「sudo service jenkins status」

　　Jenkinsステータス
[vagrant@localhost var]$ sudo service jenkins status
jenkins (pid  23592) is running...
　※jenkins（pid xxxx）is running...となっていればOK

**Jenkins** へアクセス
1.「http://192.168.33.10:8080」へアクセス
　※アクセスできなかったら以下を設定
　　C:\Users[username]\Vagrantfile の31、35行目のコメントアウトを外す(以下赤枠の内容を有効にする)
```

```lang:※80番ポートが使用されていて起動できない場合

コマンドプロンプトで下記をたたく。

netstat -aon | findstr .0.0:80
全てタスクをkillする。

■各タスクで何が使用されているか確認
tasklist | findstr XXXX
```

2.**「vagrant reload」**

　　Vagrantを再起動

３. **「vagrant status」**
仮想マシンの起動状態を確認

default                   running (virtualbox)となっていればOK
４.**「Jenkins」の初期設定**
インストールが完了したら、Webブラウザで「http://192.168.33.10:8080」
にアクセスすると、初期設定画面が表示される。ここでJenkinsへの初回アクセス時には意図しないユーザーによる設定を防ぐための「アンロック」作業が必要となります。

![FireShot Capture 119 - Sign in [Jenkins] - http___192.168.33.10_8080_login_from=%2F.png](https://qiita-image-store.s3.amazonaws.com/0/55160/5656ee16-3903-c4c2-c452-439a982afdad.png)


ここで画面に表示されたファイル（ここでは「/var/lib/jenkins/secrets/initialAdminPassword」）に記載されているパスワードを入力して「Continue」をクリックするとアンロックが完了し、Jenkinsの初期設定作業を開始できます。
次に行うのはインストールするプラグインの設定になります。

3.　**右側の「Select plugins to Install」**　を選択

![FireShot Capture 120 - SetupWizard [Jenkins] - http___192.168.33.10_8080_.png](https://qiita-image-store.s3.amazonaws.com/0/55160/6f589950-8fbd-61e2-78e4-00f56c0b03eb.png)


3.　**「Jenkinsのログインページ」**　を確認

　　ログインしてみる。問題が無ければJenkinsはひとまず。
![jenkins.png](https://qiita-image-store.s3.amazonaws.com/0/55160/62da818f-2e99-8171-299c-f7a9cb3b7c97.png)


　 **Jenkins**のトップページ
![FireShot Capture 121 - ダッシュボード [Jenkins] - http___192.168.33.10_8080_.png](https://qiita-image-store.s3.amazonaws.com/0/55160/a15124ac-41ee-f67d-381e-2dc215ff4c15.png)


```lang:仮想（Xvfb）ディスプレイをインストール
Xvfbの、vは仮想(Virtual)、fbはフレームバッファ(Frame Buffer)です。
ペイント.png (30.2 kB)

1.**「sudo yum -y install xorg-x11-server-Xvfb」**
xvfbインストール

Installed:
  xorg-x11-server-Xvfb.x86_64 0:1.15.0-26.41.amzn1

Dependency Installed:
  libXdamage.x86_64 0:1.1.3-4.7.amzn1                          libXdmcp.x86_64 0:1.1.1-3.8.amzn1
  libXfixes.x86_64 0:5.0.1-2.1.8.amzn1                         libXmu.x86_64 0:1.1.1-2.8.amzn1
  libXt.x86_64 0:1.1.4-6.1.9.amzn1                             libXxf86vm.x86_64 0:1.1.3-2.1.9.amzn1
  libdrm.x86_64 0:2.4.52-4.12.amzn1                            libpciaccess.x86_64 0:0.13.1-4.1.11.amzn1
  libunwind.x86_64 0:1.1-10.8.amzn1                            libxkbfile.x86_64 0:1.0.6-1.1.6.amzn1
  mesa-dri-drivers.x86_64 0:10.1.2-2.35.amzn1                  mesa-dri-filesystem.x86_64 0:10.1.2-2.35.amzn1
  mesa-dri1-drivers.x86_64 0:7.11-8.7.amzn1                    mesa-libGL.x86_64 0:10.1.2-2.35.amzn1
  pixman.x86_64 0:0.32.4-4.11.amzn1                            xkeyboard-config.noarch 0:2.6-6.6.amzn1
  xorg-x11-server-common.x86_64 0:1.15.0-26.41.amzn1           xorg-x11-xauth.x86_64 1:1.0.2-7.1.4.amzn1
  xorg-x11-xkb-utils.x86_64 0:7.7-4.8.amzn1

Complete!
2.「sudo vi ~/.bash_profile」ファイルを開く
3.「export DISPLAY=:1」を追加する
```

```lang:ChromeDriverをインストール
1.「gem install chromedriver-helper」

Fetching: mini_portile2-2.3.0.gem (100%)
Successfully installed mini_portile2-2.3.0
2.「wget https://chromedriver.storage.googleapis.com/2.31/chromedriver_linux64.zip」
3.「unzip chromedriver_linux64.zip」
4.「sudo mv chromedriver /usr/bin/」
5.「sudo chown root:root /usr/bin/chromedriver」
```

```lang:GoogleChromeをインストール
1.「sudo vi /etc/yum.repos.d/google-chrome.repo」
※google-chrome.repo に以下の内容を記入
2.「[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub」
3.「curl https://intoli.com/install-google-chrome.sh | bash」
4.「sudo yum install -y google-chrome-unstable libOSMesa google-noto-cjk-fonts」
```

```lang:RVMをインストール
1.「sudo su -」
2.「curl -L get.rvm.io | bash -s stable」
3.「rvm group add rvm "$USER"」
4.「source /etc/profile.d/rvm.sh」
5.「curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -」
6.「curl -L get.rvm.io | bash -s stable」
7.「source /usr/local/rvm/scripts/rvm」
```

```lang:Rubyをインストール
言語はRubyを現状使用しております。
1.「rvm list known」
2.「rvm install 2.4.1」

Searching for binary rubies, this might take some time.
No binary rubies available for: amazon/2017.03/x86_64/ruby-2.4.1.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for amazon.
Installing requirements for amazon.
Installing required packages: patch, bison, libffi-devel, libtool, patch, readline-devel, sqlite-devel, zlib-devel, libyaml-devel, openssl-devel..............
Requirements installation successful.
3.「rvm use 2.4.1 --default」
　※.bashrcまたは.bash_profileに下記を追記する	
". /usr/local/rvm/scripts/rvm
```

```lang:SeleniumWebdriverをインストール
1.「gem update」
2.「gem list selenium」
3.「gem install selenium-webdriver」

Successfully installed selenium-webdriver-3.13.0
4.「gem list selenium」

*** LOCAL GEMS ***

selenium-webdriver (3.13.0)
```

```lang:日本語フォントをインストール
日本語の文字化けを防ぐため
1.「wget https://noto-website-2.storage.googleapis.com/pkgs/Noto-hinted.ziphttps://qiita.com/onorioriori/items/4fa271daa3621e8f6fd9」

FINISHED --2018-07-10 02:24:37--
Total wall clock time: 22s
Downloaded: 2 files, 1.1G in 21s (52.0 MB/s)
2.「unzip Noto-hinted.zip」
3.「mkdir -p /usr/share/fonts/opentype/noto」
4.「cp *otf *ttf /usr/share/fonts/opentype/noto」
5.「fc-cache -f -v」
```