SauceLabs導入ガイド(まとめ)

# 利用できるOS/ブラウザの種類

| OS | InternetExplorer | Google Chrome | Firefox | Opera | Safari | OS |
|:-----------|:------------|:------------|:------------|:------------|:------------|:------------|
| iOS |||||| 4.3〜7.1(iPhone/iPad) |
| Android |||||| 4.0〜4.3 |
| Windows 8.1 |11|26〜34, beta|2〜28|9〜10||  |
| Windows 8 |10|26〜34, beta|2〜28|9〜10||  |
| Windows 7 |8〜11|26〜34, beta|2〜28|9〜12|5|  |
| Windows XP|6〜8|26〜34, beta|2〜28|9〜12|3〜5|  |
| OS X Mavericks||31〜33|4〜28||7|| 
| OS X Snow Leopard||27〜33, beta|3.6〜28||5|| 
| OS X Mountain Lion||27〜33, beta|4〜28||6|| 
| Linux||26〜33|3.6〜28|12||| 

# 環境構築＆テスト作成
* 以下を参考にしてみてください
 * [Rspecのテスト](http://qiita.com/oh_rusty_nail/items/db619a2ebb042b187629)
 * [Cucumberのテスト](http://qiita.com/oh_rusty_nail/items/8ed184db60571a75cce7)

# テスト結果の公開設定
* 公開設定はテスト毎に設定可能
* デフォルトはteam
* 公開範囲はTestSessionDetailsページ(テスト結果が見られるページ)のVisibilityで設定可能
* 公開範囲は以下の５つから選択可能
 * public
 * public restricted
 * share
 * team
 * private

### 公開範囲 public
* URLを知っていれば誰でも閲覧可能
* 以下全てが閲覧可能
 * Commands(実行したテストの内容)
 * Screencast(テストを記録した動画)
 * SeleniumLog
 * Metadata
* public jobsページ (https://saucelabs.com/u/[ユーザ名]) に表示される

### 公開範囲 public restricted
* URLを知っていれば誰でも閲覧できる
* 以下が閲覧可能
 * Screencast
 * Metadata
* public jobsページ に表示される

### 公開範囲 share
* URLを知っていれば誰でも閲覧できる
* public jobsページ に表示されない

### 公開範囲 team(デフォルト)
* チームメンバーのみ閲覧できる
 * チームメンバの登録は https://saucelabs.com/sub-accounts のInviteボタンを押下後、招待したいメルアドをいれて送信する
 * メールを受けた側はメール本文にあるリンクを踏むだけ(メール内のリンクは3日間有効)
* 上記以外の人が閲覧すると、Not foundページが表示される
* public jobsページ に表示されない
* 社内で使うとなったらteamを設定することになるのだろう

### 公開範囲 private
* テストを実行したオーナー(自分)にしか閲覧できない
* 自分以外の人が閲覧すると、Not Foundページと表示される
* public jobsページ に表示されない

## 公開設定の変更
* テスト後に設定を"team" => "private"とかやってやれば変更可能
* テスト実行前にできないかと以下のようにのconfigの中身をいろいろいじってみたが設定が効かなかった
 * browserの設定は効いているのにどういうこっちゃいw
 * 分かり次第追記しますm(__)m

```rb:features/support/sauce_helper.rb
# job_name, nameの変更を加えてみた

Sauce.config do |c|
  c[:browsers] = [
    ["Windows 8", "Internet Explorer", "10"]
  ] 
  c[:name] = 'hoge'
  c[:job_name] = 'hoge'
end
``` 

# Cucumberのテストを深堀
## 複数のfeatureファイルを作って実行
* 3つのfeatureファイルを作ってテスト実行してみた
* 以下を実行

```rb:features/sample1.feature
Feature: Feature1

@selenium
Scenario: Scenario 1
  When I go to qiita.com
```

```rb:features/sample2.feature
Feature: Feature2

@selenium
Scenario: Scenario 2
  When I go to qiita.com
```

```rb:features/sample3.feature
Feature: Feature3

@selenium
Scenario: Scenario 3
  When I go to qiita.com
```

 * 1個のfeatureが1個のSessionになるようだ
 * ブラウザこれって結構な量になるなぁ
 * 10個のfeatureを10ブラウザに対して実行すると100個！！
 * ただ、フィルターが用意されているので当日失敗したものだけ確認することも容易

 ![SauceLabs_3Features.png](https://qiita-image-store.s3.amazonaws.com/0/19778/ba90930f-bccc-8ca2-747d-5d665fe6d088.png)

## １個のfeatureファイルに複数のシナリオ/シナリオアウトラインを作って実行
* 以下を実行

```rb:features/sample.feature
@selenium
Feature: Feature

Scenario: Scenario 1
  When I go to qiita.com

Scenario: Scenario 2
  When I go to qiita.com

Scenario Outline: Scenario Outline
  When I go to qiita.com

  Examples:
    | Language |
    | Japanese |
    | English  |
    | German   |
```

* こちらも予想通りシナリオ毎で1個のSessionになる
 * シナリオアウトラインのカッコ(>)が「\&gt;」になってるw

![SauceLabs_3Scenarios.png](https://qiita-image-store.s3.amazonaws.com/0/19778/405b935d-9d4a-be10-7108-42d31d372424.png)

# 最後に、利用料金について

| タイプ | 料金(月) | 並行稼働できるVM数 | ユーザー数 | 自動テストの実行時間(時間) | 手動テストの実行時間(時間) |
|:-----------|:------------|:------------|:------------|:------------|:------------|
| Free |\$0|2|1|2|0.5|
| Manual |\$12 [\$16]|2|1|2|無制限|
| Individual |\$49 [\$69]|3|1|10|無制限|
| Small Team |\$149 [\$199]|6|10|30|無制限|
| Volume Packs |??|無制限|無制限|無制限|無制限|無制限|
* 料金は、年間契約(一月契約)で異なり、年間契約のほうがお得！
* Volume Packsの料金についてはSauceLabs宛にメールをして料金を聞くシステムになっていた

# ～ただの宣伝～
* [全国のSeleniumer必読](http://qiita.com/oh_rusty_nail/items/b8ba525d31ea7c522856)
* Selenium, SauceLabs, Travis, Jenkinsに関するノウハウ書いているのでよかったら参考にしてみてください