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

您如何使用量角器向流量控制队列中添加承诺?

路伟
2023-03-14
问题内容

在我的测试中,我调用了外部库并在使用量角器运行一些ui测试之前将数据播种到我们的后端。

'use strict'

var dataBuilder = require('data_builder.js');

describe('test', function () {
  var testData = {
    name: 'foo',
    title: 'bar',
    ...
  };

  beforeEach(function () {
    //create test data on the backend
    dataBuilder.create(testData).then(function (id) {
      testData.id = id.id;
    });
  });



  it('test something', function () {
    ...
  });

因此,dataBuilder返回的promise在it()实际完成之前不会得到解决。如何将dataBuilder返回的Promise添加到webDriver的流控制中?


问题答案:

量角器在量角器对象上公开WebDriverJS承诺,因此您可以使用flow.await方法或创建新的承诺和使用flow.execute

前者可以达到以下目的:

flow = protractor.promise.controlFlow()

flow.await(dataBuilder.create(testData)).then( function(id) {
    testData.id = id.id;
})

您可以在此博客文章中看到后者的示例。

这可以在it函数本身中完成,或者如果所有测试都通用,则考虑将其放在onPrepare量角器配置的函数中。



 类似资料:
  • 问题内容: 我对angular中的$ q库如何工作有一个不错的想法,但是我不确定量角器或web-driver- js如何使用它们。(特别是因为我认为量角器/网络驱动程序/角度之间的利用率略有不同) 例如,我在量角器教程中看到的示例代码似乎是逐行编写的,并且假定上一个在下一个之前完成。(例如,browser.get(url)后跟browser.getTitle())是否存在某种隐含的承诺?(我不必手

  • 目录 概述 基于 QPS/并发数的流量控制 基于调用关系的流量控制 概述 流量控制(flow control),其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。 FlowSlot 会根据预设的规则,结合前面 NodeSelectorSlot、ClusterBuilderSlot、StatisticSlot 统

  • 问题内容: 我想在量角器测试中输出div的文本,到目前为止,我有: 但这输出 我尝试了“ toString()”,结果相同。 有没有办法将文本输出到控制台? 问题答案: 和其他大多数量角器方法都返回承诺。您想将您的陈述放入承诺解决方案中: 使用新的量角器语法:

  • 缺省情况下,启用了Istio的服务是无法访问外部URL的,这是因为Pod中的iptables把所有外发传输都转向到了Sidecar代理,而这一代理只处理集群内的访问目标。 本节内容会描述如何把外部服务提供给启用了Istio的客户端服务使用,你会学到如何使用Egress规则访问外部服务,或者如何简单的让特定IP范围穿透Istio代理。 开始之前 遵循安装指南设置Istio 启动sleep示例,用于测

  • 问题内容: 库具有此整齐的功能,可以解决多个promise并将其分散到单独的参数中: 如果对数组有保证,则可以使用点差代替。传播函数将值“传播”在实现处理程序的参数上。 在量角器中,我们尝试使用来自的内置函数。 问题: 是否可以使用“传播”功能? 用例示例: 我们已经实现了一个自定义的茉莉花匹配器,以检查元素是否聚焦。在这里,在进行相等比较之前,我们需要解决两个诺言。目前,我们正在使用和: 理想情

  • 1 背景 在系统访问量较大时,某些库的负载可能非常高,或者因为临时故障或系统bug导致大量异常SQL打到某个库上。为了防止数据库被这些异常流量打垮,需要在数据库访问层上对MySQL进行保护,因此zebra需要提供对某些特定SQL或某个库进行限流的功能。(SQL限流只是用于临时解决问题,事后还需业务方进行优化或扩容) 2 目标 动态限流,可动态配置限流策略与流量大小 支持限制某个数据源上的某些特定的