@browserstack/wdio-browserstack-service

中文文档
2.0.2发布于 2025/11/27MITTypeScriptES Module近 30 天下载 27.4万

WebdriverIO service for better Browserstack integration

原始使用文档
文档目录11 节
  1. Table of Contents
  2. Overview
  3. Installation
  4. Setup & Configuration
  5. Usage
  6. Code Generation
  7. Prerequisites
  8. Generate & Build
  9. Development
  10. Contributing
  11. License

@browserstack/wdio-browserstack-service

npm License: MIT

Core SDK for BrowserStack integration used by the WebdriverIO BrowserStack Service. For user configuration and service options, see the official service README: https://github.com/webdriverio/webdriverio/blob/main/packages/wdio-browserstack-service/README.md

Table of Contents

  1. Overview
  2. Code Generation
  3. Development
  4. Contributing
  5. License

Overview

This package provides the TypeScript-based gRPC client and Protobuf definitions used internally by the @wdio/browserstack-service plugin for WebdriverIO. It includes:

  • Generated TypeScript types and clients from Protobuf definitions.
  • Message factory constructors for backward compatibility.

Installation

This module is included as a dependency of the @wdio/browserstack-service package. Users should install and configure the service as documented in the linked README above.

Setup & Configuration

Add the service to your WebdriverIO configuration (wdio.conf.js):

export BROWSERSTACK_USERNAME=your_username
export BROWSERSTACK_ACCESS_KEY=your_access_key

Usage

Import and use the gRPC client and message constructors:

import { SDKClient, StartBinSessionRequestConstructor } from '@browserstack/wdio-browserstack-service';
import path from 'path';
import process from 'process';
import { CLIUtils } from '@browserstack/cli-utils'; // example import, adjust if needed
import { version as packageVersion } from './package.json'; // adjust to your setup

// Initialize the client (uses default insecure credentials unless overridden)
const client = new SDKClient('grpc.browserstack.com:443');

// Collect framework details
const automationFrameworkDetail = CLIUtils.getAutomationFrameworkDetail();
const testFrameworkDetail = CLIUtils.getTestFrameworkDetail();

const frameworkVersions = {
  ...automationFrameworkDetail.version,
  ...testFrameworkDetail.version
};

// Build StartBinSessionRequest
const startReq = StartBinSessionRequestConstructor.create({
  binSessionId: 'your-session-id', // replace with actual session id
  sdkLanguage: CLIUtils.getSdkLanguage(),
  sdkVersion: packageVersion,
  pathProject: process.cwd(),
  pathConfig: path.resolve(process.cwd(), 'browserstack.yml'),
  cliArgs: process.argv.slice(2),
  frameworks: [automationFrameworkDetail.name, testFrameworkDetail.name],
  frameworkVersions,
  language: CLIUtils.getSdkLanguage(),
  testFramework: testFrameworkDetail.name,
  wdioConfig: {}, // provide your WDIO config if applicable
});

// Start a session
client.startBinSession(startReq).then(response => {
  console.log('Started session:', response.binSessionId);
}).catch(err => {
  console.error('Failed to start session:', err);
});

Code Generation

This project uses Buf and ts-proto to generate TypeScript code from Protobuf definitions.

Prerequisites

Generate & Build

# Clean previously generated files
npm run clean

# Generate from .proto files
npm run generate

# Compile to JS and declaration files
npm run build

Generated files appear under dist/ and should be published to npm.

Development

Clone the repository and install dependencies:

git clone https://github.com/browserstack/wdio-browserstack-service.git
cd wdio-browserstack-service
npm install

Run generation and build:

npm run build

Contributing

Contributions are welcome! Please open issues or pull requests in the GitHub repository.

License

MIT © BrowserStack

版本与发布记录

@browserstack/wdio-browserstack-service 共发布 8 个版本,首次发布于 2022/03/08;过去 12 个月发布了 1 个版本。

版本发布日期距今
2.0.2latest2025/11/2711 个月前
2.0.12025/08/261.2 年前
2.0.02025/08/201.2 年前
1.0.42022/03/244 年前
1.0.32022/03/244 年前
1.0.22022/03/114 年前

关于 @browserstack/wdio-browserstack-service 的常见问题

@browserstack/wdio-browserstack-service 是什么?

WebdriverIO service for better Browserstack integration

如何安装 @browserstack/wdio-browserstack-service?

在项目目录运行 npm install @browserstack/wdio-browserstack-service,或使用 pnpm add / yarn add / bun add。

@browserstack/wdio-browserstack-service 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@browserstack/wdio-browserstack-service 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@browserstack/wdio-browserstack-service 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=16.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@browserstack/wdio-browserstack-service 可以商用吗?

@browserstack/wdio-browserstack-service 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@browserstack/wdio-browserstack-service 的下载量有多少?

根据 npm 官方下载统计,@browserstack/wdio-browserstack-service 在 2026/10/09 – 2026/11/07 这 30 天内被下载 274,458 次,日均约 9,149 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@browserstack/wdio-browserstack-service 还在维护吗?

最新版本 2.0.2 发布于 2025/11/27(11 个月前);至今共发布 8 个版本,其中过去 12 个月发布了 1 个;首次发布于 2022/03/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。