Sauce Labs
すべてのコマンドは、Sauce Labsの拡張デバッグ機能を使用したChromeでのみサポートされています。以下のSauceオプションを設定して有効にできます。
{
browserName: 'Chrome',
browserVersion: 'latest',
platformName: 'Windows 10',
'sauce:options': {
extendedDebugging: true
}
}
getPageLogs
最後のページ読み込みに基づいて、ウェブページ固有のログ情報を取得します。
Sauce Labsコマンド。詳細は公式プロトコルドキュメントを参照してください。
使用方法
browser.getPageLogs(type)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
type | 文字列 | ログタイプ(例:sauce:network', 'sauce:performance') |
例
// Get Network Logs
console.log(browser.getPageLogs('sauce:network'));
/**
* outputs:
* [{
* "url": "https://app.saucelabs.com/dashboard",
* "statusCode": 200,
* "method": "GET",
* "requestHeaders": {
* ...
* },
* "responseHeaders": {
* ...
* },
* "timing": {
* ...
* }
* }, {,
* ...
* }]
*/
// Get Performance Logs (needs capturePerformance capability see: https://wiki.saucelabs.com/display/DOCS/Measure+Page+Load+Performance+Using+Test+Automation#MeasurePageLoadPerformanceUsingTestAutomation-EnableYourScript)
console.log(browser.getPageLogs('sauce:performance'));
/**
* outputs:
* {
* "speedIndex": 1472.023,
* "timeToFirstInteractive": 1243.214,
* "firstMeaningfulPaint": 892.643,
* ...
* }
*/
戻り値
- <object>
log
: 必要なタイプのログ出力(例を参照)
sauceThrottleNetwork
ネットワーク調整を使用すると、Edge、3G、オフラインなど、さまざまなネットワーク接続でサイトをテストできます。最大ダウンロードおよびアップロードスループットを含むデータスループットを調整し、接続ラウンドトリップ時間(RTT)の最小遅延を適用するために、レイテンシ操作を使用できます。
Sauce Labsコマンド。詳細は公式プロトコルドキュメントを参照してください。
使用方法
browser.sauceThrottleNetwork(condition)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
condition | 文字列、オブジェクト | 設定するネットワーク状態(例:'online'、'offline'、'GPRS'、'Regular 2G'、'Good 2G'、'Regular 3G'、'Good 3G'、'Regular 4G'、'DSL'、'Wifi') |
例
// predefined network condition
browser.sauceThrottleNetwork('offline')
// custom network condition
browser.sauceThrottleNetwork({
download: 1000,
upload: 500,
latency: 40'
})
throttleCPU
DevToolsでCPUを調整して、その制約下でのページのパフォーマンスを理解できます。
Sauce Labsコマンド。詳細は公式プロトコルドキュメントを参照してください。
使用方法
browser.throttleCPU(rate)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
rate | 数値 | CPUのスロットル率。 |
例
// throttle CPU and make it run 4x slower
browser.throttleCPU(4)
// reset CPU throttling
browser.throttleCPU(0)
interceptRequest
ブラウザによって行われた要求の変更を許可します。必要に応じて、これらをブラックリストに追加したり、変更したり、リダイレクトしたりできます。
Sauce Labsコマンド。詳細は公式プロトコルドキュメントを参照してください。
使用方法
browser.interceptRequest(rule)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
rule | オブジェクト | 要求のインターセプトを記述するルール。 |
例
// redirect a request
browser.interceptRequest({
url: 'https://saucelabs.com',
redirect: 'https://google.com'
})
// Blacklist requests to 3rd party vendors
browser.interceptRequest({
url: 'https://api.segment.io/v1/p',
error: 'Failed'
})
// Modify requests to REST API (Mock REST API response)
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 | 文字列 | ベースラインを作成したジョブの名前。 |
metrics オプション | string[] | ベースラインに対してアサートするメトリクスの名前。 |
例
// test performance for a page
browser.url('https://webdriverio.dokyumento.jp')
const hasRegression = browser.assertPerformance({
name: 'my performance test', // make sure that the name is also set in the sauce options in your capabilities
metrics: ['score', 'firstPaint']
})
戻り値
- <object>
hasRegression
: 結果と結果に関するメトリクスを含むオブジェクト。
jankinessCheck
アプリケーションのぎこちなさを評価するスクロールテストを実行します。
Sauce Labsコマンド。詳細は公式プロトコルドキュメントを参照してください。
使用方法
browser.jankinessCheck()
例
// test performance for a page
browser.url('https://webdriverio.dokyumento.jp')
browser.jankinessCheck()
戻り値
- <object>
testResults
: スコアと、テスト中のページのUXの滑らかさに関するメトリクスを含むオブジェクト。
mockRequest
ネットワークリソースをモックします。
Sauce Labsコマンド。詳細は公式プロトコルドキュメントを参照してください。
使用方法
browser.mockRequest(url, filterOptions)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
url | 文字列 | モックするURLに一致するURLグロブ。 |
filterOptions オプション | オブジェクト | モックするURLの追加のフィルタオプション(例:ヘッダー、メソッド)。 |
戻り値
- <object>
mockId
: モックリソースのIDを含むオブジェクト。
getMockCalls
モックリソースと一致するリクエストに関するリクエスト情報を受け取ります。
Sauce Labsコマンド。詳細は公式プロトコルドキュメントを参照してください。
使用方法
browser.getMockCalls(mockId)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
mockId | 文字列 | モックのID |
戻り値
- <object>
requests
: リクエスト情報のリスト。
clearMockCalls
モック呼び出しのリストをクリアします。
Sauce Labsコマンド。詳細は公式プロトコルドキュメントを参照してください。
使用方法
browser.clearMockCalls(mockId, restore)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
mockId | 文字列 | モックのID |
restore オプション | ブール値 | モックも復元する場合はtrueに設定します。 |
respondMock
モックが特定のリソースと一致する場合は応答します。
Sauce Labsコマンド。詳細は公式プロトコルドキュメントを参照してください。
使用方法
browser.respondMock(mockId, payload)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
mockId | 文字列 | モックのID |
payload オプション | オブジェクト | モックレスポンスの情報。 |