我正在使用Protractor + Jasmine + Selenium WebdriverJS来自动化angularjs应用程序。我能够使用所有这些工具配置和设置示例脚本,以便在台式计算机上运行。
现在我想在移动设备(IOS和Android)设备/模拟器上运行相同的脚本。
我希望使用appium在IOS和Android上运行量角器脚本。如果有人研究过量角器和appium。请帮我设置一个示例脚本。
我对所有这些工具都很陌生,任何关于此的信息都非常有用。
答案 0 :(得分:4)
在https://github.com/angular/protractor/blob/master/docs/browser-setup.md您可以找到非常详细的信息,如何使用量角器设置appium以在模拟器上进行测试(Android / iOS)
你必须用appium webdriver替换量角器的webdriver。 appium webdriver正常运行在端口4723.以下代码是针对一个仅限web的angualr应用程序的android(没有apk,纯web,在必须存在的设备的cromebrowser中运行)
exports.config = {
seleniumAddress: 'http://localhost:4723/wd/hub', //appium
specs: [
'spec.js'
],
capabilities: {
browserName: 'chrome',
'appium-version': '1.0',
platformName: 'Android',
platformVersion: '4.4.2',
deviceName: 'Android Emulator',
},
baseUrl: 'http://yourwebsite.com'),
};
启动appium并使用
运行测试protractor yourtest.js
编辑:使功能适应最新版本(selenium 2.43.x必须存在browserName)
答案 1 :(得分:3)
您是否尝试过使用SauceLabs?我认为您可以通过在配置的功能部分中指定平台来请求iOS和Android设备。
如果您不想使用SauceLabs,可以查看使用Selenium的网格功能。你可以获得适用于iOS和Android的Selenium驱动程序,并将它们连接到运行Protractor场景的集中式Selenium服务器,只需将配置文件中的seleniumAddress更改为指向中央服务器即可。
基本上,您必须远程连接设备,最简单的方法如上所述。
答案 2 :(得分:0)
只是想分享这个配置对我来说对BrowserStack .-
cases = list(set(actions))
fig, ax = plt.subplots()
ax.hist(map(lambda x: times[actions==x], cases),
bins=np.arange(min(times), max(times) + binwidth, binwidth),
histtype='bar', stacked=True, label=cases)
ax.legend()
plt.show()
我发现multiCapabilities: [
{
platformName: 'iOS',
platformVersion: '7.1',
browserName: '',
app: 'safari',
deviceName: 'iPhone Simulator',
'appium-version': "1.4.0",
username: '<username>',
accessKey: '<key>'
}
,
{
platformName: 'Android',
platformVersion: '4.4',
browserName: 'Browser',
deviceName: 'Android Emulator',
'appium-version': "1.4.0",
username: '<username>',
accessKey: '<key>'
}
],
的其他值与我放在这里的值不同,不起作用,你会收到如下错误信息:'找不到Angular ....'
我为量角器团队创建了一张票并发表评论: https://github.com/angular/protractor/issues/2247