Sauce Labs
すべてのコマンドはSauce Labs上のChromeでのみサポートされており、 拡張デバッグ 機能を使用しています。以下のようなSauceオプションを設定することで有効化できます:
{
browserName: 'Chrome',
browserVersion: 'latest',
platformName: 'Windows 10',
'sauce:options': {
extendedDebugging: true
}
}
getPageLogs
最後のページ読み込みに基づいたウェブページ固有のログ情報を取得します。
Sauce Labsコマンドです。詳細は公式プロトコルドキュメントで確認できます。
使用法
browser.getPageLogs(type)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
type | string | ログタイプ (例: 'sauce:network', 'sauce:performance') |
例
// ネットワークログを取得
console.log(browser.getPageLogs('sauce:network'));
/**
* 出力:
* [{
* "url": "https://app.saucelabs.com/dashboard",
* "statusCode": 200,
* "method": "GET",
* "requestHeaders": {
* ...
* },
* "responseHeaders": {
* ...
* },
* "timing": {
* ...
* }
* }, {,
* ...
* }]
*/
// パフォーマンスログを取得(capturePerformanceケイパビリティが必要 参照: https://docs.saucelabs.com/performance/transitions/#setting-performance-capabilities
console.log(browser.getPageLogs('sauce:performance'));
/**
* 出力:
* {
* "speedIndex": 1472.023,
* "timeToFirstInteractive": 1243.214,
* "firstMeaningfulPaint": 892.643,
* ...
* }
*/
戻り値
- <object>
log
: 指定したタイプのログ出力(例を参照)
sauceThrottleNetwork
ネットワーク条件を設定することで、さまざまなネットワーク接続(Edge、3G、オフラインなど)でサイトをテストできます。データのスループット(最大ダウンロードおよびアップロードスループットを含む)を制限したり、接続の往復時間(RTT)に最小遅延を適用するための遅延操作を使用したりできます。
Sauce Labsコマンドです。詳細は公式プロトコルドキュメントで確認できます。
使用法
browser.sauceThrottleNetwork(condition)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
condition | string, object | 設定するネットワーク条件 (例: 'online', 'offline', 'GPRS', 'Regular 2G', 'Good 2G', 'Regular 3G', 'Good 3G', 'Regular 4G', 'DSL', 'Wifi') |
例
// 定義済みネットワーク条件
browser.sauceThrottleNetwork('offline')
// カスタムネットワーク条件
browser.sauceThrottleNetwork({
download: 1000,
upload: 500,
latency: 40'
})
throttleCPU
DevToolsでCPUをスロットリングして、その制約下でページがどのように動作するかを理解できます。
Sauce Labsコマンドです。詳細は公式プロトコルドキュメントで確認できます。
使用法
browser.throttleCPU(rate)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
rate | number | CPUをスロットリングする割合 |
例
// CPUをスロットリングして4倍遅くする
browser.throttleCPU(4)
// CPUスロットリングをリセット
browser.throttleCPU(0)
interceptRequest
ブラウザが行うリクエストを変更できます。テストに必要に応じて、これらをブラックリストに登録したり、変更したり、リダイレクトしたりできます。
Sauce Labsコマンドです。詳細は公式プロトコルドキュメントで確認できます。
使用法
browser.interceptRequest(rule)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
rule | object | リクエストのインターセプトを記述するルール |
例
// リクエストをリダイレクト
browser.interceptRequest({
url: 'https://saucelabs.com',
redirect: 'https://google.com'
})
// サードパーティベンダーへのリクエストをブラックリストに登録
browser.interceptRequest({
url: 'https://api.segment.io/v1/p',
error: 'Failed'
})
// REST APIへのリクエストを変更(REST APIレスポンスをモック)
browser.interceptRequest({
url: 'http://sampleapp.appspot.com/api/todos',
response: {
headers: {
'x-custom-headers': 'foobar'
},
body: [{
title: 'My custom todo',
order: 1,
completed: false,
url: 'http://todo-backend-express.herokuapp.com/15727'
}]
}
})
assertPerformance
アプリのパフォーマンスベースラインに対してアサートします。
Sauce Labsコマンドです。詳細は公式プロトコルドキュメントで確認できます。
使用法
browser.assertPerformance(name, metrics)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
name | string | ベースラインを作成したジョブの名前 |
metrics 省略可能 | string[] | ベースラインに対してアサートしたいメトリクスの名前 |
例
// ページのパフォーマンスをテスト
browser.url('https://webdriver.io')
const hasRegression = browser.assertPerformance({
name: 'my performance test', // 名前がケイパビリティのsauceオプションにも設定されていることを確認してください
metrics: ['score', 'firstPaint']
})
戻り値
- <object>
hasRegression
: 結果とその結果に関するメトリクスを含むオブジェクト
jankinessCheck
アプリケーションのジャンキネス(描画のガタつき)を評価するスクロールテストを実行します。
Sauce Labsコマンドです。詳細は公式プロトコルドキュメントで確認できます。
使用法
browser.jankinessCheck()
例
// ページのパフォーマンスをテスト
browser.url('https://webdriver.io')
browser.jankinessCheck()
戻り値
- <object>
testResults
: スコアとテスト中のページのUXのスムーズさに関するメトリクスを含むオブジェクト
mockRequest
ネットワークリソースをモックします。
Sauce Labsコマンドです。詳細は公式プロトコルドキュメントで確認できます。
使用法
browser.mockRequest(url, filterOptions)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
url | string | モックするURLに一致するグロブパターン |
filterOptions 省略可能 | object | モックするURLの追加フィルターオプション(ヘッダー、メソッドなど) |
戻り値
- <object>
mockId
: モックリソースのIDを含むオブジェクト
getMockCalls
モックされたリソースに一致するリクエストに関する情報を受け取ります。
Sauce Labsコマンドです。詳細は公式プロトコルドキュメントで確認できます。
使用法
browser.getMockCalls(mockId)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
mockId | String | モックのID |
戻り値
- <object>
requests
: リクエスト情報のリスト
clearMockCalls
モック呼び出しのリストをクリアします。
Sauce Labsコマンドです。詳細は公式プロトコルドキュメントで確認できます。
使用法
browser.clearMockCalls(mockId, restore)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
mockId | String | モックのID |
restore 省略可能 | boolean | モックも復元する場合はtrueに設定します |
respondMock
モックが特定のリソースに一致した場合に応答します。
Sauce Labsコマンドです。詳細は公式プロトコルドキュメントで確認できます。
使用法
browser.respondMock(mockId, payload)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
mockId | String | モックのID |
payload 省略可能 | object | モックレスポンスに関する情報 |