【发布时间】:2017-02-22 08:59:29
【问题描述】:
感谢 Appium,我正在尝试将已经在 PC 上运行良好的 Protractor 测试用于混合应用程序。 正如您所猜测的那样,存在破坏链条的失败并且无法在谷歌上找到帮助。 这个问题比较难,因为涉及的软件很多,所以让我列出它们:
• Gulp(启动命令的经典服务器)
• Protractor(在 webdriver 上运行的测试语言)
• Phonegap(将网站编译为应用前:.apk)
• Appium(控制移动设备的中间服务器)
• 真实设备(调试模式:开启)
该过程几乎可以运行,我的意思是 apk 已安装好,应用程序启动并在 10 秒等待后,而不是开始测试,而是崩溃/忽略应用程序。 我在这里介绍两种情况,因为我不确定哪种配置适合我的设置。 我将详细信息留在下面,但简而言之:第一种情况 app.apk 已安装但被忽略,另一种情况下 apk 启动但崩溃(约 3 秒后)
这里是 Gulp 启动命令:
gulp.task('appium', ['webdriver_update'], function (cb) {
return gulp.src(['packages/custom/*/public/tests/e2e/*.spec.js']).pipe(protractor({
configFile: __dirname + '/../protractor.appium.conf.js',
args: ['--baseUrl', 'http://10.56.160.74:3000'] //My Local IP: Website Port
})).on('error', function (e) {
console.log(e);
});
});
这是我的量角器/Appium 配置:
exports.config = {
framework: 'jasmine2',
seleniumAddress: 'http://localhost:4723/wd/hub',
capabilities: {
fullReset: true,
browserName: 'android',
deviceName: "Galaxy Note S3",
platformName: "Android",
platformVersion: "5.1.1",
app: "C:/Projet/Spherea/appca/packages/custom/appca/public/apk/appca.apk",
'app-package': 'com.spherea.appca',
'app-captivity': 'MainActivity',
autoWebview: true //<= On/Off change the scenario
},
onPrepare: function () {
var wd = require('wd'),
protractor = require('gulp-protractor').protractor,
wdBridge = require('wd-bridge')(protractor, wd);
wdBridge.initFromProtractor(exports.config);
}
};
当 autoWebview = true 时:
应用程序在启动时冻结,并且在启动量角器测试失败 10 秒后,Appium 放弃并启动浏览器并在那里处理测试,这不是我需要的。
autoWebview = false 时出错:
[launcher] Running 1 instances of WebDriver
ERROR - Unable to start a WebDriver session.
[launcher] Error: UnknownError: Not yet implemented. Please help us: http://appium.io/get-involved.html
at new bot.Error (C:\Projet\Spherea\appca\node_modules\gulp-protractor\node_modules\protractor\node_modules\selenium-webdriver\lib\atoms\error.js:108:18)
at Object.bot.response.checkResponse (C:\Projet\Spherea\appca\node_modules\gulp-protractor\node_modules\protractor\node_modules\selenium-webdriver\lib\atoms\response.js:
109:9)
at C:\Projet\Spherea\appca\node_modules\gulp-protractor\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:379:20
at [object Object].promise.ControlFlow.runInFrame_ (C:/Projet/Spherea/appca/node_modules/gulp-protractor/node_modules/protractor/node_modules/selenium-webdriver/lib/goog
/../webdriver/promise.js:1857:20)
at [object Object].goog.defineClass.notify (C:/Projet/Spherea/appca/node_modules/gulp-protractor/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/../webd
river/promise.js:2448:25)
at [object Object].promise.Promise.notify_ (C:/Projet/Spherea/appca/node_modules/gulp-protractor/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/../webd
river/promise.js:564:12)
at Array.forEach (native)
at [object Object].promise.Promise.notifyAll_ (C:/Projet/Spherea/appca/node_modules/gulp-protractor/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/../w
ebdriver/promise.js:553:15)
at goog.async.run.processWorkQueue (C:\Projet\Spherea\appca\node_modules\gulp-protractor\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:13
0:15)
at runMicrotasksCallback (node.js:337:7)
[launcher] Process exited with error code 100
我希望有人可以帮助我,我已经浪费了 10 天的时间尝试这个,我现在不知道如何解决这个问题。
【问题讨论】:
标签: android testing protractor apk appium