@browserstack/mobilewright

中文文档
0.1.1发布于 2026/08/19Apache-2.0TypeScriptES Module近 30 天下载 2186

Mobilewright 浏览器Stack App 自动驱动程序

中文使用文档
文档目录5 节
  1. 在本地设备与浏览器Stack之间切换
  2. 里面的东西
  3. 设置
  4. 贡献安全( S)
  5. 许可证

@ 浏览erserstack/ 移动作家

浏览器Stack App 自动驱动程序 移动作家。 。 。 . 每个测试会话都是一等App Automate会话——仪表板,服务器侧视频, 设备/网络日志、浏览器Stack本地、地理定位/网络模拟、相机和生物鉴别 注射——在测试中没有浏览器Stack特定代码.

要求数 mobilewright ^ 0.0.53; 节点要求正是您现有的 Mobilewright project's——这个软件包没有增加自己的任何内容. 安装到现有的 Mobilewright 项目 (单位:千美元)@mobilewright/test 随你的移动作家设置而来:

npm i -D @browserstack/mobilewright

抬头(上游,不是浏览器Stack):尽管移动作家声明 node >=18, (中文(简体) ), 其配置加载需要在 CommonJS 项目中的节点 \ 20.19 (require() 无害环境管理一揽子措施)—— 节点 18. x 配置负载失败 ERR_REQUIRE_ESM 即使没有配置驱动程序。 见 upstream/README.md 第3节.

通过设置驱动程序在浏览器Stack指向已存在的 Mobilewright 套件:

// mobilewright.config.ts
import { defineConfig } from 'mobilewright';
import { browserStackDriver } from '@browserstack/mobilewright';

export default defineConfig({
  testDir: './tests',
  bundleId: 'org.wikipedia.alpha',
  driver: browserStackDriver({
    app: 'bs://<app-id>',          // or a local .apk/.ipa path, or an https:// url — uploaded for you
    project: 'My project',
  }),
  projects: [
    { name: 'android', use: { platform: 'android', deviceName: /Google Pixel 8\b/ } },
    { name: 'ios', use: { platform: 'ios', deviceType: 'real', osVersion: '>=17 <19' } },
  ],
});

browserStackDriver(options) 实值 new BrowserStackDriver(options) 拼写像配置—— 移动作家~0.0.53以司机为例. 设备选择使用标准配置 字段 : deviceName (登记), osVersion (范围表达方式如下: ">=17 <19", (中文(简体) ), deviceType (App Automate 为 real 设备)。 全权证书来自 BROWSERSTACK_USERNAME 编号 : BROWSERSTACK_ACCESS_KEY (或 username编号 :accessKey 选项); 应用程序后退 页:1 BROWSERSTACK_APP (原始内容存档于2018-10-21). Env var. 测试是股票移动作家.

会话名称和状态是自动的. 驾驶员 TestObserver,哪个 移动wright 在没有任何记者配置的情况下引用:运行后每一次 App Automate 会话 以它进行的测试,标记通过/失败,以及它的仪表板链接打印后命名.

在本地设备与浏览器Stack之间切换

保留一个配置并按环境选择驱动程序 – 默认本地( mobilecli), 浏览器Stack 当全权证书到齐时:

const config: MobilewrightConfig = { /* ...your existing config... */ };

if (process.env.BROWSERSTACK_USERNAME) {
  config.driver = browserStackDriver({ app: './apps/checkout.apk' });
}

export default defineConfig(config);
npx mobilewright test                                     # local device, as always
BROWSERSTACK_USERNAME=… BROWSERSTACK_ACCESS_KEY=… \
  npx mobilewright test                                   # the same suite on App Automate

当地 .apk编号 :.ipa 路径自动上传( 每跑一次), 固定点' 正在跳过会话应用程序的会话中段重新安装 .

里面的东西

  • src/driver.ts 完全的移动作家驾驶合同: DeviceAllocator (每个工人名额一个App自动会话;工人按会话编号附加)+ MobilewrightSession (26个动词+) webViewBridge 包含多网页视图页面扩展) 超过浏览器Stack的标准 W3C WebDriver 会话 API.
  • src/observer.ts - 那个 TestObserver:自动会话命名/状态+仪表板链接.
  • src/executor.ts —— 说 browserStackExecutor() 用于浏览器Stack特定动作的逃出舱门 (相机图像注射,生物鉴别,苹果支付,.
  • src/reporter.ts - 独立的Playwright记者;由观察员取而代之,为 明确需要记者式接线的套件.
  • e2e/ - 配套套房(Android/iOS原生、网页视图、第二阶段功能、浏览器Stack) 当地,Milliways跨平台套房, 发行相容门(e2e/compat-check.sh, (中文(简体) ), 以及当地-vs-云性能基准e2e/perf/) (中文(简体) ).
  • upstream/ ——待这些套房发现的一行上游修复.

设置

Plain npm — 该套件针对已发布的移动wright套件构建:

npm install && npm run build && npm run lint && npm run test:unit

# conformance against real App Automate devices
export BROWSERSTACK_USERNAME=… BROWSERSTACK_ACCESS_KEY=…
cd e2e && ./compat-check.sh

e2e/compat-check.sh 针入 @mobilewright/protocol 版本, 并在 上游的驱动界面会移动;在检讨更改后会故意撞出被子.

贡献安全( S)

见 捐款额 设置、样式、相配门政策以及 释放过程。 私下报告脆弱性 警卫 从不走过 公众问题。 代码审查由App Automate团队所有(.github/CODEOWNERS(三); 依赖性由Dependabot监视.

许可证

Apache-2.0 (见 LICENSE) (中文(简体) ).

版本与发布记录

@browserstack/mobilewright 共发布 2 个版本,首次发布于 2026/08/19;过去 12 个月发布了 2 个版本。

版本发布日期距今
0.1.1latest2026/08/192 个月前
0.1.0next2026/08/192 个月前

关于 @browserstack/mobilewright 的常见问题

@browserstack/mobilewright 是什么?

Mobilewright 浏览器Stack App 自动驱动程序

如何安装 @browserstack/mobilewright?

在项目目录运行 npm install @browserstack/mobilewright,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@mobilewright/core(>=0.0.53 <0.1.0)、@mobilewright/protocol(>=0.0.53 <0.1.0)、mobilewright(>=0.0.53 <0.1.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@browserstack/mobilewright 支持 TypeScript 吗?

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

@browserstack/mobilewright 支持 ESM 还是 CommonJS?

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

@browserstack/mobilewright 需要什么版本的 Node.js?

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

@browserstack/mobilewright 可以商用吗?

@browserstack/mobilewright 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@browserstack/mobilewright 的下载量有多少?

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

@browserstack/mobilewright 还在维护吗?

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