跳至主要內容

Browserstack 服務

一個 WebdriverIO 服務,為 BrowserStack 使用者管理本地通道和工作元數據。

安裝

最簡單的方法是透過以下方式將 @wdio/browserstack-service 保留在您的 package.json 中作為 devDependency:

npm install @wdio/browserstack-service --save-dev

有關如何安裝 WebdriverIO 的說明,請參閱此處。

設定

WebdriverIO 預設支援 BrowserStack。您應該在您的 wdio.conf.js 檔案中設定 userkey。此服務外掛程式提供對BrowserStack Tunnel的支援。設定 browserstackLocal: true 也可啟用此功能。在 BrowserStack 上報告工作階段狀態將會遵守 Cucumber 選項的 strict 設定。

// wdio.conf.js
export const config = {
// ...
user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,
services: [
['browserstack', {
testObservability: true,
testObservabilityOptions: {
projectName: "Your project name goes here",
buildName: "The static build job name goes here e.g. Nightly regression"
},
browserstackLocal: true
}]
],
// ...
};

選項

為了授權使用 BrowserStack 服務,您的設定需要包含 userkey 選項。

測試可觀察性

測試可觀察性是一種進階測試報告工具,可提供深入資訊以改善您的自動化測試,並協助您更快除錯。預設情況下,所有使用 browserstack-service 的使用者都會將 testObservability 旗標設定為 true 來啟用。您可以將 testObservability 旗標設定為 false 來停用此功能。

一旦您的測試執行完成,您可以造訪 測試可觀察性,透過其他深入資訊(例如獨特錯誤分析、自動不穩定測試偵測等)來偵錯您的建置。

即使您未在 BrowserStack 基礎架構上執行測試,您也可以使用測試可觀察性。即使您在 CI、本機電腦,甚至其他雲端服務供應商上執行測試,測試可觀察性仍然可以為您的測試產生智慧測試報告和進階分析。

如果您想在不於 BrowserStack 基礎架構上執行測試的情況下使用測試可觀察性,您可以將您的設定設定如下

// wdio.conf.js
export const config = {
// ...
services: [
['browserstack', {
testObservability: true,
testObservabilityOptions: {
user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,
projectName: "Your project name goes here",
buildName: "The static build job name goes here e.g. Nightly regression"
}
}]
],
// ...
};

您可以在此沙盒中探索測試可觀察性的所有功能,或在此處閱讀更多相關資訊。

browserstackLocal

將此設定為 true 以啟用從 BrowserStack 雲端透過您的電腦路由連線。

類型:Boolean
預設值:false

forcedStop

將此設定為 true,以便在完成時終止 BrowserStack Local 程序,而無需等待 BrowserStack Local 停止回呼被呼叫。這是實驗性的,不應被所有人使用。主要需要作為此問題的因應措施。

類型:Boolean
預設值:false

app

Appium,使用您電腦上可用的應用程式檔案路徑設定此項,以將應用程式作為 Appium 工作階段的測試中的應用程式

類型:StringJsonObject
預設值:undefined

可用應用程式值的清單

path

使用本地可用的應用程式檔案路徑作為 Appium 的測試中應用程式。

services: [
['browserstack', {
app: '/path/to/local/app.apk'
// OR
app: {
path: '/path/to/local/app.apk'
}
}]
]

在應用程式上傳時傳遞 custom_id。

services: [
['browserstack', {
app: {
path: '/path/to/local/app.apk',
custom_id: 'custom_id'
}
}]
]

id

使用將應用程式上傳到 BrowserStack 後傳回的應用程式 URL。

services: [
['browserstack', {
app: 'bs://<app-id>'
// OR
app: {
id: 'bs://<app-id>'
}
}]
]

custom_id

使用已上傳應用程式的 custom_id

services: [
['browserstack', {
app: 'custom_id'
// OR
app: {
custom_id: 'custom_id'
}
}]
]

shareable_id

使用已上傳應用程式的 shareable_id

services: [
['browserstack', {
app: 'username/custom_id'
// OR
app: {
shareable_id: 'username/custom_id'
}
}]
]

preferScenarioName

僅限 Cucumber。如果只執行一個情境,請將 BrowserStack Automate 工作階段名稱設定為情境名稱。使用wdio-cucumber-parallel-execution平行執行時非常有用。

類型:Boolean
預設值:false

sessionNameFormat

自訂 BrowserStack Automate 工作階段名稱格式。

類型:Function
預設值 (Cucumber/Jasmine):(config, capabilities, suiteTitle) => suiteTitle
預設值 (Mocha):(config, capabilities, suiteTitle, testTitle) => suiteTitle + ' - ' + testTitle

sessionNameOmitTestTitle

僅限 Mocha。不要將測試標題附加到 BrowserStack Automate 工作階段名稱。

類型:Boolean
預設值:false

sessionNamePrependTopLevelSuiteTitle

僅限 Mocha。將最上層套件標題預先附加到 BrowserStack Automate 工作階段名稱。

類型:Boolean
預設值:false

setSessionName

自動設定 BrowserStack Automate 工作階段名稱。

類型:Boolean
預設值:true

setSessionStatus

自動設定 BrowserStack Automate 工作階段狀態(通過/失敗)。

類型:Boolean
預設值:true

buildIdentifier

buildIdentifier 是一個唯一的 ID,用於區分附加到 buildName 的每個執行。從可用的運算式中選擇您的 buildIdentifier 格式

  • BUILD_NUMBER:每次執行都會產生遞增計數器
  • DATE_TIME:每次執行都會產生時間戳記。例如:05-Nov-19:30
services: [
['browserstack', {
buildIdentifier: '#${BUILD_NUMBER}'
}]
]

Build Identifier 支援使用任一或兩個運算式,以及任何其他字元,以啟用自訂格式選項。

opts

BrowserStack Local 選項。

類型:Object
預設值:{}

要作為 opts 傳遞的可用本機測試修改器清單

本地識別碼

如果同時進行多個本地測試連線,請為不同的程序設定唯一的識別碼 -

opts = { localIdentifier: "randomstring" };

詳細日誌記錄

啟用詳細日誌記錄 -

opts = { verbose: "true" };

注意 - 'verbose' 修飾符的可能值為 '1'、'2'、'3' 和 'true'

強制本地

將所有流量通過本地(您的)機器路由 -

opts = { forceLocal: "true" };

資料夾測試

若要測試本地資料夾而不是內部伺服器,請提供資料夾的路徑作為此選項的值 -

opts = { f: "/my/awesome/folder" };

強制啟動

強制終止其他正在運行的 BrowserStack Local 執行個體 -

opts = { force: "true" };

僅限自動化測試

禁用 Live 和螢幕截圖的本地測試,僅啟用自動化測試 -

opts = { onlyAutomate: "true" };

代理

使用代理進行本地測試 -

  • proxyHost:代理的主機名稱/IP,如果此選項不存在,則忽略剩餘的代理選項
  • proxyPort:代理的連接埠,當使用 -proxyHost 時,預設為 3128
  • proxyUser:連線至代理的用戶名稱(僅限基本驗證)
  • proxyPass:USERNAME 的密碼,如果 USERNAME 為空或未指定,則會被忽略
opts = {
proxyHost: "127.0.0.1",
proxyPort: "8000",
proxyUser: "user",
proxyPass: "password",
};

本地代理

在本地測試中使用本地代理 -

  • localProxyHost:代理的主機名稱/IP,如果此選項不存在,則忽略剩餘的代理選項
  • localProxyPort:代理的連接埠,當使用 -localProxyHost 時,預設為 8081
  • localProxyUser:連線至代理的用戶名稱(僅限基本驗證)
  • localProxyPass:USERNAME 的密碼,如果 USERNAME 為空或未指定,則會被忽略
opts = {
localProxyHost: "127.0.0.1",
localProxyPort: "8000",
localProxyUser: "user",
localProxyPass: "password",
};

PAC (代理自動組態)

在本地測試中使用 PAC (代理自動組態) -

  • pac-file:PAC (代理自動組態) 檔案的絕對路徑
opts = { "pac-file": "<pac_file_abs_path>" };

二進位路徑

預設情況下,BrowserStack 本地封裝器會嘗試依序在 ~/.browserstack 或目前的工作目錄或 tmp 資料夾中下載並執行最新版本的 BrowserStack 二進位檔。 但是,您可以透過傳遞 -binarypath 引數來覆寫這些設定。 指定本地二進位路徑的路徑 -

opts = { binarypath: "/path/to/binary" };

日誌檔

若要在使用 '-v' 引數執行時將日誌儲存到檔案中,您可以指定檔案的路徑。 預設情況下,日誌會儲存在目前工作目錄中的 local.log 檔案中。 若要指定將儲存日誌的檔案路徑 -

opts = { verbose: "true", logFile: "./local.log" };

有關 WebdriverIO 的更多資訊,請參閱首頁

歡迎!我能為您提供什麼協助?

WebdriverIO AI Copilot