在 运行 testcafe 和 browserstack 时获取 "Unable to establish one or more of the specified browser connections"
Getting "Unable to establish one or more of the specified browser connections" when running testcafe and browserstack
我们正在为我们的 jenkins 中的 运行ning testcafe 和 browserstack 创建一个 POC。
jenkins 文件启动一个节点实例,启动 upp browserstack local,运行s 测试,然后关闭 browserstack local。
browserstack 本地日志表明它工作正常,但控制台显示“错误无法建立一个或多个指定的浏览器连接。这可能是由网络问题或远程设备故障引起的。”
我可以在 browserstack 仪表板中看到浏览器已启动并给出 URL(示例:http://127.0.0.1:44138/browser/connect/bl5rZIw),但浏览器给出“无法连接到页面”[=15] =]
如果我从 browserstack 更改为本地 chrome 一切正常。如果我 运行 本地机器上的东西它可以工作(使用 browserstack。)
网络人在防火墙中找不到任何相关块。只调用 githubb。
(185.199.110.153, TCP/443,140.82.121.3, TCP/443 - BLOCKERAT,140.82.121.5, TCP/443 - BLOCKERAT, 140.82.121.6, TCP/443 - BLOCKERAT)
关于缺少什么或如何深入研究这个问题的任何想法。
相关文件
------------jenkins.openshift-------------------------
node('nodejs-14') {
withRepository {
stage('Install dependencies') {
withProxy {
sh 'npm install'
}
}
stage('Test') {
withProxy {
withEnv([
"BROWSERSTACK_LOCAL_IDENTIFIER=${env.BUILD_TAG}",
"BROWSERSTACK_USERNAME=<secret :)>",
"BROWSERSTACK_ACCESS_KEY=<secret :)>"
]) {
try {
sh "src/support/linux/BrowserStackLocal --key ${env.BROWSERSTACK_ACCESS_KEY} --local-identifier ${env.BUILD_TAG} --daemon start --force-local --proxy-host rbp-openshift-registry-001.wa.loc --proxy-port 3128 --local-proxy-host <secter :)> --local-proxy-port 3128 --verbose 2 --log-file ${env.WORKSPACE}/browserstack.log"
sh "npm test"
} finally {
sh "src/support/linux/BrowserStackLocal --key ${env.BROWSERSTACK_ACCESS_KEY} --local-identifier ${env.BUILD_TAG} --daemon stop"
archiveArtifacts artifacts: 'browserstack.log'
}
}
}
}
}
}
--------------------package.json-------------------- ------------
{
"name": "testcafe-poc",
"version": "1.0.0",
"description": "A Proof of Concept project and template for running testcafe and browserstack. ",
"main": "index.js",
"scripts": {
"test": "node_modules/.bin/testcafe 'browserstack:chrome@93.0:Windows 10' --hostname 127.0.0.1 --proxy rbp-openshift-registry-001.wa.loc:3128 ./src/tests/test1.js"
},
"repository": {
"type": "git",
"url": "ssh://git@code.resurs.loc:7999/test/testcafe-poc.git"
},
"author": "",
"license": "ISC",
"devDependencies": {
"testcafe": "1.9.4",
"testcafe-browser-provider-browserstack": "1.13.1"
},
"dependencies": {}
}
您提到在没有 Jenkins 的情况下在本地一切正常。这意味着BrowserStack的TestCafe没有报错。
问题可能出在您的 BrowserStack Local 配置中。 testcafe-browser-provider-browserstack
已经有自己的 BrowserStackLocal 实例,因此没有必要使用 src/support/linux/BrowserStackLocal
.
中的 BrowserStackLocal
请参考以下问题以了解如何设置 BrowserStack 代理设置:https://github.com/DevExpress/testcafe-browser-provider-browserstack#browserstack-proxy-options。
解决方案简单而荒谬。
我们在 --local-identifier
的 sting 中使用了 %
,这使得 BrowserStack 本地无法连接。
但它不会在日志或文档中告诉您这一点。
所以解决方法是:不要在--local-identifier
.
中使用特殊字符
我们正在为我们的 jenkins 中的 运行ning testcafe 和 browserstack 创建一个 POC。 jenkins 文件启动一个节点实例,启动 upp browserstack local,运行s 测试,然后关闭 browserstack local。 browserstack 本地日志表明它工作正常,但控制台显示“错误无法建立一个或多个指定的浏览器连接。这可能是由网络问题或远程设备故障引起的。”
我可以在 browserstack 仪表板中看到浏览器已启动并给出 URL(示例:http://127.0.0.1:44138/browser/connect/bl5rZIw),但浏览器给出“无法连接到页面”[=15] =]
如果我从 browserstack 更改为本地 chrome 一切正常。如果我 运行 本地机器上的东西它可以工作(使用 browserstack。)
网络人在防火墙中找不到任何相关块。只调用 githubb。 (185.199.110.153, TCP/443,140.82.121.3, TCP/443 - BLOCKERAT,140.82.121.5, TCP/443 - BLOCKERAT, 140.82.121.6, TCP/443 - BLOCKERAT)
关于缺少什么或如何深入研究这个问题的任何想法。
相关文件 ------------jenkins.openshift-------------------------
node('nodejs-14') {
withRepository {
stage('Install dependencies') {
withProxy {
sh 'npm install'
}
}
stage('Test') {
withProxy {
withEnv([
"BROWSERSTACK_LOCAL_IDENTIFIER=${env.BUILD_TAG}",
"BROWSERSTACK_USERNAME=<secret :)>",
"BROWSERSTACK_ACCESS_KEY=<secret :)>"
]) {
try {
sh "src/support/linux/BrowserStackLocal --key ${env.BROWSERSTACK_ACCESS_KEY} --local-identifier ${env.BUILD_TAG} --daemon start --force-local --proxy-host rbp-openshift-registry-001.wa.loc --proxy-port 3128 --local-proxy-host <secter :)> --local-proxy-port 3128 --verbose 2 --log-file ${env.WORKSPACE}/browserstack.log"
sh "npm test"
} finally {
sh "src/support/linux/BrowserStackLocal --key ${env.BROWSERSTACK_ACCESS_KEY} --local-identifier ${env.BUILD_TAG} --daemon stop"
archiveArtifacts artifacts: 'browserstack.log'
}
}
}
}
}
}
--------------------package.json-------------------- ------------
{
"name": "testcafe-poc",
"version": "1.0.0",
"description": "A Proof of Concept project and template for running testcafe and browserstack. ",
"main": "index.js",
"scripts": {
"test": "node_modules/.bin/testcafe 'browserstack:chrome@93.0:Windows 10' --hostname 127.0.0.1 --proxy rbp-openshift-registry-001.wa.loc:3128 ./src/tests/test1.js"
},
"repository": {
"type": "git",
"url": "ssh://git@code.resurs.loc:7999/test/testcafe-poc.git"
},
"author": "",
"license": "ISC",
"devDependencies": {
"testcafe": "1.9.4",
"testcafe-browser-provider-browserstack": "1.13.1"
},
"dependencies": {}
}
您提到在没有 Jenkins 的情况下在本地一切正常。这意味着BrowserStack的TestCafe没有报错。
问题可能出在您的 BrowserStack Local 配置中。 testcafe-browser-provider-browserstack
已经有自己的 BrowserStackLocal 实例,因此没有必要使用 src/support/linux/BrowserStackLocal
.
请参考以下问题以了解如何设置 BrowserStack 代理设置:https://github.com/DevExpress/testcafe-browser-provider-browserstack#browserstack-proxy-options。
解决方案简单而荒谬。
我们在 --local-identifier
的 sting 中使用了 %
,这使得 BrowserStack 本地无法连接。
但它不会在日志或文档中告诉您这一点。
所以解决方法是:不要在--local-identifier
.