首页 > 解决方案 > AWS Device Farm 测试用例失败

问题描述

在三星 Galaxy Note 10 的 AWS 设备场上运行测试用例时,出现以下错误。PS:这个问题不是因为模块。

Failed to start Appium server: uncaughtException: Cannot find module 'internal/util/types'
date=Fri Dec 11 2020 09:09:29 GMT+0000 (Coordinated Universal Time), pid=8265, uid=1001, gid=1001, cwd=/usr/local/avm/versions/1.4.16/node_modules/appium, execPath=/usr/bin/node, version=v10.14.0, argv=[/usr/bin/node, /usr/local/bin/appium, --pre-launch, --log-timestamp, --log-no-colors, --use-keystore, --app, /tmp/scratchHgV3fC.scratch/share-cDnEwS.scratch/app-lHmzCQ.apk, --udid, R58M78B6WRN, --address, 127.0.0.1, --port, 4723, --log-level, debug, --platform-name, Android, --tmp, /tmp/scratchHgV3fC.scratch/appium-CqtB4x, --device-name, R58M78B6WRN, --platform-version, 9, --app-pkg, com.audetemi.trackhelp, --app-activity, com.audetemi.trackhelp.ui.activities.SplashActivity, --chromedriver-executable, /opt/chromedriver/linux/65/chromedriver], rss=89526272, heapTotal=73527296, heapUsed=45065896, external=848015, loadavg=[0.4404296875, 0.4755859375, 0.431640625], uptime=6914, trace=[column=15, file=internal/modules/cjs/loader.js, function=Function.Module._resolveFilename, line=580, method=Module._resolveFilename, native=false, column=25, file=internal/modules/cjs/loader.js, function=Function.Module._load, line=506, method=Module._load, native=false, column=17, file=internal/modules/cjs/loader.js, function=Module.require, line=636, method=require, native=false, column=18, file=internal/modules/cjs/helpers.js, function=require, line=20, method=null, native=false, column=31, file=evalmachine.<anonymous>, function=null, line=44, method=null, native=false, column=1, file=/usr/local/avm/versions/1.4.16/node_modules/appium/node_modules/md5calculator/node_modules/unzip/node_modules/fstream/node_modules/graceful-fs/fs.js, function=, line=11, method=null, native=false, column=30, file=internal/modules/cjs/loader.js, function=Module._compile, line=688, method=_compile, native=false, column=10, 

标签: appium-androidaws-device-farm

解决方案


您的测试代码正在使用 Appium server version 1.4.16,AWS Device Farm 不再支持这个旧版本。AWS Device Farm 上要求的最低 Appium 版本是1.9.1,并且使用自定义测试环境模式功能,您可以使用更新的版本,例如 1.16.0。

要更改您的 Appium 版本,标准模式用户将通过ScheduleRun API 中的 API 测试参数选项(测试 -> 参数 -> appium_version)更改他们的版本(如果使用 CLI/SDK)。自定义环境用户将修改其测试规范文件install阶段的开始行(请参阅https://docs.aws.amazon.com/devicefarm/latest/developerguide/custom-test-environments.html)以使用不同版本的appium 节点。

从 AWS Device Farm 控制台安排运行时,将有测试规范示例用于更改您的 Appium 版本,使用avm. 我建议查看该示例文件,了解如何使用/配置自定义测试环境模式。

如果您仍有问题,通常可以在AWS Device Farm 论坛或通过支持电子邮件获得更具体的帮助:aws-devicefarm-support@amazon.com


推荐阅读