我想为Angular App构建一个Testsuite。测试套件应该使用框架“量角器”。
当我使用protractor local.config.js
启动本地测试套件时,测试运行成功。
当我使用BrowserStack 无代理启动测试套件时,一切都还可以。
现在我的问题:
如果我想通过代理后面的本地浏览器堆栈执行测试,我必须做什么设置?
主要BrowserStack配置:
var
proxy = 'http://proxy.example.com:8888';
exports.config = {
capabilities: {
project: 'BrowserStack (beyond Proxy)',
proxy: {
proxyType: 'manual',
httpProxy: proxy,
sslProxy: proxy,
},
loggingPrefs: {
driver: "FINE",
server: "OFF",
browser: "FINE"
},
'browserstack.user': 'USER_KEY',
'browserstack.key': 'ACCESS_KEY', // show on BrowserStack
// Needed for testing localhost
'browserstack.local' : 'true',
// Settings for the browser you want to test
// (check docs for difference between `browser` and `browserName`
'browserName' : 'chrome',
'version' : '43.0',
'os' : 'OS X',
'os_version' : 'Yosemite',
'resolution' : '1024x768'
},
seleniumAddress: 'http://hub.browserstack.com/wd/hub',
specs: [
'test/e2e/**/*.spec.js'
]
};
我使用以下参数调用脚本“BrowserStackLocal”:
./BrowserStackLocal -v -proxyHost PROXY_DOMAIN -proxyPort PROXY_PORT $ACCESS_KEY localhost,$PORT,0
Stepts:
node app.js
答案 0 :(得分:1)
当您在代理服务器后面时,您需要做两件事:
如果您正在测试本地服务器,则需要通过传递代理详细信息来设置本地测试连接,我假设您正在这样做。
您必须确保通过Protractor发出的Selenium请求也会到达BrowserStack。最简单的选择是使用global-tunnel npm包。如果您的代理服务器位于身份验证之后,您可以尝试使用tunnel npm模块。
答案 1 :(得分:1)
您不再需要使用global-tunnel。现在有一个新的配置选项webDriverProxy:
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
webDriverProxy: 'http://127.0.0.1:8888',
capabilities: {
browserName: 'chrome'
},
specs: ['*.spec.js'],
};