Protractor 浏览器堆栈&x2B;量角器+;TravisCi和安全本地主机服务器-配置

Protractor 浏览器堆栈&x2B;量角器+;TravisCi和安全本地主机服务器-配置,protractor,travis-ci,browserstack,Protractor,Travis Ci,Browserstack,尝试使用e2e测试来测试我的服务器及其在TraviCI上的UI。但是,我无法提供运行所有组件和访问BrowserStack上的seleniumServer所需的配置。 我可以启动我的会话,但在启动https://localhost:3000/login我看到浏览器显示未找到的页面。如果我手动运行./BrowserStackLocal工具并使用browserstack访问我的本地主机,那么这样做没有问题。 这是我的档案: /travis.yaml 插件: 浏览器堆栈: 用户名:“ 访问密钥: 安

尝试使用e2e测试来测试我的服务器及其在TraviCI上的UI。但是,我无法提供运行所有组件和访问BrowserStack上的seleniumServer所需的配置。 我可以启动我的会话,但在启动
https://localhost:3000/login
我看到浏览器显示未找到的页面。如果我手动运行./BrowserStackLocal工具并使用browserstack访问我的本地主机,那么这样做没有问题。 这是我的档案:

/travis.yaml

插件:
浏览器堆栈:
用户名:“
访问密钥:
安全:“
config.js
var browserstack=require('browserstack-local');
exports.config={
所有脚本时间:11000,
规格:[
'specs/*.js'
],
“seleniumAddress”:”http://hub.browserstack.com/wd/hub',
“能力”:{

'browserstack.user':'',//因为您正在browserstack上测试本地/私有环境,所以必须遵循以下步骤:

1) 通过二进制文件创建本地测试连接

2) 在配置文件中添加功能“browserstack.local”:true

我在config.js文件中看不到这个功能。添加这个功能,事情就应该正常了


您的脚本看起来很像。

我最近也遇到了同样的问题。首先,Ashwin说得对,您需要将
'browserstack.local':true
添加到量角器配置文件中。接下来,您需要添加
“browserstack local”:“^1.3.0”
devDependencies
下的
package.json
。这是在生成服务器上安装Browserstack本地二进制文件所必需的

package.json:

...
"devDependencies": {
 "browserstack-local": "^1.3.0"
}
除此之外,配置/设置并不是问题,而是如何启动影响应用程序所服务端口的测试

当您使用本地二进制文件运行时,它工作的原因是您的应用程序是在上启动的

但是,当您通过Travis(通过运行
ng e2e
或类似方式)构建和运行应用程序时,它实际上会在另一个端口上启动您的应用程序(有关角度端口的更多信息,请参阅本文)。您可以通过查看控制台日志来确认这一点,它应该从以下内容开始:

> ng e2e

** NG Live Development Server is listening on localhost:49152, open your browser on http://localhost:49152 **
在上面的示例中,它从端口49152开始。因此,如果您在测试规范中的某个地方有localhost:3000硬编码,它将找不到任何内容。要解决此问题,请在测试规范文件中,而不是在
browser.get('http://localhost:3000/login)
,请尝试
browser.get(browser.baseUrl+'/login')


我意识到这个答案对你来说可能太晚了,但希望它对其他人有帮助。

你能共享构建日志吗?构建日志只是显示页面上未找到的元素。当我查看BrowserStack视频时,我可以看到该页面在浏览器中打开,但未找到。告诉我本地测试隧道没有在Travis上运行因此browserstack无法访问它。如果我配置了Travis插件,并使用上面的配置运行测试,我会看到一个错误,表明本地隧道已经在运行(该插件启动隧道)。因此,它肯定会尝试启动它,但没有其他可用的错误显示问题可能出现的位置以及错误配置。我添加了browserstack.local设置,但仍然遇到相同的问题。关于(1)的一个问题…您的意思是使用二进制文件创建本地连接。我已在本地下载并运行该二进制文件,但如果在运行测试时运行该二进制文件,则会得到一个错误指示端口。当我杀死该二进制文件时,我的量角器规范在Browserstack上运行良好。因此是否需要该二进制文件来运行停止以配置某些测试在本地测试可以完成之前对环境进行测试?在测试运行时,它当然不能运行。我刚刚想起我们需要添加browserstack本地二进制文件作为devDependency。编辑了我的答案。
...
"devDependencies": {
 "browserstack-local": "^1.3.0"
}
> ng e2e

** NG Live Development Server is listening on localhost:49152, open your browser on http://localhost:49152 **