Protractor 如何使用量角器与crossbrowsertesting.com建立本地连接?

Protractor 如何使用量角器与crossbrowsertesting.com建立本地连接?,protractor,cross-browser,Protractor,Cross Browser,如何在crosbrowsertesting.com的本地网络中使用量角器测试角度页面?我安装了“npm I cbt_tunnels”,我的dragrator.conf如下所示: const cbt = require('cbt_tunnels'); export.config= { baseUrl: 'http://localhost:4200/', framework: 'jasmine', directConnect: false, seleniumAddress: 'http://

如何在crosbrowsertesting.com的本地网络中使用量角器测试角度页面?我安装了“npm I cbt_tunnels”,我的dragrator.conf如下所示:

const cbt = require('cbt_tunnels');
export.config= {
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
  directConnect: false,
  seleniumAddress: 'http://<myusername>:<mykey>@hub.crossbrowsertesting.com:80/wd/hub',
  capabilities : {
    name : 'protractor test', // this will show up in the UI
    // these are important :)
    browserName : "firefox",
    browser_api_name : 'FF39', // change this according to what browser you are using
    os_api_name : 'Win10', // change this for the OS you are using
    screen_resolution : '1024x768', // change this for the resolution
    record_video : 'true',
    record_network : 'true',
    record_snapshot : 'true',
    acceptInsecureCerts: 'true',
    tunnel: 'true'

  },
  onComplete: () => {
    browser.quit();
  },

  onPrepare() {
      cbt.start({"username": "<myusername>", "authkey": 
  "<mykey>"}, function (err) {
        if (!err) console.log("cbt success");
      });
    }
  beforeLaunch: () => {
    return new Promise( (resolve, reject) => {
      cbt.start({"username": "<your email here>", "authkey": "<your auth here>"}, function (err) {
        if (!err) {
          console.log("cbt success");
          return resolve();
        }
        return reject(err);
      });
    })
  }
const cbt=require('cbt_tunnels');
export.config={
baseUrl:'http://localhost:4200/',
框架:“茉莉花”,
directConnect:错误,
seleniumAddress:'http://:@hub.crossbrowserting.com:80/wd/hub',
能力:{
名称:'量角器测试',//这将显示在UI中
//这些都很重要:)
浏览器名称:“firefox”,
browser\u api\u name:'FF39',//根据您使用的浏览器更改此设置
os_api_名称:'Win10',//为您正在使用的操作系统更改此名称
屏幕分辨率:“1024x768”,//更改此分辨率
录制视频:“真实”,
记录网络:“正确”,
记录_快照:“true”,
AcceptUnsecureCerts:“true”,
地道:“真的”
},
未完成:()=>{
browser.quit();
},
onPrepare(){
cbt.start({“用户名”:“”“身份验证码”:
“”},函数(错误){
if(!err)console.log(“cbt成功”);
});
}
我可以在crossbrowsertesting.com上看到测试运行,但那里的浏览器显示:
等待本地主机


缺少什么?

正如评论者所指出的,在实际使用本地连接功能之前,您需要启动本地连接

在这种情况下,您需要使用以下行:
'cbt.start({“username”:“username”,“authkey”:“authkey”},函数(err){if(!err)do stuff})
这将允许您在正确设置本地连接后自动启动测试

在这种情况下,
do stuff
就是运行测试的一切(搭建/设置可以在外部完成)

这才是你真正想要的

const cbt = require('cbt_tunnels');
cbt.start({"username":"USERNAME","authkey":"AUTHKEY"},
    function(err){ 
        if(!err) do stuff 
    });
编辑: 您似乎希望在启动前在
中启动隧道,而不是在
onPrepare
中启动隧道,并且需要将其设置为承诺。如下所示:

const cbt = require('cbt_tunnels');
export.config= {
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
  directConnect: false,
  seleniumAddress: 'http://<myusername>:<mykey>@hub.crossbrowsertesting.com:80/wd/hub',
  capabilities : {
    name : 'protractor test', // this will show up in the UI
    // these are important :)
    browserName : "firefox",
    browser_api_name : 'FF39', // change this according to what browser you are using
    os_api_name : 'Win10', // change this for the OS you are using
    screen_resolution : '1024x768', // change this for the resolution
    record_video : 'true',
    record_network : 'true',
    record_snapshot : 'true',
    acceptInsecureCerts: 'true',
    tunnel: 'true'

  },
  onComplete: () => {
    browser.quit();
  },

  onPrepare() {
      cbt.start({"username": "<myusername>", "authkey": 
  "<mykey>"}, function (err) {
        if (!err) console.log("cbt success");
      });
    }
  beforeLaunch: () => {
    return new Promise( (resolve, reject) => {
      cbt.start({"username": "<your email here>", "authkey": "<your auth here>"}, function (err) {
        if (!err) {
          console.log("cbt success");
          return resolve();
        }
        return reject(err);
      });
    })
  }
发布前:()=>{
返回新承诺((解决、拒绝)=>{
cbt.start({“username”:“”“authkey”:“”},函数(err){
如果(!err){
console.log(“cbt成功”);
返回resolve();
}
退货拒绝(err);
});
})
}

您应该首先创建一个隧道,然后运行测试。请阅读如何执行。谢谢,抱歉,我上面的代码片段不完整,我更新了它。我有cbt.start,但我的测试用例没有发生在回调中。我注意到您的帖子现在包含一个console.log-当您尝试运行测试时,是否会出现这种情况?