Javascript 使用Nightwatch进行演示-通过配置减慢断言速度

Javascript 使用Nightwatch进行演示-通过配置减慢断言速度,javascript,selenium,nightwatch.js,acceptance-testing,Javascript,Selenium,Nightwatch.js,Acceptance Testing,我和我的团队正在使用Nightwatch为总共五个系统的面向微服务的体系结构编写端到端验收测试。 在做了一些工作来设置它并将我们的服务与docker compose连接在一起之后,它现在工作得很好,所有测试都在浏览器的UI上点击(而不是无头) 我们也想到了将其用于演示(初始sprint演示等),并想知道是否存在某种设置(我们到目前为止还没有发现)或其他可能,以便在单击/测试/断言和所有操作之间添加一些人为延迟 有人有想法吗?您可以使用以下命令在套件中的任何位置添加暂停: .pause(5000)

我和我的团队正在使用Nightwatch为总共五个系统的面向微服务的体系结构编写端到端验收测试。 在做了一些工作来设置它并将我们的服务与docker compose连接在一起之后,它现在工作得很好,所有测试都在浏览器的UI上点击(而不是无头)

我们也想到了将其用于演示(初始sprint演示等),并想知道是否存在某种设置(我们到目前为止还没有发现)或其他可能,以便在单击/测试/断言和所有操作之间添加一些人为延迟


有人有想法吗?

您可以使用以下命令在套件中的任何位置添加暂停:

.pause(5000) // a pause for 5 seconds
//or alternately
.pause(this.timeout)
可以在base-test-case.js中设置this.timeout

var timeout = 5000; // in your variable declarations
然后在同一个文件中,在基类原型上,您需要:

  before: function (client) {
    this.timeout = timeout;

浏览器。在单击或设置值之间暂停
以获得良好的延迟,100-300毫秒之间的任何时间都是好的


因此,如果我有多个断言,我必须在每个断言之前放置一个
.pause()
?这有点难看。从SeleniumIDE中,我知道有一个滑块可以在执行下一个命令之前自动等待特定的时间。那么在夜视中就没有等价物了?(例如开始时的global
.setSpeed()
命令)不,您不需要在每个断言之前放置暂停。在大多数情况下,您根本不需要这样做,但假设您正在等待某个项添加到DOM或页面加载,您可以使用.waitForElementPresent(选择器,超时)没有等效的setSpeed(),因为不需要。虽然我见过它是这样使用的,但它并不是一个演示工具。但是,如果您想将其用作演示,您可能希望对应用程序的任何部分使用。暂停(超时)。对于演示或复杂页面(例如使用转换的控件),将测试运行程序置于“慢速模式”是一项旧功能,也是必须具备的功能。在代码中乱丢暂停或等待是e2e测试脆弱、缓慢和难以维护的原因。水豚继续为e2e测试的好坏设定标准。