gpt4 book ai didi

selenium - Protractor 中的 "defaultTimeoutInterval"何时重置?

转载 作者:行者123 更新时间:2023-12-05 09:17:24 24 4
gpt4 key购买 nike

我正在使用 ProtractorJasmineAngular2 应用程序编写端到端测试用例。

我有两个问题:

<强>1。关于 DefaultTimeoutInterval

我的理解是,只要 promise 开始,如果 promise 没有在 protractor.conf.js 中指定的 defaultTimeoutInterval 内完成,protractor 就会开始倒计时将导致控制台上出现错误。但是,如果 promise 在 defaultTimeoutInterval 内完成,则倒计时将重置并在下一个 promise 开始时开始。

如果以上内容属实,我想澄清一下,如果我有一个 promise 链,那么倒计时何时重置?在链中的所有 promise 完成后还是在每个 promise 完成后?

如果在链中的所有 promise 完成后倒计时重置,那么正确的做法是将 promise 作为 it()/fit() block 的直接子代?

我在下面有一个示例代码来解释我想问的更多内容。

it("when does protractor's default timeout interval gets reset?", () => {

expect("a single promise here").toBe('something'); // I believe, after the promise inside the expect block finishes, the defaultTimeoutInterval should Reset.

// what happens if I have a chain of promises, like below?
// whether the defaultTimeoutInterval resets after every single promise inside the method `validateSuccessAlert()` and then the chained promises are finsihed?
// or will it reset on completion of every single promise?
PO.validateSuccessAlert('a method which has chained promises inside itself, returns a promise').then(() => {
browser.waitForAngularEnabled(false).then(() => {
PO.getEmailActivationLink('xxxxxx').then((activationCode) => {
PO.openNewTab(activationCode).then(() => {
PO.switchToTab(1).then(() => {
expect(PO.isVisible(element(by.css('.activateMailBox h3 small')))).toBeTruthy();
expect(element(by.css('.activateMailBox h3 small')).getText()).toBe('Congratulations!!');
expect(PO.isNotVisible(PO.getButtonByText('Proceed')));
PO.switchToTab(0);
browser.waitForAngularEnabled(true); // Re-enable the angular wait
})
})
});
});
})

})

<强>2。关于 allScriptsTimeout

我真的不明白这个,这算作:每个文件一个规范?如果您也能解释一下,那就太好了。

最佳答案

1) defaultTimeoutInterval 是 jasmine 为每个 it 设置的超时,不会让测试永远运行或运行很长时间 - http://www.protractortest.org/#/timeouts#timeouts-from-jasmine

将其设置为您认为 不应超过的某个默认值。如果您的测试运行时间比您的默认超时时间短得多或多于此语法,则覆盖:

describe('Some feature', function () {

it('can be really slow', function () {

}, 5 * 60 * 1000) // 5 minutes

it('can be really fast', function () {

}, 5000) //5 seconds
})

2) allScriptsTimeout 是 Protractor 中每个异步命令的超时时间,不要执行太久。

http://www.protractortest.org/#/timeouts#timeouts-from-webdriver

我通常不会将其设置超过 10 秒,以免每个命令(如 .sendKeys()、.click() 等)花费太多时间。有时在网格中运行时需要增加,或者做一些很长的命令,比如 huge .executeScript() 等等。

关于selenium - Protractor 中的 "defaultTimeoutInterval"何时重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48019493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com