能否将AWS Device Farm用于WebdriverIO移动端测试及相关配置
WebdriverIO连接AWS Device Farm iOS配置解答
1. 指向已上传到服务器的IPA文件
你上传IPA到AWS Device Farm后,平台会生成对应的资源ARN(亚马逊资源名称),直接将appium:app字段的值替换为该ARN即可,无需填写本地文件路径。如果是通过AWS CLI上传应用,可在上传成功的返回结果中直接获取该ARN。
2. 连接AWS Device Farm的配置步骤
- 首先安装官方适配的WDIO服务:
npm install @wdio/aws-device-farm-service --save-dev - 本地配置AWS凭证:在
~/.aws/credentials文件中配置有权限访问Device Farm的Access Key和Secret Key,也可以通过环境变量传递凭证 - 修改WDIO配置:添加AWS Device Farm服务配置,指定项目ARN、设备池ARN、地区等参数,不需要手动指定Appium的hostname和端口,服务会自动处理连接逻辑
3. Appium capabilities兼容性说明
绝大多数Appium标准capabilities都可以直接使用,但需要注意以下限制:
- 如果你指定了AWS Device Farm的设备池,那么
appium:deviceName、appium:platformVersion这类设备相关的配置会被设备池的规则覆盖,你填写的参数不会生效 - 部分安全相关、会修改测试环境的capability不被支持,使用前可参考AWS Device Farm的Appium支持列表
appium:noReset这类参数可能会被平台默认策略覆盖,建议在测试套件里自行处理应用状态重置逻辑
修改后的配置示例
const { join } = require('path'); const { config } = require('./wdio.conf'); // 追加AWS Device Farm服务配置 config.services = (config.services || []).concat([ ['aws-device-farm', { region: 'us-west-2', // 替换为你的AWS服务地区 projectArn: 'arn:aws:devicefarm:us-west-2:xxxxxx:project/xxxxxx', // 替换为你的Device Farm项目ARN devicePoolArn: 'arn:aws:devicefarm:us-west-2:xxxxxx:devicepool/xxxxxx/xxxxxx', // 替换为你的设备池ARN appArn: 'arn:aws:devicefarm:us-west-2:xxxxxx:app/xxxxxx/xxxxxx' // 替换为你上传IPA对应的ARN }] ]); config.specs = [ './tests/specs/**/*.spec.js', ]; config.capabilities = [ { platformName: 'iOS', maxInstances: 1, 'appium:orientation': 'PORTRAIT', 'appium:automationName': 'XCUITest', 'appium:newCommandTimeout': 240, }, ]; exports.config = config;
内容的提问来源于stack exchange,提问作者adbarads
相关产品推荐
相关产品推荐

