Browserstack 服务
一个 WebdriverIO 服务,用于管理 BrowserStack 用户的本地隧道和作业元数据。
安装
最简单的方法是将 @wdio/browserstack-service
作为开发依赖项保留在您的 package.json
中,通过
npm install @wdio/browserstack-service --save-dev
有关如何安装 WebdriverIO
的说明,请参见此处。
配置
WebdriverIO 原生支持 BrowserStack。您应该在 wdio.conf.js
文件中设置 user
和 key
。此服务插件提供对BrowserStack 隧道的支持。还设置 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 服务,您的配置需要包含user
和key
选项。
测试可观察性
测试可观察性是一个高级测试报告工具,它提供见解以改进您的自动化测试,并帮助您更快地调试。它通过为所有 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 云通过您的计算机路由连接。
类型:布尔值
默认值:false
forcedStop
将其设置为 true 以在完成时终止 BrowserStack Local 进程,而无需等待调用 BrowserStack Local 停止回调。这是实验性的,不应由所有人使用。主要作为对此问题的解决方法。
类型:布尔值
默认值:false
app
Appium 使用本地机器上可用的应用程序文件路径设置此项,以将应用程序用作被测应用程序以进行 Appium 会话。
类型:字符串
或JsonObject
默认值:未定义
可用应用程序值的列表
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并行运行时很有用。
类型:布尔值
默认值:false
sessionNameFormat
自定义 BrowserStack Automate 会话名称格式。
类型:函数
默认值(Cucumber/Jasmine):(config, capabilities, suiteTitle) => suiteTitle
默认值(Mocha):(config, capabilities, suiteTitle, testTitle) => suiteTitle + ' - ' + testTitle
sessionNameOmitTestTitle
仅限 Mocha。不要将测试标题附加到 BrowserStack Automate 会话名称。
类型:布尔值
默认值:false
sessionNamePrependTopLevelSuiteTitle
仅限 Mocha。将顶级套件标题添加到 BrowserStack Automate 会话名称之前。
类型:布尔值
默认值:false
setSessionName
自动设置 BrowserStack Automate 会话名称。
类型:布尔值
默认值:true
setSessionStatus
自动设置 BrowserStack Automate 会话状态(通过/失败)。
类型:布尔值
默认值:true
buildIdentifier
buildIdentifier 是一个唯一 ID,用于区分每个执行,并将其附加到 buildName。从可用表达式中选择您的 buildIdentifier 格式
BUILD_NUMBER
:为每个执行生成一个递增计数器DATE_TIME
:为每个执行生成一个时间戳。例如,05-Nov-19:30
services: [
['browserstack', {
buildIdentifier: '#${BUILD_NUMBER}'
}]
]
构建标识符支持使用任一或两个表达式以及任何其他字符,从而启用自定义格式选项。
opts
BrowserStack 本地选项。
类型:对象
默认值:{}
要作为 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" };
仅自动化
要禁用实时和屏幕截图的本地测试,并仅启用自动化 -
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 二进制文件到 ~/.browserstack 或当前工作目录或 tmp 文件夹(按顺序)。但是,您可以通过传递 -binarypath 参数来覆盖这些设置。要指定的本地二进制文件路径 -
opts = { binarypath: "/path/to/binary" };
日志文件
要使用 '-v' 参数运行时将日志保存到文件,您可以指定文件路径。默认情况下,日志保存在当前工作目录中的 local.log 文件中。要指定保存日志的文件路径 -
opts = { verbose: "true", logFile: "./local.log" };
有关 WebdriverIO 的更多信息,请参阅主页。