我正在尝试在多个Android设备的Chrome浏览器上运行我的测试。我正在使用带有appium的量角器。我正在启动2个具有不同端口的appium服务器,即4723
和4725
,并指定具有2个设备信息的多功能。我尝试过仿真器和真实设备。当我运行配置文件时,即使我指定了设备UDID,两个Appium服务器也试图访问一个设备。我对量角器非常新。谁能帮我?以下是我的配置文件
config.js
exports.config = {
framework: 'jasmine',
specs: ['Sample.js','Sample_1.js'],
multiCapabilities: [{
seleniumAddress: 'http://localhost:4723/wd/hub',
browserName: 'Chrome',
// 'appium-version': '1.4.16',
platformName: 'Android',
platformVersion: '6.0.1',
deviceName: 'abc',
UDID:'abc',
shardTestFiles: true
}, {
seleniumAddress: 'http://localhost:4725/wd/hub',
browserName: 'Chrome',
// 'appium-version': '1.0',
platformName: 'Android',
platformVersion: '4.4.4',
deviceName: 'def',
UDID:'def',
shardTestFiles: true
}],
onPrepare: function () {
}
};
答案 0 :(得分:2)
前一段时间我遇到了同样的问题。
我修复了两个不同的config.js
文件:
config-mobile-4723.js
config-mobile-4725.js
您只需将config.js
拆分为两个文件config-mobile-4723.js
和config-mobile-4725.js
,然后使用protractor config-mobile-4723.js & protractor config-mobile-4725.js
并行运行两个命令
我不确定它是否是最佳解决方案,但它确实有效。
答案 1 :(得分:2)
我遇到了同样的问题。但我没有使用量角器。我使用了Appium和JUnit以及Cucumber。对我来说,即使我将这两个设备连接到我的笔记本电脑,脚本也始终在第一个显示“adb devices”命令的设备上运行。
我后来发现我必须使用 Appium Port,Bootstrap Port和UDID 的不同组合。为我提供了所有这3个标志的不同值。
由于您使用的是Chrome驱动程序,因此您需要为ChromeDriver端口提供不同的值
以下文章使用Java Thread进行并行执行,但该方法也可以与其他方法一起使用 - http://automationtestinghub.com/appium-parallel-execution/