Как заставить скрипт ждать заданный промежуток времени перед выполнением следующего его блока в транспортире - PullRequest
0 голосов
/ 08 июля 2019

Автоматизация тестового набора, в котором необходимо заполнить форму, содержащую 5 палитр и 30 полей. После заполнения формы необходимо вызвать банку, которая будет извлекать заполненные данные из БД и обрабатывать их самостоятельно.

Примечание: jar не возвращает никакого значения обратно скрипту, однако ожидается, что jar обновит состояние процесса в пользовательском интерфейсе через 1 минуту.

Попытался подождать в блоке beforeEach (), но это вызывает ненужную задержку всего скрипта, так как вводит ожидание перед каждым шагом. В одной из веток на этом форуме люди предложили использовать готовую функцию Jasmine 2. Но я не понимаю, как ее использовать.

Пример кода:

describe("Test functionality of xyz", ()=>{
    // few it block
    it();
    it();

    //login to the UI 
    it("Login to application", ()=>{
        utility.signIn(inputTestdata.Common.LoginPage.Username, inputTestdata.Common.LoginPage.Password);
    });

    // filling the form 
    it("Fill the form", ()=>{
        utility.fill_form(dataSet);
    }); // wanted to make protractor should wait for specifically 1 min before executing the next it block

    it("Process the data", ()=>{
        utility.runSimulator();
    }); //wanted to wait here to for 2 min  

    it("Verify the result", ()=>{
        //verifying the result 
    });

    //some more it blocks 
});

Ожидается: как только блок заполнения формы будет обработан, будет выполнен только вызов jar. Затем он ожидает указанное время перед выполнением шага результата проверки.

Но на самом деле транспортир вызывает форму, заполняющую блок, и немедленно вызывает блок jar it.

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Вы можете приостановить выполнение программы, используя «browser.sleep (время в миллисекундах)».

describe("Test functionality of xyz", ()=>{
// few it block
it();
it();

//login to the UI 
it("Login to application", ()=>{
    utility.signIn(inputTestdata.Common.LoginPage.Username, 
    inputTestdata.Common.LoginPage.Password);
});

// filling the form 
it("Fill the form", ()=>{
    utility.fill_form(dataSet);
    browser.sleep(2000);// here you can specify how long you want to wait at this 
stage. 
}); // wanted to make protractor should wait for specifically 1 min before executing 
the next it block

it("Process the data", ()=>{
    utility.runSimulator();
    browser.sleep(2000); // here you can specify how long you want to wait at this 
    stage. 
}); //wanted to wait here to for 2 min  

it("Verify the result", ()=>{
    //verifying the result 
});

//some more it blocks 
});
0 голосов
/ 08 июля 2019

Как вы упомянули, вы не хотите ждать после каждого 'it', вам придется ждать внутри блока 'it'.

Вы можете использовать сон или ожидание в зависимости от вашей ситуации

Другой способ - использовать вложенное описание только для тестового случая, в котором вы хотите подождать. и добавьте ожидание в afterEach метод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...