当前位置: 首页 > 面试题库 >

强制量角器的onPrepare等待异步http请求

颜均
2023-03-14
问题内容

我的量角器conf.js onPrepare函数需要发出一个看起来像这样的http请求,

onPrepare: function(done) {
    request.get('http://pepper/sysid')
      .end(function(err, resp){
        if(err || !resp.ok){
          log("there is an error " + err.message)
          done()
        }else{
          global.sysid = resp.sysid
          done()
         }
      })

它会引发错误,done is not a function

还有其他方法可以强制在onPrepare测试开始执行之前调用内部回调吗?


问题答案:

onPrepare()可以选择返回量角器在开始执行测试之前将解决的承诺:

onPrepare可以选择返回一个承诺,量角器将在继续执行之前等待。如果准备工作涉及任何异步调用,例如与浏览器进行交互,则可以使用此方法。否则,量角器不能保证执行顺序,并可能在准备工作完成之前开始测试

制作一个量角器promise并从退还onPrepare()

onPrepare: function() {
    var defer = protractor.promise.defer();

    request.get('http://pepper/sysid').end(function(err, resp) {
        if (err || !resp.ok) {
            log("there is an error " + err.message);
            defer.reject(resp);
        } else {
            global.sysid = resp.sysid;
            defer.fulfill(resp);
        }
    });

    return defer.promise;
},


 类似资料:
  • 我试图在react/electron项目中使用async/await,但它不起作用。我想要的是获取docker容器状态列表。但是安慰。日志(列表)返回未定义的。 有人能帮我吗?:)

  • 我有这个简单的例子给我的控制器,并没有像预期的那样工作 输出:开始、结束、中间 期望:开始、中间、结束

  • 所以我迁移我的量角器测试使用异步/等待(链接)。 到目前为止,迁移是比较成功的,直到我一直遇到这个问题。下面是我的测试步骤,然后是代码,作为我正在处理的示例: 导航到特定页面 上述步骤的相关代码: 测验ts 我一直得到这个错误: (节点: 13672)UnhandledPromiseRejse警告:未处理的promise拒绝(拒绝id: 1): StaleElementRequiceError:

  • 我正在尝试将数据库调用移出控制器,以清理并使其可测试。当它们在控制器中时,一切都会顺利进行。我将它们移出控制器,并添加了一个异步,以确保我们等待。否则,我将调用的中的函数。现在,一旦我使用async/await,控制器中的函数就会认为没有用户,因为它没有等待。 有几个关于异步等待的SO问题,但我没有找到一个解决我的问题。我确实验证了返回了我的用户,并添加了控制台日志来显示路径。 节点猫鼬异步等待似

  • 我试图使一个JSON调用异步/等待使用云函数为Firebase。 你知道如何修复下面的代码吗?我的计划失败了。 我的灵感是https://www.valentinog.com/blog/http-requests-node-js-async-await/ 部署误差 函数[setDetails]:部署错误。 异步URL SyntaxError:对象的createScript(vm.js:56:10)

  • 问题内容: 我正在测试AngularJS应用程序,并且对量角器非常新。每次我打开浏览器时,它都会打开,然后等待超时,然后在cmd上引发以下错误。 我尝试增加超时限制,但始终会收到此错误。我也尝试过使用所有这些: 该页面正确加载,并且如果我使用Eclipse和Selenium与按钮对象进行交互,则可以正常工作。 只有量角器出现同步问题。请帮忙。 问题答案: 量角器超时的可能原因: 您的网页未以预期的