在带 Browserstack 的 Intern 中指定多个环境

Specify multiple environments in Intern w/ Browserstack

我正在尝试 运行 使用 Intern 在 BrowserStack 上进行并行功能测试。我当前的工作 intern.json 配置如下所示:

{
  "proxyPort": 9000,

  "capabilities": {
    "browserstack.local": false,
    "browserstack.debug": true,
    "browserstack.video": true,
    "fixSessionCapabilities": false
  },

  "environments": [
    { "browserName": "Chrome",  "version": 62  },
    { "browserName": "Firefox", "version": 38  },
    { "browserName": "Safari",  "version": 9   },
    { "browserName": "IE",      "version": 11  }
  ],

  "tunnel": "browserstack",

  "tunnelOptions": {
      "username": "myUsername",
      "accessKey": "myAccessKey"
  },

  "reporters": ["pretty"],
  "functionalSuites": ["dist/functional/tests/demo.js"]
}

但是,当我尝试在每个环境对象中指定 OS、os_version 或任何其他内容时,我的测试不会 运行,如下所示:

{ "browserName": "Chrome",  "version": 62, "os" : "OS X" },

我一直在参考 BrowserStack 文档:https://www.browserstack.com/automate/capabilities

此外,我无法在此配置中指定任何移动设备 - 它大喊其缺少浏览器名称 属性...

知道如何执行上述任一操作吗?谢谢!!!

这是您的配置的工作示例:

    define({
  proxyPort: 9000,

  capabilities: {
    'browserstack.local': false,
    fixSessionCapabilities: false
  },

  defaultTimeout: 300000,

  environments: [
      { browser: 'Chrome',  'browser_version': '62','os': 'Windows','os_version': '7'  },
        { browser: 'Firefox', 'browser_version': '38'  },
        { browser: 'Safari','browser_version': '9'   },
        { browser: 'IE',  'browser_version': '11'  },

        // This will ONLY work on real_mobile supported devices
        { browser: 'Safari', 'device': 'iPhone X', 'real_mobile': 'true'  },
        // This will work as an emulated mobile device
        {"browser": "android", "device": "Google Nexus 7", "os_version": "4.1"}

  ],

  maxConcurrency: 3,

  tunnel: 'BrowserStackTunnel',

  tunnelOptions: {
    verbose: true,
     username: '<Username>',
     accessKey: '<AccessKey>'
  },

  reporters: [ 'Pretty' ],

  loaderOptions: {
    packages: null
  },

  suites: null,

  functionalSuites: [ 'tests/single_test' ],

  excludeInstrumentation: true
});

以上演示了 real_mobile 支持的设备和模拟移动设备的环境配置。

可在此处找到 BrowserStack Automate 支持的所有设备列表:https://www.browserstack.com/list-of-browsers-and-platforms?product=automate。标有蓝色图标的设备是真正的移动设备,不能用作模拟器。

  1. 似乎并不是每一个 os_version BrowserStack 在他们的能力中列出的工作。但我尝试了下面的配置,它成功了!

    { browser: "Chrome", version: "62", os: "OS X", os_version: "El Capitan" }

这个应该也可以:

{ browser: "Chrome", version: "62", os: "OS X"}
  1. To 运行 在移动设备上:我不使用移动设备,所以我不太确定,但我认为获得正确的设备名称是件好事,os_version..(最好直接问BrowserStack) 但我试过了,这个对我有用:

    {browser: "android", device: "Google Nexus 7", os_version: "4.1"}